I do a lot of interviews. I mean, seriously, a lot of interviews. One a day is getting to be pretty normal.
I’ve read before Jeff Atwood’s classic “The Non-Programming Programmer,” and it’s still disturbingly valid, half a decade later: A very large percentage of the phone screens and in-person interviews I do are dismal, epic failures: The person can’t code, and, more significantly, doesn’t realize how poor their coding skills are.
Our dev shop is populated by really capable people. We get stuff done. Our flagship product has two and a half million lines of code in it — and growing — and there are a raft of satellite products orbiting not far from its gravitational well. And it’s not large because it’s wasteful; it’s large because that’s the smallest we could make it and still do what it needs to do.
And what that means is that if you want to join our staff, you have to know what you’re doing. We don’t have time to hand-hold. You need to be able to make stuff on your own. If you can’t deal with a business person giving you some abstract requirements and saying, “I need this in a month,” you’re not going to last. (Yes, we’re Agile, and we do plan better than that quote might imply, but a lot of stuff really boils down to, “Here’s a rough idea, go build it.”)
When you bomb out of our interviews, you’re actually doing yourself a favor. I know it seems like we’re being mean, but I swear we aren’t. In our initial interviews with you, we give you programming problems. Easy problems. These are all things that should have been homework in your Freshman or Sophomore year of college.
And any one of our current employees can do these problems in about five minutes. Literally. We’ve had phone screens that ran 15 minutes total. The reason we give these easy problems is because the real work is way harder. You’re never going to last in a two-million-line codebase full of graph algorithms and complex data structures if you can’t count letters in a string. We know this because we used to have weaker interviews, and people bombed out hard during the first month of employment afterward.
So here’s the deal. If you want to work for us, here are the critical parts:
Continue reading “How to Pass an Interview with Me”