Tech interviews are hard enough, but for many tech pros there’s an aspect that’s downright unbearable: the whiteboard. Developers complain about it often (and have for years), while some tech companies have stopped whiteboard exercises altogether. The question remains: should we just ditch the whiteboard?
In theory, whiteboard interviews are great. Designed as a method to allow candidates to scribble out computer-science concepts, the practice has become something else entirely. Now it feels like a tool used to embarrass good candidates as often as weed out unfit ones.
There’s often a time crunch imposed on candidates, too. An interviewer may ask you to invert a binary tree or reverse a string, but limit the amount of time you have to do so. Nerves of steel are critical… but is that a quality developers need day-to-day?
Whiteboard coding seems to have its roots in the earliest days of computing. At a 2005 commencement speech for Lakeside School, Microsoft co-founder Bill Gates reminded us that hacking away on a MacBook wasn’t always how the world worked:
You had to type up your program off-line and create this paper tape—and then you would dial up the computer and get on, and get the paper in there, and while you were programming, everybody would crowd around, shouting: “Hey, you made a typing mistake.” “Hey, you messed this up!” “Hey, you’re taking too much time.”
Whittling down a candidate pool via whiteboard would have been a great idea in those days.
Few Do Whiteboard Interviews Right
Chris Brown, Vice President of Human Resources at West Corporation, notes the process can get unruly. “At times, managers can adopt questions/scenarios aren’t always relatable to the industry or are outdated,” he said. “Also, the manager needs to be leery of using internal jargon that most candidates may not understand, like citing certain scenarios that might be common to their company in general, but not at the public at large.”
“Asking someone to write a piece of code on a whiteboard is not natural at all,” added Sylvain Kalache, co-founder of the Holberton School, which uses whiteboard sessions as part of its curriculum because it’s useful for identifying which candidates understand macro concepts. Kalache added:
Drawing an architecture diagram (which could be a web stack composed of databases, web servers, load-balancers, caching layers, etc.) is something that will allow the interviewer to assess if a candidate has a good understanding of how [a] software system [is] working and [is] articulated, where a system’s strengths and weaknesses are, and how evolve it. That’s a skill that will be required to do the job well. Software [systems] have to be designed properly so that the product/platform will be properly working.
Some candidates just don’t get it, though. Marcion Albert, CEO of newawning.com, told Dice about one particular candidate who simply couldn’t deal with the pressure of standing in front of a whiteboard (and may not have been qualified to anyway):
When the candidate arrived, he began by making excuses for his inability to answer my questions on the phone, which I said was fine. I told him that he did well enough to get an in-person interview and that today was what’s important.
When we started, he tried to steer the conversation to all the projects he had worked on, but I explained that I needed to ask him how he would solve specific questions. I handed him a marker and asked my simple program question that would look at a string and determine if it met a specific criteria. For reference, this is something used at a middle school coding contest, and as the applicant writes up a solution, I complicate the success criteria of the string each time to see how they handle more complex use cases.
Upon getting the marker, he goes to the board and begins writing code. He starts in one language, and after a few minutes asks to start over in a different language. I agree and say that I’m just looking for a working solution, and that I’m here to answer any clarifying questions. On his second attempt, he is really frustrated, repeatedly writing and erasing lines, and then asks if he can just talk through a solution with me in “pseudo-code” instead of writing it.
I say that I’m really looking for something written, and we can talk through each step as much as he likes while he’s putting things on the whiteboard. He turns to the whiteboard, staring blankly for 10 seconds, then violently turns around, throwing the marker inches from my head with enough force to leave a hole in the drywall. He begins yelling profanity, grabs his personal items and storms out the the building, cursing the entire time.
It’s Not Fun for Anyone
As-is, there’s strong evidence for the uselessness of whiteboards. A good jumping-off point would be Max Howell’s popular tweet after being rejected by Google:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
— Max Howell (@mxcl) June 10, 2015
It’s not that Howell is unqualified, or that his whiteboard issue was necessarily the reason he didn’t get hired. It could have been a number of things, but the whiteboard may have been the only tangible let-down in the interview process.
There’s no silver bullet for hiring qualified talent that will meld with a company’s culture, but if we take a macro view of our current situation, restricting the use of whiteboards in interviews may be beneficial. While many founders, CEOs and managers we’ve spoken with conclude that whiteboards are a great way for candidates to relate general understanding of concepts, some misuse it as a way to trick candidates into failure.
And it’s all very unnatural. Ben Dilts, CTO and co-founder of Lucid Software, may have a better method:
Our interview process includes a hands-on coding exercise, with a compiler, IDE, and open Internet access which serves the purpose of gauging candidates’ ability to actually write concise, well-organized, working code in a reasonable amount of time.
We additionally have a whiteboard coding exercise which is not intended to be a test of a candidate’s ability to write code on the spot, but rather as a mechanism for exposing their core Computer Science knowledge and intuitions.
If we only had our coding challenge, a candidate might be able to implement a really inefficient part of a compiler in a short period of time, but have poor reasoning ability about the underlying theory.
Retire the Whiteboard (Sometimes)
Developers don’t program on whiteboards; the days of Bill Gates and friends writing down code before taking it to a terminal are long dead.
And let’s be honest about the process. Developers lean into search, Stack Overflow and GitHub to get things done more often than anyone would like to admit, so cutting them off from resources is a bad idea. Software development takes time, too. While a concept may be immediately recognizable, it takes time to cultivate it into a solid working product.
A better use of the whiteboard may be to dig deeper into a candidate’s GitHub project, and encourage them to sketch their concept for how an app or tool works and can scale. Ask them about their own projects; if they can’t relate how their own projects work–and accept criticism about them–that might provide a better idea of who they are and how they work than inverting a binary tree ever could.
Right now, candidates have little recourse beyond pushing back when asked to do things on a whiteboard. Though most agree that whiteboards have their use cases, asking for a more familiar environment for some tasks is reasonable.
Candidates, consider bringing your own laptop: instead of hand-writing code, ask to open up your favorite IDE and code it right on front of them. Time limits (if imposed) make it feel like a hackathon anyway, so ask to hack!
Asking to skip a whiteboard exercise when it’s not applicable to the task seems reasonable, and gives you a bit of insight into how rigid a company’s structure might be. While interviewers may not want you googling basic computer science concepts, busting out some code and flipping your screen around is a fair compromise.
A basic takeaway is that candidates and companies are looking for the same thing: productivity and personality. Everyone wants to churn a great product, and to get along while doing so. Finding common ground to make that happen should also be part of your next interview process, even if that means leaving the whiteboard blank.