In the past couple days there’s been
several
articles
about how Google’s interview process has failed. The headlines are
overblown, inaccurate really, but to be expected giving the goal of
getting clicks. In reality Peter Norvig was talking about
counterintuitive
findings.
They were surprised to find that some of their best employees were not
unanimously voted in. That makes a lot of sense given my personal
experience with the Google interview process and my opinions of what
matters in making software engineering hires.
In the end it all comes down to enthusiasm. My personal stab in the dark
would put it’s weight at 75%. The rest is equally split between
intelligence and the “right” way of thinking. GPA doesn’t matter. What
school you attended doesn’t count for much. And yes brain teasers won’t
tell you anything useful, at least beyond being a crude measure of raw
intelligence. Google doesn’t ask brain teasers, nor does Amazon or any
other decent tech company. I’m sure there are people going off script at
both companies who do so, but it’s not coached in either place for good
reason.
My personal experience with Google’s process is that it’s basically a
final exam for a mid-level algorithms course at Stanford. In my opinion
that’s where they’re going wrong, but not failing. Google hires really
smart people, but the most intelligent people aren’t necessarily the
best software engineers. And the best software engineers aren’t
necessarily the most intelligent (I like to think I illustrate that
axiom.)
I believe the key to finding the best people is to make the interview
process as realistic as possible. By that I don’t necessarily mean
asking a question/solving a problem that comes from stuff you really
work on. Most of the time real problems are too intricate to fit nicely
in an interview slot, it’s just not possible to transfer all of the
relevant context. The next best thing is working through a simpler, in
scope, problem together. Together is the key here. You need to ask a
problem that the candidate won’t know the answer to. Something where
she’ll make a couple false starts, need to ask a few questions, have a
few things right, and importantly get a couple things wrong.
It’s easier said than done, but that sets the stage for what really
matters. Yes she has to be decently intelligent and good at solving
problems, but the key is… Is she’s having fun? Are you enjoying
working with her and helping to move things along? Is a decent first
pass at a workable solution emerging? Are good questions being asked?
Would you dread coming to work everyday if this is what it involved,
because more often than not that’s what it will involve.
Pure behavioral interviews will give you a half-decent read on the 75%
of things that is summed up as enthusiasm, but it won’t do much for the
other 25%. I’ve found, without fail, that the key is to get at both of
those things in one go via the right process.