Making the wrong hire comes with steep costs: in time, money, and resources. The CEO of Zappos once estimated that bad hires cost the company "well over $100 million." Especially when it comes to software development, it’s critical to have the right team in place to keep your sprints moving and to hit your project goals.
More and more companies are turning to remote engineers and software developers to fuel their growth. Remote engineering teams save companies a ton of money in overhead, lost productivity, office expenses, and more. And, by carefully vetting software developers, companies can save even more on bad hire turnover costs. Here’s how to test software engineers to make sure you’re working with the right people.
Coding and programming tests
Coding and programming tests are often timed, meaning the applicant must complete the challenge within a set window of time. This shows the recruiter how well the applicant works under pressure, and gives an accurate picture of the candidate’s ability before they’ve had any training or professional development as part of their onboarding process. At the same time, it helps a company assess a candidate’s true ability – and avoid making a bad hire by relying solely on a person’s resume.
Work sample test
A work sample test is equivalent to a coding and programming test, with one marked difference. The work sample test has no time limit and closely mirrors what an actual day-in-the-life as a software developer at your company would be like.
As one expert describes, a successful work sample test would “make the work environment the same. Give the candidate access to all of the resources they would normally use at work. These include libraries and frameworks, as well as outside resources like Stack Overflow, GitHub, and Google, just like your current developers use. This even extends to the IDE they use. Let them use the one they are most comfortable with. It makes no sense to waste their time on getting to know a tool which they will only use in the interview when they could be doing the task.”
Work sample tests offer the benefits of a hiring trial period – where the software developer is given a trial window to assess their fit and skills, with a full-time offer contingent on successful metrics – only without the same investment of time and resources. The drawback to a work sample test is that it does require more time and effort from your hiring team to set up and administer.
Live coding challenges
Live coding challenges fall on the opposite end of the spectrum, in that a candidate has little to no time to prepare and must perform on the spot. Live coding is usually done via screen sharing: a candidate is given a brief, and then the recruiter or hiring manager watches as they complete the test.
The session is treated less like a timed test, and more like a “constructive dialogue.” As one expert explains, live coding challenges “allow recruiters to observe a candidate’s logic, their ability to explain what they’re doing, how they think, and their ability to code under pressure. Not only do they allow interviewers to see, in real-time, how a candidate performs on their own, with just their programming knowledge as their weapon, but they also test communicative and collaborative skills within a team (in the case of collective interviews).”
If your team is distributed, communication skills are a must-have for software developers. A live coding challenge can be a good way to screen remote developers and make sure they’re equipped to align with your existing work flows.
Pair programming matches a candidate with an experienced developer from the company to work together on a simulation. In this scenario, the recruiter or interviewer plays the role of “client” and sets the brief for the exercise. Then, the candidate works alongside their partner to complete the challenge, simulating a typical workday.
Like a live coding challenge, the pair programming test allows recruiters to evaluate a candidate’s hard and soft skills simultaneously. Remote software developers can showcase their teamwork and communication skills, while the expert software engineer paired with the candidate can assess their technical capability.
Code review or bug bounties
Some companies ask a programmer to review a piece of code for mistakes, problems, or to find deviations from industry best practices. It’s a good way to share knowledge and to see if a developer is detail-oriented. Other companies use bug bounties, challenging developers and coders to find bugs and test a website to find and recruit talented software engineers. In the process, your benefits from having someone test your product or check the quality of your code.
Last but not least, a programming questionnaire tests a software developer’s expertise and problem-solving skills. Tests from Top Code, Google Code Jam, or FizzBuzz offer questions that seem simple on the surface, but are quite challenging. Questions such as “Oversized Pancake Flipper” and “Tidy Numbers” can be solved in a few hours, and give you a good way to recognize if a developer is truly experienced.