Interview coding challenges are a highly polarizing topic. The truth is, you could probably fill libraries with resources to help you master coding interview challenges. That said, what does it take for the employee to create an effective coding challenge scenario?
Interview coding challenges aren’t inherently evil. They can help developers master the art of coding. From the recruiter’s point of view, they can help choose the right candidates. You have to be careful though because they’re a double-edged sword. If done right, they can help you identify the best candidates. If done wrong, however, they can turn your candidates into your enemies and possibly make a bad hiring decision.
For more tips and tricks, have a look at The ultimate guide to the technical interview.
It seems that in tech, the majority of the negative experiences people have comes from the way their coding skills are assessed. Bad interview experiences can make developers really angry. Since anger is a high-arousal emotion, these candidates are likely to share their negative recruitment experience. This can be detrimental to your employer brand and further impede your hiring results.
In this article, you’ll learn how to do interview coding challenges right. We’ll look at the following topics:
1. What are interview coding challenges?
Interview coding challenges are tests sent to candidates by a company with the intent of screening technical skills/coding proficiency. They aim to predict what kind of an employee the candidate would make. In essence, interview coding challenges are designed to assess one’s suitability for the job. They can precede or follow phone and face-to-face interviews. In some cases, they’re given to developers during the technical interview.
Types of interview challenges:
- brain teasers
- business problems
- coding tests
- behavioral questions
For optimal results, you should use a combination of interview challenges and never rely on just one of them. This gives you the ability to evaluate a person’s skills and traits with a number of techniques.
For optimal results, the candidate solves a coding test before being invited to an onsite interview (both technical and soft skill interviews). This allows you to choose candidates you and your team believe could potentially be a fit. From the point of view of the recruiter, coding challenges preselect viable candidates which is a massive time saver. With the right setup, you can eliminate up to 8.6x more candidates before your technical interview.
2. Work sample interview coding challenges
The more realistic the screening and interview method, the more likely you are to evaluate fit correctly. According to
A coding interview SHOULD be challenging and motivating to the candidate. Developers love challenges as long as they’re fair and meaningful. The rule applies to recruitment coding challenges, too. According to Frederick D. Smith, “The research concerning work sample testing suggests that they can produce high predictive validities, and that when used as criteria they compare favorably with supervisor ratings and productivity measures.” Work sample tests are great to evaluate coding skills and they tell you a lot more about one’s true abilities than algorithmic quizzes.
The best way to make interviews meaningful in tech is to design them in a way to evaluate real skills used on a daily basis. To do that, you need coding tests which are:
- based on a work sample
- standardized and objective
- focused on real-life business problems
- graded with scores or grades, and not a simple pass/fail
- not too long
There are many ways of creating interview coding challenges. One of the main mistakes people make is to use challenges that have a widely-know solution which can easily be found online. This leads to verifying how familiar people are with widely circulated challenges and solutions to them rather than their coding skills.
3. How hard should your coding interview challenges be?
According to a Glassdoor study, “more difficult job interviews are statistically linked to higher employee satisfaction across six countries we examined: U.S., UK, Canada, Australia, Germany and France.” Across the whole sample, a 10% more difficult interview is related to a 2.6% higher employee satisfaction. The Glassdoor study findings indicate that “on a five-point scale, the optimal or “best” interview difficulty that leads to the highest employee satisfaction is 4 out of 5. (Interview difficulty ratings based on a five-point scale: 1.0=very easy, 3.0=average, 5.0=very difficult)Source: Glassdoor
Tech giants like Google have become (in)famous for their job interview practices, but that’s not because they were difficult. Developers felt they were unfair and that they didn’t do their skills justice. Developers are quite a competitive professional group and most of them love being challenged. Remember to keep the challenge relevant and adjusted to the job description (junior/middle/senior).
In the case of developers, opportunities for professional development come third on the list of factors used to assess potential job attractiveness. Being faced with a challenging but fair interview experience can present the potential company in a positive light.
4. Six steps to make interview coding challenges meaningful
1. Mirror the work to be done
Stay away from algorithmic quizzes and brain teasers. As intriguing as they can be, relying solely on them can show you how good the candidate is at technical interviews. You’re essentially assessing whether they have the iterative algorithmic problem-solving attitude developers teach themselves in order to ace interview coding challenges. There are sites teaching people to get these interview skills and developers have no choice but to comply if they want to work at certain companies. As an employer, you have an important decision to make here. You can either follow this trend or screen technical skills with objective and fair interview challenges.
2. Assess skills objectively to eliminate bias
Let developers use the resources they normally use at work. This includes Stack Overflow, GitHub, Google, or whatever they want. Some coding test platforms don’t allow candidates to leave the tab where the test is taking place. This way. they want to ensure the candidate isn’t using additional resources.
This approach is likely to make some great candidates drop out of your talent pipeline. Because of the nature of their work, developers constantly look up stuff. It’s actually an advantage because they don’t have to waste time reinventing the wheel every single time.
3. Use diverse question types
Evaluate your candidates’ coding skills with a variety of tasks. You can use multiple choice, database, code review, programming task, code gap, essay questions, and code pairing to get a full understanding of their skills.
4. Choose the right subject
Make sure you’re checking the skills listed in the job description and not some skills close to them. The easiest and safest way is to use role-based coding assessments to check the exact skill set necessary to perform in a given job.
5. Administer them right
Should you use in-person or take-home interview coding challenges? They come with their own advantages and some companies choose to do both.
Interested in how candidates handle problems in real time? Want to see if they’re capable of working with another developer? Try in-person challenges. Pair programming is great for that! Consider this especially if code pairing is something that you do together as a team. In-person challenges also give you an idea of how the developer works under a deadline.
Here’s what a code pair session can look like:
That said, take-home tests come with their benefits, too. Because they’re typically longer, they give an idea of how the candidate approaches a larger project. They also show you how they like to work without any supervision.
6. Always provide feedback
To quote Maxim Zaks, “If you ask people to invest time on your code challenge, please have at least the decency to give feedback and explain, what exactly was wrong. This way it becomes a teachable moment and not a complete waste of time for the candidate.” Amen to that.
The interview coding challenge: conclusion
Polarizing as it is, the interview coding challenge can be a great tool to screen technical skills as long as you do it right.
Coding challenges can help you identify the best developers and the less than stellar ones. Looking at their work sample, you’re able to make a data-driven decision about whether you want to invite this person to an onsite interview or not. This eliminates unnecessary technical interviews which typically create bottlenecks and put a lot of unnecessary strain both on the HR and the IT department.
I truly believe that de-demonizing the interview coding challenges by staying away from riddles and whiteboard testing can make a massive difference and finally make the IT and HR work together seamlessly.