If you’re responsible for recruiting software engineers then you already know that demand is high and competition is fierce. Time is of the essence -- you need to evaluate technical skill quickly and efficiently and hire the best candidates before they’re snapped up by a shop across the country or down the street.
But it can be tricky to evaluate the technical skill of your candidates, especially if you aren’t a programmer yourself. A common solution is to drag a couple of your company’s engineers into the interviews with you, but let’s face it: coders aren’t always eager to stop coding, and managers aren’t always eager to see their programmers sitting in on phone calls or on-sites all day.
Fortunately for non-technical recruiters everywhere there are some excellent tools to help you evaluate a candidate’s technical chops in less time, and with less burden on your company’s programmers. In fact, with the help of these tools, you'll often be able to filter out the weaker candidates entirely on your own.
How much time could you save by quickly identifying the weaker coders during your initial phone screen? Coderpad is a web-based tool that lets you send your candidates the URL of a coding challenge, and then watch them code and run their solution in real-time. It’s like a classic whiteboard challenge, but on a shared web page so you can do it over the phone - before you invest the time and expense of an on-site interview. It’s a great way to see how the candidate thinks about an engineering problem, then codes and debugs accordingly.
But what if you're not a programmer yourself, or you don’t feel comfortable evaluating a candidate’s code during a phone call?
That’s no problem because Coderpad records the session so you can forward it to your company’s engineers to evaluate later on. And when they review it using Coderpad, it’s a huge time-saver: they can fast-forward to check the finished solution for accuracy, or they can scrub through the timeline and watch a replay of the candidate doing and debugging their work.
But you won’t always need to send it to an engineer, because just watching your candidates work in real time is often enlightening enough to identify the ones that can talk the talk, but can’t code the code. At Bonanza, we choose one of three different code challenges for every phone screen. Only the strongest results are forwarded to our engineering leads for a quick evaluation before moving to the next step in the interview process.
Challenging your candidates to write some code during the phone screen is a great way to screen out the candidates that clearly aren’t ready for the role. But a more in-depth programming test is usually necessary to separate the “sorta good" engineers from the “really good" ones. That’s where Codility comes in.
Codility is a web-based tool that lets you choose from hundreds of timed, subject-area based code challenges that you can send to your candidates. But if you interview a lot of engineers, it’s likely that you've already established a process for emailing “take home” code tests to candidates - so why use a tool like Codility?
Because Codility doesn't just send the test to your candidate. It also enforces a timed session, and records the candidate’s work as it progresses so you can send a playback to your team for evaluation later on. But the best part is this: You don’t even need to involve one of your programmers to find out if they passed the test. Codility automatically evaluates their code for correctness and runtime performance, and shows you a graph of how the candidate did compared to other candidates that took the same test.
The way we use Codility at Bonanza is by sending a 90-minute timed test to any candidate that does well on the Coderpad challenge. If they score well on the Codility test, then we have the engineering leads double-check their playback and solution in Codility before moving on to the next step in the interview process. Personally, I’ve been surprised at how well it helps to identify candidates who are competent at writing code, but maybe aren’t as good at handling edge cases or optimizing for performance -- or, in some cases, at following instructions.
Okay, I know this is supposed to be an article about how to evaluate engineering candidates with little or no burden on your code team. But programming is an art as well as a science, and there’s a large gray area between the candidates that obviously aren’t a fit and the ones that just might be great. So before you make a hire, be sure to have any late-stage candidate's work vetted by an appropriate team member to ensure their skill level is appropriate for the role.
Having said that, you can tangibly reduce the burden on yourself and your engineers by using the tools above. You’ll save yourself time by automating a portion of the evaluation; you’ll save your coders time by empowering them to review code challenges faster than ever before; and you’ll reduce the number of hours you all spend in the interview room by culling technically-weak candidates earlier in the process, sometimes as early as the initial phone screen. Now that you have the right tools for the job at hand, you can be doubly sure that only the best candidates get the job at hand - in half the time.