I am the co-founder of HackerEarth that provides an online recruitment solution. Apart from helping others hire programmers, I also lead the technical hiring for my own company. Over the course of building our product 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 resumes to scan and shortlist for interviews.
Most of the candidates who reach to the interview stage, can’t even write code for basic algorithms like 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 if followed, can do away with much of the hassle in the recruitment workflow.
Step 1: Filter using online tests
The first step to funnel down on the right candidates is filtering out the ones that are not fit. It might be surprising for you but most of the people who claim themselves to be rockstar programmers can not even write a single line of code.
The simple and easy way to filter out most of the candidates then is to ask them to write code for a simple problem. You shouldn’t be doing this on phone. You shouldn’t be doing this by bringing the candidates in-house. That only eats away your valuable time. It’s best done using an online tool. Choose an online compiler which will automatically evaluate the code and tell you the results. Just give them a simple “FizzBuzz” test and you will be able to filter out the 90% of them.
The candidates who pass the simple online coding test are the ones who at least know how to write code. They might not have worked on large systems, created a project from scratch or worked before in a team. But the time that you saved by not taking unwanted interviews can be used to do a much higher level of scrutiny on the remaining candidates. It’s foolish to call for interviews before knowing the candidate can write code. You are not hiring him/her for anything else, right?
Step 2: 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, but never got around time to do it. 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 need to know this or have worked like that before applying for job, but this will again help you in filtering the half of the remaining candidates.
Step 3: Check the cultural fit and hire them
Now that you are satisfied with someone, do a telephonic interview. Bring them in-house. Do a cultural-fit check. Show them your awesomeness, and get amazed by theirs. Intrigue them and Hire them!
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 the industry today. Most of the filtering at the first step is based on resume - where everyone claims to be proficient in all the skills you have ever heard of.
Would you still go ahead with the ineffective resume filtering or will you filter the candidates who can code with simple online coding test?