Interviewing is touchy subject. Some places are famous for their extremely rigorous and stringent interviewing proceses. Most organizations that I’ve seen actually have almost no rigor beyond basic HR procedure. Small organizations frequently can’t afford to invest in a sophisticated proceess, but they have more much more to lose from mishire since each contributor is so important. Everything else you do well or poorly as an organization ultimately at the mercy of the quality of your people. They say the OJ trial was won in jury selection, well your company’s success is won in good recruitment.
The pre-interview stage is simple, but crucial. You need to write a clear job req. Think about what you actually need from the position and state it clearly. If you need a coder with specific skills and need them to hit the ground running without training, be up front about it. If you’re looking for smart people willing to learn, say that. Explain the company mission and what is expected in the role. Make the role sound good, but don’t oversell or misrepresent. A candidate who loses interest is just as bad an unqualified candidate. Both will waste the interviewer’s time.
Once you’ve got interested candidates, there’s a few things you want to look for to assess a candidate’s quality and maturity. The first step is usually to look over their resume/CV/LinkedIn and try to get a sense of what their experience is. Be wary of any resumes larded with keywords that match your req. Especially if they list skills that don’t match their work experience. Anyone with 800 tech skills listed is probably spamming. Look at the actual work experience to see what they’ve really worked on. If you get a good feeling, move on to phone screens.
The phone screen should be short and focussed. I use it primarily as a bullshit detector. A rough agenda for 30 minutes:
- Intro yourself, the company and the open role. 5 minutes
- Ask for an intro and most recent intro from the candidate and keep them to 5 minutes.
- Ask about one recent project. Get a description of the project, the team, the candidates role and the solution. 5-10 minutees is enough.
- Lightning round! This is the spot where I ask 8 or 10 trivia questions about tech that the candidate is claiming proficiency in. Basic language features of any language they know. Network or HTTP if they’re web devs. Maybe XCode arcana for an iOS dev. Questions should be answerable quickly and succinctly. I’d expect a pro to answer most (not all) without thinking too hard. Make sure you set that expectation up front and tell them to say “I don’t know” right away if they don’t know. A few misses is ok. Too many means they’re a fraud.
- Leave a few minutes to answer their questions.
If they pass the bullshit detector and are still interested, you can move on to scheduling a full interview. This can be in-person or just with a video conference and virtual whiteboard. Your lineup of interviewers should be a mix of both seniority and disciplines. A tech candidate should meet with fellow devs, leads a director and maybe one person from an adjacent practice like QA or product. The key is to align on who will cover what topic so you get the full breadth of their experience and capabilities. A breakdown of responsibilities per session can be something like
- Session 1: Process, teamwork, accountability.
- Session 2: Technical deep dive
- Session 3: Decision making, problem solving
While it’s important to get a feel for what they’ve done in these different capacities, it’s just as important to get a feel for capability. What did they learn from past experience and what sort of untapped potential is there. If they have run an agile project or built a Java web service, that’s great. But to get a sense of their maturity, you’ll want to dig into what they learned. What input they gave, what they learned and what opinions they’ve formed. Getting a well-formed opinion on a controversial topice (like agile) is a great indicator that they’ve put thought into what they’re doing. The actual opinion is beside the point, but also worth noting.
My personal favorite maturity question is simply: How do you come up with an estimate? The more they talk the more the senior they are.
Last step is get all the interviewers together for a regroup, discussion and decision. It’s important that the interviews not influence each other in between sessions. Let them all happen without prejudice and save the discussion for the end.