I am the co-founder of HackerEarth, a company that provides an online recruitment solution as one of its offerings. Apart from helping others hire programmers, I also lead the technical hiring for my own company. Over the course of building our product, Recruit, and working with a lot recruiters, we realized that when it comes to hiring programmers, recruiters struggle, especially those with a non-technical background.
Having been on both sides of the table, in getting hired and hiring people, I understand how programmer hiring is done and the deficiencies that exist in the process.
- There are too many candidates to filter from, resulting in too many résumés to scan and shortlist for interviews.
- Most of the candidates who reach to the interview stage, can’t even write code for basic algorithms such as printing numbers in a loop or calculating the factorial of a number.
These issues plague the recruiting process of most tech companies, whether it's a startup or a large organization, whether their technology stack is in Python, Erlang, or C++. The way technical hiring is conducted in most of the companies is inefficient and time consuming.
There is no sure-shot success formula for technical recruitment. But there are some techniques which, if followed, can do away with much of the hassle in the recruitment workflow.
Umm. Not really.
Here’s a three-pronged approach to hire right.
Filter using online tests
The first step to get the right candidates is filtering out the ones that are not suitable. It might be surprising to hear, but many people who claim to be rock star programmers can’t even write a single line of sensible code.
Hiring clueless developers can have frustrating outcomes to say the least. Skill-based hiring helps bridge the talent gap.
A simple and easy way to screen the candidates then is to ask them to write code for a simple problem. You shouldn’t be doing this over the phone. You shouldn’t be doing this by bringing the candidates in-house. It’s best done using an online tool. Choose an online compiler which will automatically evaluate the code and tell you the results. For example, Recruit supports multiple question types and over 30 programming languages, has a code player to capture a candidate’s keystrokes, a pre-built question library or an option to create a customizable one, plagiarism detector, and provisions to get candidate feedback, generate exhaustive reports, and take snapshots of remote candidates to check for impersonation.
You could give them a simple “FizzBuzz” test and you will be able to weed out 90% of them.
You need candidates who can write code that is usable, clear, and concise. Automated online technical assessment tools lets you scale, cut costs, look beyond résumés, standardize, and eliminate under- qualified candidates early. The candidates who pass simple online coding tests are the ones who at least know how to write code. If they can prove their aptitude by doing well on real-time coding tests, then they are ready for the next level of the hiring process. They might not have worked on large systems, created a project from scratch, or worked in a team. But the time that you save by not taking unwanted interviews can be used to conduct a higher level of scrutiny on the remaining candidates. It’s pointless to call for interviews before knowing the candidate can write code. You are not hiring him/her for anything else, right?
Give them a real-world mini project
Once their basic coding proficiency is established, give them a real world mini-project to work on. You can also do this remotely. Ask them to build something on top of your API. Or if you don’t have one, give them the small component that you always wanted to build or is a part of your current project, but never got around to doing or have no resources to give to.
The simplest way is to ask them to host their project on Github and share the link with you.
Once you go through this exercise, you will quickly realize that many people can write 40–50 lines of code, but when dealing with multiple files/modules, they are just outright horrible. I am not saying everyone needs to know this or have worked like that before applying for job, but this will again help you in eliminating 50% of the remaining candidates.
Giving them audition projects works really well if you want to gauge their programming abilities. Or, you can ask them to give you a code sample they created and are proud of, but that would involve verifying if they wrote it themselves. To get a true measure, better to ask them to deliver real value on their own. You could also look at their Stack Overflow profile to get a picture of their problem-solving and communication skills.
Democratizing talent sourcing is key. When you turn to skill-driven, talent-based sourcing, applicants are ranked per their know-how, and not indexed based on creative résumés or Ivy League backgrounds.
Check the cultural fit and hire them
Now that you are satisfied with someone, do a telephonic interview. Bring them to your workplace. Do a cultural-fit assessment. Show them your awesomeness, and get amazed by theirs. Intrigue them and Hire them! Once you have found candidates with the requisite acumen, passion, and cultural alignment, your battle is won.
Your organization’s culture shows up in the decision making, the stories, the behavior, the symbols, and everyday work practices. You want to recruit candidates for a cultural fit. But for that, you need to ensure that you are specific about the message your company puts out, and candidates are judged based on core values. You’d rather pick people for their commitment to user acquisition than liking for Game of Thrones. You’d want to think twice about hiring an individual contributor for a teamwork-oriented firm.
No point in setting the scene for candidates stirring the pot later when they discover reality and expectations are vastly different. Remember that you are not looking for versions of yourself, but looking for diversity in skills, opinions, and backgrounds that reinforce your core values.
Don’t waste your time in the very first step. It’s not a candidate’s problem that they can’t code. It’s a problem in the way technical hiring is done in the industry today. Most of the filtering at the first step is based on résumés - where everyone claims to be proficient in all the skills you have ever heard of.
Would you still go ahead with the ineffective résumé filtering or will you identify candidates who can code with simple online coding test?