Software developers have sometimes described coding interviews as complex obstacle courses designed to make them fail.
Stories of candidates having to jump through multiple hoops before being tripped up by a technical question they’re unlikely to see in any real-world scenario are not hard to come by. It’s almost as if the interview process is rigged against them.
Recruiters, no doubt, are looking to find the best candidate to fill a position. But what often ends up happening is that candidates who would have been ideal for the role are passed up because they couldn’t clear the interview process.
Whether you’re a recruiter or a candidate, that’s bad news.
Flaws in coding interviews
From the point of view of a recruiter, the basic objectives of a coding interview, or any job interview for that matter, are threefold. They are to determine:
What you have to offer (knowledge, skillset, and abilities)
Your behavior (character traits, personality, and interests)
What you will bring to the job (do you have what they are looking for)
With that in mind, here are some of the most obvious flaws in the coding interview and assessment process across the software industry:
Lack of structure: Coding interviews can differ wildly from company to company as there are no standardized assessment tools. This creates multiple problems.
First, there is no clear roadmap that candidates can prepare for. Second, an unstructured process places too much responsibility on the interviewer’s ability to measure fitness for a job.
Third, subtle biases are likely to creep in when there is a lot of variability in the interview process. This means that objective terms of assessment are often sacrificed in favor of subjective preferences in the absence of a structured interview process.
Unnecessarily hard: FAANG companies (Facebook, Amazon, Apple, Netflix, and Google) have an understandably high recruitment bar. That’s because they already have the top talent in any given discipline on their payrolls. However, unnecessarily hard interviews are counterproductive for smaller tech companies.
Smaller companies are likely to lose out on good talent if the interview process is unduly hard and not proportional to the everyday requirements of the job. Moreover, successful candidates will end up thinking they are overqualified for the job and quit. This cannot be a good strategy in a market where genuine talent is rare.
Absence of real-world scenarios: The day-to-day challenges of a developer include creating flawless code, avoiding software crashes, detecting bugs, and removing them. Yet most of these skills are never tested during a coding interview.
The interview typically focuses on coming up with a real-time solution to a given technical problem. The most common format is ‘whiteboard coding’ - where a candidate is asked to solve a problem involving a binary tree. This doesn’t represent what a developer has to do on the job and doesn’t allow any opportunity to show their greater skills in creating large programs.
Insistence on speed: While the software industry is fast-moving, there is no reason for the interview process to be quick. Traditional coding interviews can be hyper-focused on seeing how fast candidates can solve a particular problem.
The job, however, demands that they create robust code that is bug-free and performs fluently.
While being fast is important in the work cycle, the everyday job demands a balance between speed and efficiency that the interview process often does not allow.
Uni-directional focus: Coders on the job spend a lot of time collaborating with their peers, asking questions, and testing code. These are vital functions in any productive software work environment.
Yet coding interviews are almost exclusively focused on problem-solving abilities, usually involving a trick question. The outcome is that a whole host of secondary qualities necessary for the job go untested.
‘Local-developer’ mindset: Remote and hybrid work styles are fast becoming norms across the software industry, especially after the COVID pandemic.
Most employers, however, are yet to make the mental leap beyond in-office working. Exclusive preference for locally-sourced talent means missing out on a sea of untapped potential.
How to fix the broken coding interview
The first step in solving a problem is usually acknowledging there is one. The coding interview process is demonstrably flawed. It calls for a structured and well-thought-out interview process that is more efficient. It’s not enough to filter out candidates who are not good fits for a particular role. The focus should instead be on distilling those who are perfect for it.
Hiring managers need to craft interviews that are specific to the requirements at hand. For that to happen, the status quo of generalized and occasionally imitated interview formats must be changed.
Here are some of the things you can do to improve the coding interview process:
Project assessment: One of the best ways to screen coders is by giving them a homework project. This allows you to observe their approach and thinking process to a given challenge. You can see candidates work on real-world scenarios by having them share their screens.
This also works out better for candidates as they can use their favorite integrated development environment (IDE) for the task. Project assessments offer candidates a chance to be creative.
Live interviews: Coding interviews are ideal for gathering more data and insights about a candidate’s technical and collaborative skills.
For instance, you can ask the candidate to explain their code to another developer. This will reveal both their depth of knowledge as well as their communication skills.
During a live interview, keep your questions simple and aligned with the company’s business. The objective is to allow the candidate to focus on details instead of having them come up with a fast solution.
Time and space: Interview pressure can make candidates nervous about finishing on time. Real coding requires teams to have adequate space and time to deliver optimal solutions. Similarly, allow interview candidates a generous amount of time to complete tasks. Your focus should be on quality, not quantity.
Not just code: The ideal interview process should be designed to determine more than just how proficient a candidate is with a particular programming language. The emphasis should equally be on finding out how they approach a problem, their ability to adapt, and their potential to learn.
Real problem simulation: Design interview challenges based on problems that the company deals with every day.
Algorithm-styled interviews can only reveal whether a candidate is a good coder, not whether he is a good fit for the company. Test candidates on realistic scenarios instead of standardized ones.
Diverse criteria: Make sure candidates are evaluated based on a range of criteria, not just their prowess with a particular technology. Keep the rubric of the technical interview as objective as possible to improve the validity of your evaluation process.
The way forward
The process of finding the right candidate for a role can be a long and tiresome one. The time, money, and effort spent on the process can all be in vain if you fail to find the ideal candidate. While the existing interview model is decidedly flawed, improving it isn’t an overnight job.
Use the tips discussed above to tweak the process incrementally. Test the changes you’ve made to find out if they actually work and adjust accordingly. The idea is to keep refining until you have a structured interview process that makes sense for your company and the position you are trying to fill.
And if you decide you need to move with speed, consider using our live interview platform at FloCareer. We’ve 4000+ interviewers who are ready to help you boost your hiring. Request a live demo today!