Notes from a webinar by Matt Sherman, Engineering Manager at Stack Overflow, on the company’s technical interview process.
Key Traits to look for: Smart and gets things done
General principals
- Not a quiz! No gotchas! No brain teasers!
- You want to start a conversation that reveals how they think.
- Choose problems that lead to good conversations!
- Do you want to work with this person?
- Each interviewer must decide hire/no hire (no maybes)
- “I think they are a good but not right for my team” is a red flag.
- Interviewees (even no hires) should leave feeling they are respected!
- They may be future customers.
- They may have friends you may want to interview.
- Schedule 60 min but say 45 min so you can end early if they are struggling. Be graceful about ending early.
- Look for depth, passion, interest in the product. It’s hard to look for a “cultural fit”.
- Document technical questions and try to standardize interviews.
- Ask yourself: At the end of 60 min what information do I want to have about this person?
- Evaluate your own performance during interviews. What could you have done better?
- It’s better to not hire than accidently hire a bad candidate. Err on the side of no hire.
- Shadowing - Follow experienced interviewer for 6 months. Do mock interviews with co-workers.
- Interview cycle should take 2-3 weeks max.
- Feedback
- “You’re not there yet but we think you could be.”
- Provide list of books to read and things to work on
- NOTHING PERSONAL! (Legal Issues)
Interview process
- Resume Review
- Targeted - Is this a targeted application or a generic mass mailing? Why do they want to work here?
- Eexperienced - 4+ yrs. full stack
- Depth - Tech is a stack of layers. They use the software but they also know how to go deeper into guts of the system.
- Passion - Do they enjoy programming? Do they make games? Code for fun?
- Gets Things Done - Do they get things out the door? Do they finish projects/products?
- Remote Code Screen
- 30 min over hangouts using a shared document.
- Should be intentionally easy.
- Any day to day programmer should be able to do it.
- Smart interview
- In-depth algorithm question
- How much complexity can they keep in their head at once time?
- Encourage them to think out loud. It’s a conversation.
- Make it clear you want to know their thought process, not the answer. It’s fine if they get it wrong and go back.
- Gets things done interview
- A larger system design question.
- At an architectural/high-level design an entire application.
- Look at a system and understand what each part is and how they work together.
- DB (SQL) + Web Server (C#/Ruby/etc.) + Browser (JS/HTML)
- Look for both breadth and macro understanding.
- Full-stack - They could do the whole thing on their own.
- Product management interview
- Talk to the people who decide what the products are.
- Do they understand users and the business?
- Do they care about customers?
- How would you design and test this product?
- How would you know if this product was successful?
- A lot of engineers do product management at some point.
- Executive interviews
- It’s your turn to sell yourself and convince them they want to work here.
- They probably have other offers.
- Start talking about a team they might fit on.
- Make an offer
- Important to have a fast turnaround.
Finding candidates
- Have a good brand
- Recruiters are your brand!
- Go to events/meetups.
- Connect with people.
- It’s much easier to develop a brand if it’s true :-)
- The ideal situation is when an engineer already working at company recommends another engineer.
Event Link