Skip to content

Hiring Engineering Team

    Hiring Philosophy

    • Hire people who are 
      • Smart
      • Get things done
    • Great people are never on the market. Bad people are in the market a lot.
    • It’s better to let a good candidate go than to hire a bad one. The cost of a poor hire is very high.
      • A bad hire takes a long time to notice.
      • Can cause morale issues in the team.
      • May even cause good people to leave company.
    • It is easy to decide on bad and smart candidates. Time-consuming part is the “maybe” candidates. That is where the interview process matters.
    • Hire people with aptitude, not a particular skill set. 
      • Technology changes fast. It will be technologically obsolete in a couple of years. Hire people that are going to be able to learn any new technology.
    • Always remember that it’s very hard to judge someone based on a few hours of interaction. You’ll get it wrong occasionally. In those cases, fire them fast.

    Interview Process

    • Decide number of interviews
    • Each interview should consist of one interviewer and one interviewee.
      • Don’t try to interview a bunch of candidates at the same time.
      • Don’t allow multiple people to interview a particular candidate at the same time.
    • At least one hour interview for candidates that go on to the next round. Could be less if you are rejecting a candidate.
    • Best people will not do homework exercises. They find it insulting.
    • Decide on decision process
      • Thumb rule: Reject if two junior people (or one senior) are against it

    Funnel

    • Resume -> Phone -> In person interview -> Offer
    • Each step’s success should be 50-70%, otherwise there’s too many low quality people and you need to fix that process.

    Tech interview – Resume screen

    • Look for: 
      • Passion.
      • Pickiness. Are they interested in our company?
      • Brains. GPA, Competition winners.
      • Selectivity. They have gone through some highly selective process in the past.
      • Hard-Core

    Tech interview – Phone screen

    • Goal is to not waste the team’s time. Quick yes or no.

    Tech interview questions

    • DONTs
      • Avoid brain teaser questions, “Aha” questions.
      • Avoid asking a bunch of trivia questions about programming that can be googled.
    • DOs
      • Give them open-ended questions and problems.
      • Ask them to code (laptop / paper / whiteboard – whatever is feasible).
        • Check their attention to detail, thinking process, coding style, code readability, naming conventions.
      • Ask them to design a simple system with DB schema, classes, methods.
    • Have them critique something
    • Ask about past projects
      • Look for passion. Smart people are passionate about the projects they work on. Bad candidates don’t really care for their projects.
      • Good candidates are careful to explain things well.
      • Look at past projects listed on their resume, and ask them to talk about those projects—how was the team organized, what technologies and architectures were used, was the software successful in production, etc. 
        • Listen for what lessons they learned from those experiences, and whether those lessons match with lessons you’ve learned from your experiences.
        • Look for leadership / initiatives taken.
      • Behavioral Interviewing: Pretty much anyone can give you the “right” answers to the questions, but you don’t want the “right” answers — you want the real answers. 
        • Ask them to describe an example in their past when they’ve had to deal with that situation. Discuss it with them. How did their strategy work for them? What did they learn? What would they do differently?
        • Before judging, remember that decisions are taken in a certain context with certain constraints. Understand them.
    • Sell your company / product.

    Culture fit

    • Culture fit is hard to determine.
    • Senior people should look for it during the interviewing process. Catch signals from the way candidate is answering.

    Smaller company pitch

    How can a smaller company compete with bigger companies in hiring:

    • Learning: More responsibility. Large companies won’t give you this kind of responsibility for years.
    • Faster Career Progression.
    • Higher Designation.

    Articles

     Browse articles

    Podcasts

    Videos