Technical interviews are a staple of the job search for most engineering positions. Whether the interview process is virtual or in-person, someone will most likely ask you to write code or pseudocode live, on the spot, to solve a specific problem or implement a particular data structure. The expectation of most interviewers is that you’ll need almost no time to consider the question and ponder different approaches before launching into a solution.
I’ve never had to endure a technical interview, but it seems likely that I will have to in the future. This seems profoundly unfair for so, so, so many reasons. Here are just a few of them.
First, it’s a practice that’s virtually unparalleled in any other profession. I’m a Technical Product Manager, and when I was interviewing for my current position in April 2021, no one asked me to write a Jira ticket or construct an architecture diagram. I was simply asked to talk about my previous work experience, explain why I was interested in the position, and answer a few theoretical and personality-based questions, such as: “How do you approach working an environment with a lot of ambiguity?” “Describe a time when you disagreed with someone at work. What did you do?”
The amount of preparation it takes to answer these questions competently pales in comparison to the amount of work that people put in preparing for technical interviews. People spend hours studying for a technical interview as if it were a college final, and this puts engineers at a disadvantage in the job search. It takes so much more time and energy for them to apply a single position than it does for a Product Manager to apply to five positions. Engineers simply can’t cast their nets as wide and are forced to limit their chances at finding a suitable position.
Second, technical interviews are extremely bad at predicting how well someone will actually perform in a given position. Live coding is not something that is typically asked of engineers in the workplace. In the real world, they’ll be given a task and be allowed to think about it for a while in whatever way and in whatever environment is most conducive to them producing their best work. They’ll also be able to look up documentation for anything they don’t already know. You know, like how a normal person does normal work. Few people do their best work under immense pressure and without access to resources, and for some, coding on the spot can provoke extreme anxiety that makes it impossible for them to demonstrate what they know. Technical interviews create artificial and emotionally taxing obstacles that will never be replicated in the workplace.
Even more ridiculous is the fact that most of the questions asked during technical interviews have nothing to do with the work the position actually requires. The engineers on my team write in Python, but they’re not sitting around figuring out how to swap the values of two variables without using a third variable – a real question a friend of mine was asked recently. They spend most of their time on solutions architecture, which is much harder and much more interesting than a low-level question designed to trick you.
It’s my hope that technical interviews will soon fall out of fashion, much like unpaid internships. We’ve finally come around to the fact that they’re unethical and predatory, and I hope we soon arrive at that same realization for technical interviews.