The other day, I joined a semi-viral tweet chain with I’ve been coding since 1979 and I still have to look up java.lang.String methods all the time. There were a bunch of programmers doing this and I thought it constituted amusing humility while also making a useful point: Remembering the details of any particular API or algorithm is irrelevant. Turns out I was part of a trend, see TheOutline: Programmers Are Confessing Their Coding Sins to Protest a Broken Job Interview Process. Except for, that’s bullshit; I still do whiteboards at interviews, and I don’t think the idea is broken. (Also, they’re not sins.)
Does this mean I ask people to code a bubble sort? Or to show any evidence that they remember the details of any particular API? Obviously not: As many have pointed out, that’s what Wikipedia, StackOverflow, and (most often) my IDE’s auto-complete are for.
These days, when I’m interviewing for senior-developer and development-manager positions at AWS, my questions are of the form “Design X”, where X is something like Twitter or SQS. The whiteboard is an appropriate level of detail; I want to look at the boxes and arrows they draw and see if they come up with a sane decomposition of the problem, and if they spot where the hard parts are. Sometimes, if there’s enough time, I might ask them to sketch in a bit of front-end code, but usually not.
Back when I was at Google, I was mostly interviewing people for “Developer Advocate” positions, and a lot of people somehow got into the process without being able to code at all. So, early on, I’d ask. “You’ve got a list of objects, write some code to select one of them at random. Any language, don’t worry about syntax, assume the built-in random function is good enough.”
That was actually a nice question: If you wanted to dive a little deeper, you could ask the candidate to sketch in unit tests. And if you’re talking to somebody super-technical, ask “Your code is in production and sometimes it’s throwing illegal-index exceptions under heavy load. What’s going on and how do you fix it?” Just because that’s a cool problem, very real-life, and most people smile when they get it.
Apparently DHH started the trend by admitting he couldn’t code a bubble sort on a whiteboard, and I think we can all agree that would be a totally dorky interview question. But TheOutline’s piece goes further, alleging that whiteboarding is anti-diversity. See Aline Lerner’s excellent (and data-rich) You can’t fix diversity in tech without fixing the technical interview. It mostly argues that “logic puzzle” interview questions are bullshit, and I heartily agree. By the way I got one of those in my interview day at Google, and another at Amazon, and I blew them both.
At AWS, these days, I’m on a few hiring loops, and I don’t see anyone asking logic puzzles. But I have no idea what the state of the art is these days at the big tech companies; are there any studies?
I think and hope that the way I use the whiteboard doesn’t make me part of the diversity problem, and I’ll be watching out for data on the subject.