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 RightChris 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 AnyoneAs-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
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.