The demand for coders, developers, and software engineers has skyrocketed over the last decade. Tech skills dominate LinkedIn’s 2019 list of most in-demand skills on employers’ wishlists. In the job market, 90% of developers have at least part-time work; 77% are employed full-time. There’s a very small number of developers who are unemployed and actively seeking employment – meaning the competition over these individuals is greater than ever.
For recruiters with no technical expertise in coding or programming, it can be challenging to assess whether the candidate you’re interviewing has the skills your company requires. But, with so few individuals on the market, it’s imperative to test a software engineer’s skills and assess their readiness. There’s no room for error: with so few candidates and such high demand, hiring teams must have a clear picture of a software engineer’s ability before they make a job offer.
Skill testing can lead to better hires in virtually every position. Verifying a candidate’s ability, rather than making a hire based purely on what a resume says, leads to much higher on-the-job success. And, for software engineers, testing is relatively straightforward. Here are some of the different ways to test software engineers before making a job offer.
Coding and programming tests
Pre-recorded or one-way coding and programming tests can quickly ascertain whether or not a candidate has sufficient background in a coding language to take on the role’s responsibilities. These coding tests can be sent to a candidate to complete on their own time. Ask applicants to perform a coding challenge in which each individual solves simulated problems they may encounter while working for the company, such as finding a bug, writing in one language across different platforms, or synchronizing a multi-threaded application. Then, an AI tool can assess each candidate’s test and rank the candidates based on how well they performed – meaning the recruiter needs no technical background to see the results.
Live coding challenges
Some companies ask their applicants to participate in live coding challenges. Applicants often dislike this pressurized simulation, but it can be very revealing for a recruiter.
Live coding challenges differ from typical coding tests in that they happen in the presence of an interviewer, allowing the interviewer to observe in real-time how a candidate performs when faced with a problem for which they are unprepared. Usually, a recruiter can see how a candidate is thinking through their solution through screen sharing. The interviewer can see how a candidate approaches the problem from a technical perspective, as well as how they use their soft skills – logic, communication, patience – and how that person might fit with the rest of a team.
Candidates find this experience stressful, but it is a good way to measure on-the-job success. As one expert points out, “At the end of the day, the aim of this exercise is not to produce (nor to evaluate) a perfectly constructed, perfectly neat piece of code. Indeed, live coding boils down to allowing both parties to gain an understanding of each other in a dynamic, conversational setting.”
It may sound too easy to be true, but one of the best ways to test a software engineer is to…ask them questions?
“Programming questionnaires can be a great way to quickly identify truly smart programmers. The biggest asset to these tests is that they are timely and evaluate not only a developer’s coding ability but also the way they problem-solve,” says one coding and development company.
Coding questionnaires like FizzBuzz, Top Coder, and Google Code Jam seem deceptively easy at first. But, once you dig into the task, only the most experienced software engineers can achieve a high score on these questionnaires. On average, these tests should take no more than a few hours and can tell you a lot about a candidate’s abilities.
Like a live coding challenge, pair programming allows a hiring team to see how the potential new hire will integrate with an existing team. Pair programming is when the candidate is paired with an experienced developer from the company to work together on a simulation for the afternoon. Have the recruiter or hiring manager play the role of “client” or “key stakeholder” within the organization. The recruiter presents the parameters of the exercise and briefs the pair on the simulation. Then, the candidate works with their partner to complete the challenge as if it’s a normal workday.
There are many obvious benefits to a pair programming challenge. It’s a quick way to evaluate a candidate’s hard and soft skills, from coding and time management to teamwork and communication. If you’re hiring for a customer-facing role, it’s also great to assess how the software engineer interacts with a mock client. And, you get the benefit of having an expert from your team assess the technical capabilities of the candidate, having coded next to them for a number of hours.
Ask a candidate to perform a code review to verify their programming skills. A code review asks a programmer to look through a piece of code to find problems, errors, or bad practices. The main benefit of a code review is it test a different way of thinking; while some code tests have the candidate focus on the “what” – what the code needs to do – the code review focuses on the “how” – how does this piece of code work? A candidate can showcase a different level of understanding, which may be particularly important if you’re hiring for a strategic position.