What Google gets right, and where it fails
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.