the good

The nice thing about a whiteboard is that…you can focus on the big picture…you don’t have a compiler…you don’t need to write the entire class definition…you get to focus on the interesting, “meaty” parts of the code

the bad

Interviews are conducted under pretty artificial conditions, and as a result they wind up being most effective at hiring people who are good at interviewing. This is a special breed of parrot, in a way. Interviewing isn’t a particularly good predictor of performance, any more than your rank in a coding competition is a predictor of real-world performance. In fact, somewhat depressingly, there’s almost no correlation whatsoever.

Next, interviewers make up their own interviews. This is crazy.

It gets worse. We’re unclear about selection criteria. The gauntlet of tricky technical questions is just the beginning. Driven in part by an oral tradition of how the last 20 years of technical job interviews has resulted in terrible hires, interviewers try to assess for “smart and gets things done”. In other words: “subjective and even more subjective.”

the silver lining - arbitrage

Want to make a team of software professionals hate you?

Require them to interview from a script. When you think about it, making a hiring decision is one of the most empowering things a developer gets to do. It’s the closest they get to controlling the company’s destiny. No surprise then that they get attached to their favorite questions, and to the discretion they’re given by the process.

They’ll get over it.

You need to collect data. You need every candidate to get the same interview. You can’t make that happen if your team improvises the interview.

After you apply, you are going to hear back from us, even if we don’t seem like a good fit. In fact, throughout the process, we strive to make sure you never go more than seven days without hearing from us.

You see a lot of talk about moneyball, but for some reason people are less excited about…trainingball? Practiceball? Whatever you want to call taking people who aren’t “the best” and teaching them how to be “the best”.

Programmers are woefully underutilized at most companies. What’s the point of hiring “the best” and then crippling them? You can get better results by hiring undistinguished folks and setting them up for success, and it’s a lot cheaper.