Introduction
Hiring. It’s the single most important thing I do for any organization. I was hired for this job, and now I will hire others to work with me. I’d like to talk (not so) briefly about how I evaluate candidates, start to finish. Some of this is really only applicable to those who work in software: PM’s, Devs, and Test, however other bits I feel are universal across all industries.
Caveat 1
Right now, it’s very difficult to find talented engineers in Seattle. There are a lot of funded companies doing interesting things, and so good developers have a pick of opportunities. If for some reason, you believe you are a good developer but aren’t finding success, then I ask you to consider what I’m going to tell you, because it’s probably going to make a difference in finding a job.
Caveat 2
If you’ve gone through this process, and were not extended an offer, all it really means was that you weren’t the right fit for our engineering position. I’ve been rejected for one opportunity, hired for others and have found success. It isn’t necessarily about winning here, it’s about taking shots.
Software vs !Softare
For readers who aren’t in the software world, interviewing in the world of software (including Tech-PM, Dev, Test and Dev Manager), is unique among other fields, especially other engineering fields, in that the process is highly technical. We’re less likely to be asked to describe a time when we did not get along with a manager, and instead, asked questions around subject matter expertise, fundamentals of software engineering, as well as to design and actually write code.
A typical full interview loop consists of 6 to 8, 1-hour sessions with different interviewers all asking some sort of question.
Good companies will usually provide lunch somewhere in the middle.
Part 1: My Experiences as a Candidate
I know that I am biased towards my hiring procedures based on my experiences interviewing for developer jobs, and with that in mind, here are some highlights from my formative years as an engineer.
In the Beginning
For the record, when I first started, I sucked as a software engineer candidate. Not because I sucked as a developer, but because I lacked the skills to perform adequately in interviews. It wasn’t all terribad, I did successfully interview for an internship position, that did require some minimal white-board coding.