Skip to content

From Coding Challenges to Real-World Skills: Rethinking the Modern Interview Process

September 8, 2024

tech-hiringinterviewssoftware-engineeringcareerweb-development


After a decade of experience as a software developer, both as an interviewer and an interviewee, I’ve come to realise that many interviews fail to effectively showcase a candidate’s true skills.



The most common interview format involves solving problems similar to those found on LeetCode. In over 250 interviews, I’ve repeatedly encountered the same types of problems, such as FizzBuzz or a debounce function. This format often seems more like a test of how many interviews you’ve attended rather than a genuine assessment of your abilities.



From my experience interviewing candidates, many struggle with these problems and frequently run out of time. This doesn’t necessarily reflect their ability to handle real-world issues. Moreover, these interviews often discourage candidates from using resources like Google or MDN, which feels unfair given the stress and pressure involved. I always encourage candidates to use any online resources they would normally rely on in their daily work.



Ultimately, I’m more interested in understanding how you approach and solve problems in a real-world work environment rather than how you perform under test conditions. After all, we’ve all experienced times in school where we struggled with a test but excelled in regular classwork.



Another common interview format involves take-home coding exercises. These are generally more effective than the previous format, especially when candidates are not timed. In my experience, candidates tend to showcase their skills better in this setting, as it more closely resembles a normal working environment. However, issues arise when these take-home exercises are hosted on online platforms with strict monitoring, where candidates are timed and their screens are recorded to ensure they aren’t using tools like ChatGPT, Google, or MDN.



Many companies now offer AI coding tools, and I use ChatGPT daily at Roku. These tools don’t solve everything for you, but they’re like power tools. A power screwdriver doesn’t replace knowing how to build a shelf, it just makes the job faster. Same deal with AI. Banning candidates from using the tools they’d use on the actual job makes no sense.



Despite all this, just getting an interview feels like a win in today’s market. People apply to 100+ jobs to land one call. Meanwhile, hiring managers say they can’t find anyone. Throughout my career, I’ve rarely been on a fully staffed team. We’re always hiring. So why are roles left unfilled while candidates can’t find jobs?



Part of the problem is that job descriptions are often unrealistic. They ask for a very specific mix of skills and experience that rules out people who could absolutely do the job. The hiring process itself is too rigid, leaning heavily on coding tests that don’t tell you much about how someone actually works. And companies often have internal problems, whether it’s slow processes or biases, that stop them from recognising and onboarding good people efficiently.



The other part is that tech moves fast. The skills companies need change constantly, and a lot of qualified people get filtered out because they’re missing a specific keyword or certification that happens to be trending. Job descriptions should focus less on exact qualifications and more on whether someone can learn and adapt. That’s what actually matters in this industry.



The bottom line: both sides need to be more practical. Companies should hire for problem-solving ability and growth potential, not a checklist. Candidates should focus on showing how they think and work, not just what they know. The current process wastes everyone’s time, and fixing it starts with dropping the artificial barriers that keep good people out.