I am the co-founder of HackerEarth, a company that provides an online recruitment solution to hire a programmer as one of its offerings. Apart from helping others hire programmers, I also lead the technical hiring for my company. Over the course of building our product, Recruit, and working with a lot of 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 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 technical hiring process in most 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 of the recruitment workflow.
How to hire a programmer in 3 steps
Filter using online coding 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, a 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 coding tests tools let 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 people for interviews before knowing whether they can write code. You are not hiring them for anything else, right? (Also read – Beyond the FizzBuzz challenge)
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 part of your current project but never got around to doing or have no resources to spare.
The simplest way is to ask them to host their project on GitHub and share the link with you. (Free eBook – How to hire talented developers using GitHub)
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 outright horrible. I am not saying everyone needs to know this or have worked like that before applying for a job, but this will again help you eliminate 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, it’s 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 make sure 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 for a 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 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 exactly a candidate’s problem that he or she can’t code. It’s a problem with 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 find candidates who can code using simple online coding tests?