It shouldn’t be surprising when I say that I don’t like whiteboard interviews. I’m pretty sure nobody does. It’s a sentiment among developers as old as time. Whiteboard interviews are a coming of age experience for us. Given a complex word problem, select and implement the correct algorithm that you were expected to memorize before the interview.
Something about the mix of being put on the spot combined with the pressure of having to write code in front of someone else always gets to me. I generally do fine, I solve the problem, but not without a few embarrassing mistakes along the way.
I replay these interviews in my head hundreds of times afterwards, and I always keep coming back to one question: what do these interviewers think they’re learning about me? What new data points were they getting that couldn’t be found in my portfolio, LinkedIn, GitHub repositories, or simply by talking to me?
The specific traits that makes a talented developer are incredibly hard to define, and this ambiguity means that hiring is a really tough job. So I sympathize with them when they attempt to boil it all down to a question that they think is quantitative. My performance on an algorithmic question is easily compared to other candidates. But do I ever really need to recall the exact implementation of quick sort, or know how to traverse the strongly connected components of a directed acyclic graph with Kosaraju’s off the top of my head?
At my internship, my company says that they hire for “attitude and aptitude” instead of looking for candidates with the right hard skills. Asking candidates to solve questions on a whiteboard doesn’t help them figure out whether they possess these attributes. So instead they get to know us as developers. This doesn’t take any more time than a whiteboard interview. It just requires companies to trust that their qualitative judgements about applicants are far more effective at getting the right developers than a whiteboard question.
So I want to propose a compromise. As a candidate, my job is to prove that I’m the right fit for a company. So I’ll give companies as much data as I can provide: a resume, portfolio, LinkedIn, and Github projects. I’ll talk about my experience, the problems I’ve faced, and provide references from past coworkers. In return, I ask that companies evaluate me holistically, giving me the chance to show that I have the essential qualities that they’re looking for rather than the ability to cram for a test.Image