Hiring good engineers is really, really hard. These days, it’s a seller’s market, and a top candidate will almost certainly have a number of competing offers with all sorts of shiny perks. I’ve done some hiring in the past, and I’ve tricked some great companies into letting me work with them. For whatever reason, I’ve had a disproportionate number of conversations about hiring and being hired recently, and I figured I’d share some nuggets that have come up.
Hiring is your #1 priority
Your company is only as good as the people you hire, and it’s hard work to bring in the best people that you can. If you hire A-level engineers, you’ll get more A-level engineers. If you end up with B-level engineers, you’ll have a really hard time hiring A-level engineers. Getting those A-level engineers is hard and it’s worth your time. You’re overworked and stressed out, but you have to commit your full energy to finding the best talent you can. The future of your company depends on it.
At a high level, this means being rigorous and thorough with your interview schedule. At one company I worked, we had an informational phone screen, a technical phone screen, three one-hour interviews with a long checklist of questions/topics, and a three-hour coding project. It was a grueling process, both for the interviewers and the interviewees, but it was totally worth it. When we’d finished all the interviews, it was very clear both to us whether we’d wanted to hire that person and to the candidate that she wanted the job. The latter part of this is critical. A candidate is also interviewing your company, and giving her opportunities to see your team interact both technically and personally gives her a good idea as to whether she’d want to work with you.
Don’t waste anyone’s time
In a long interview process, the major key is avoiding wasted time. Your interviewers need to know the schedule and the state of the interview so far. Give them the candidate’s resume with enough time to understand with whom they’ll be speaking, inform them of what questions have been asked and let them know any particular concerns or things to look for that came up in previous interviews. Otherwise, your interviewers look dumb, which makes your company look dumb. If your interview process is scattered and disorganized, that tells the candidate that she isn’t important to you.
Not every interviewer is going to be at the top of their game all the time, so double up on interviews if you can. I space out or get distracted at times and have been saved by having a second person in the room to keep the conversation going. Having two people on the other side of the table can be intimidating for a candidate, but it makes them feel that the company is taking them seriously. Also, having more than one opinion on whatever notable things a candidate has said is always valuable as you decide whether you want to make an offer.
If it’s clear that a candidate isn’t doing so well and won’t make it through the process, pull the plug as soon as you can. Don’t go through the motions for the sake of doing so. Your engineers’ time is better spent building something than doing a throwaway interview for an already-rejected candidate. This means that everyone throughout your process needs to be decisive and invested. Choose interviewers who have an opinion, not those who’re just collecting what the candidate said and relaying it.
Be punctual and responsive
As a candidate, I’ve had some bad experiences with this. If you tell someone that you’ll call them at 2:30, call them at 2:30. Not 2:32, not 2:35, not 2:40. 2:30. Especially if you’re recruiting someone in school or who already has a job, chances are that they’ve carved out this time and found a quiet place to talk. Leaving them waiting puts them in an uncomfortable spot.
Similarly, after interviews, follow up with your candidates if and when you’ve said you will. If they’re in the middle of recruiting at a bunch of different places and you’ve said you’ll get them an offer by Monday, do it. Don’t string candidates along by stalling for time. Being respectful of your candidates’ constraints goes a long way for your image as an employer. You may have other internal reasons to delay the recruiting process, but be as honest as you can.
Show, don’t tell
A top engineer has everyone competing for their talents, so inevitably, your interview process will involve a lot of selling. I’ve found that talking about how great your team is and how much fun it is to work with you is much less-effective than showing it. Have an awesome culture and a great place to work, and people will find out about it. If your engineers are awesome, fun, and genuinely happy, that’ll come through as the candidate talks to them. Show your candidate how much your team enjoys spending time together; include her in lunch, happy hour, or a game of foosball. If your team doesn’t enjoy spending time together, you have bigger problems than hiring.
If you’re working on awesome technical problems, show them off with a tech blog or presentations at conferences or meetups. I had a pretty big crush on the OkCupid data team when this blog was kept up-to-date. Talks at conferences that detail difficult problems with elegant solutions are incredible for hiring, especially if you don’t oversell your company and turn it into a marketing pitch. “Here’s this cool problem I’m working on. Here’s how we’re solving it. By the way, I work at ____” is much more effective than “I work at ____ and we solve all sorts of interesting problems, including this cool problem. Here’s how we’re solving it.”
The whole point of having an efficient interviewing process and an attractive place to work is to create a self-sustaining hiring pipeline. Great engineers bring great engineers bring great engineers bring great engineers… There’s obviously more to personnel management than hiring, but if you’ve got hiring down, that’s a great start.
Thanks to Matin and Christina for reading drafts of this post!