A blog about software and making.

Hiring Hacks: How Stack Overflow Interviews Engineers

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

  1. 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?
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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