Recruiting software engineers is challenging. Those that are exceptional are in short supply, and don’t immediately stand out among the rest. Many organizations include a coding challenge in their interview process to identify the best candidates, but oftentimes come up with a false positive. To get the most out of your coding challenge, follow these do’s and don’ts.
Do ask the candidate to solve real problems
Design your coding challenge around a problem your company has faced in the past, or is currently facing. This will give you a better sense of how the candidate would perform on the job, and what kind of impact they could have at your company. It will also give the candidate an idea of the types of problems they would be facing, if hired, so they can self-select as the right fit.
Don’t use whiteboarding
One of the most pervasive interview tactics is when an interviewer asks the candidate to solve a problem on a whiteboard. You wouldn’t ask a lumberjack to cut down a tree without a saw, and you shouldn’t ask an engineer to code without the tools they’d have access to on the job. Whiteboarding creates the risk that you pass over an amazing candidate who simply can’t perform on a whiteboard, or that you hire a candidate who can’t translate their whiteboarding skills to solve real problems.
Do try pair programming
Pair programming is where your interviewer reviews each line of code as the candidate writes it. This should be interactive, where the candidate asks questions and explains their thought process as they solve the problem. The interviewer can also provide nudges to set the candidate in the right direction in case they get stuck along the way. Through this process, you can learn how the candidate thinks, and how they would interact with your team members.
Don’t get too hung up on the ‘right’ answer
A great coding challenge will have multiple paths to the solution. If a candidate doesn’t reach the ‘right’ solution, nudge them with alternate solutions and optimizations. Create a dialogue as the candidate either reconsiders their approach, or explains why they abandoned that approach in favor of their own. You will learn a lot about how they think, and how they would jive with your team.
Do standardize your coding challenge
Put candidates on a level playing field by standardizing your coding challenge. Each candidate should solve the same challenge, with the same tools, and ideally the same interviewer. The way the interviewer presents the question, and which nudges they provide, can affect how the candidate solves the problem. This ensures that all candidates are being evaluated equally, and helps your team calibrate candidates and streamline feedback.
Don’t allow your coding challenge to be published
Your candidates are no longer on a level playing field when they can prepare for your coding challenge. Check Glassdoor regularly to ensure that your challenge hasn’t been published. Use real problems your business is facing to reduce the risk that your coding challenge has been seen in an interview at another company. You want to make sure that your candidate can actually solve these problems, rather than regurgitate the solutions.
A coding challenge can be a great way to separate top engineers from those that are average or unqualified, but only when used correctly. Your goal is to see how a candidate would solve a similar problem on the job, if hired. Try to make the situation as close to a real-life situation as possible, so there won’t be any surprises for you – or your candidate – after they’re hired.
Learn more interview best practices in our eBook:Top Interview Tips: The Employer’s Essential Handbook.