Thoughts on Tech Hiring and Promoting Change
I was laid off in May this year. Losing job security and health insurance in the middle of a pandemic was downright shitty. But you know what made me feel worse? The anxiety induced by thinking that I’d have to go through many, many technical interviews to land another role.
For those of you unfamiliar with programming interviews: a majority of software companies expect candidates to prove their competency by answering technical questions by writing code on a whiteboard (or in COVID times, a Google doc). The emphasis of these questions is usually placed on fundamental computer science concepts such as data structures and algorithms, a practice popularized by Google and subsequently adopted by the industry at large.
The rationale behind this interview format is to provide a somewhat standardized way to assess a candidate’s problem solving skills. The format also provides a chance to see the engineer’s coding capacities — after all, what better way of getting to know a programmer than having them program?
If you are a software developer, you will most likely understand intimately what it feels like to go through tens, or maybe hundreds, of rounds where some stranger gets to judge you for how well you are able to think out loud and solve problems under a time crunch. And that feeling often times isn't so great.
Evaluating Anxiety More Than Aptitude
A collaborative study done by North Carolina State University and Microsoft provides evidence that the current technical interview format evaluates performance anxiety more than it does programming competency.
Actual software development often requires slow, deliberate thinking and time to research potential solutions to problems. Absolutely no one would expect you in a real-life setting to come up with solutions within 45 minutes to an hour. The time to develop functional software is measured in days, weeks, sometimes months.
Furthermore, the algorithmic concepts used mostly originate from academia, the result of decades of work among computer science researchers trying to push the state of the state of the art. If you have no familiarity with the particular algorithm the interviewer is quizzing you on, what are the chances you’ll be able to “problem solve” in the allotted time? This is like asking someone to do the work of entire PhD theses in less than an hour.
So it's not surprising to see that the high-stakes situation presented by whiteboard coding would induce (and mostly assesses) performance anxiety – interviews look nothing like day-to-day software development.
The Privileged Status Quo
There are some companies that recognize the flaws of this process and have adapted their hiring processes. Unfortunately, all of the biggest companies still expect candidates to answer questions about data structures and algorithmic analysis in a timed, isolated setting. Even Microsoft, with its recent research on the efficacy (or lack thereof) of current interviewing practices, persists with the whiteboarding format.
Perhaps it’s worth acknowledging that plenty of people in tech have a vested interest in continuing this enterprise. For those who have made it through the system, there is sometimes survivorship bias that makes the individual believe they got the job on merit, rather than luck, privilege, or the cognitive biases of their interviewers. It’s basically a form of Stockholm syndrome where the imagination of what’s possible if we were to revisit the current evaluation criteria has been snuffed out by years of being told that this is the best way to screen candidates.
But there’s also plenty of money to be made — there’s a sizeable cottage industry around preparing potential candidates to land the job at that big tech firm. A quick Google search on interview prep reveals a barrage of advertisements for books, courses, and other services aimed at those willing to fork out time (and money) to gain an advantage in the process. Those lucky enough to attend the top CS programs have courses tailor made towards being successful in these settings.
Given these dynamics, the classic technical interview has evolved to become much like the SAT used by US college admissions committees. Those with more privilege fare better, because they most often have time and monetary resources necessary to prep diligently.
Who Gets Left Behind
This process optimizes most heavily in favor of a specific type of candidate: those newly out of college, CS theory fresh in mind, with plenty of time to devote to studying. If you are an older seasoned professional, a parent with children to take care of, or are transitioning to tech from another career, sinking a sizable amount of time into subjects that have little relevance to the actual profession has the chance to cause significant undue hardship.
Referencing the NC State study mentioned earlier, this interview format is straight up ableist to those suffering from mental health issues, particularly anxiety. Even if you just have test performance anxiety, this process sets you up for failure.
But most importantly, I'd argue that almost everyone pursuing the software profession suffers under this system. I’ve had way too many conversations with engineers where the person I’m talking to says something like “I’m thinking of leaving my job,” only to find that person in the same role a year later. And why is that?
I'd say it's because the idea of having to go and prepare several hours each day for months is a cost too high for many people. And companies like it that way because that means you shop around less, and have less bargaining power when it comes time to talk about pay increases and promotions.
The Need for Advocacy and Organizing
Software engineers are one of the only professional class of workers that put up with such practices. Imagine, if you will, a medical doctor interviewing and having to drill through the nuances of anatomy rather than discussing how they go through their clinical practice. On the face of it, this situation seems absurd, yet this is the expectation for landing top roles in the industry.
We recognize the current state of affairs is Bad™️. The problem with just recognizing the situation is that we keep having conversations about Just How Bad it is and going in circles. Nothing will change up until we start organizing as a collective and proposing new, more inclusive ways of evaluating talent.
If you are one of the fortunate ones to be employed by a company like Facebook, Amazon, Apple, Microsoft, or Google – would you take a pledge to refuse to participate in whiteboard interviews?
Conversely, if you are looking for employment as a desirable candidate, would you pledge to not take any interviews that require whiteboard coding?
Would you agree to participate in discussions with your peers and push for change until there is tangible consensus on how to improve the situation?
Understandably this is a tall order. From reading tech forums like Hacker News, it's clear that a sizable percentage of software engineers have an aversion to thinking about labor unions in any form. I'd simply encourage those of you who feel comfortable with the status quo to introspect and consider that not everyone has the capacity to perform well in this interview setting, though that doesn't make them any less qualified. There are so many talented people that would benefit immensely from having different methods to showcase their skills, and I sincerely hope we all can work toward realizing that brighter future.