Lowering the Barrier

Making programming (everything) more accessible

14 Oct 2021

Hiring Engineers

For over three and a half years, hiring engineers has been on the front or back of my mind. No single thing I do is unique, but the combination probably is and writing it down could help at least one other team on this planet, so here we go.

First off, before you even start writing a job description, you need to have an excited team that ships. That excited team may just be you. Or you and another person. Long before someone even decides to interview, they’re sizing up your company and your team. Are they crushing it and loving life? If I go there, will I get to do exciting work? Will it be grind? Consciously or subconsciously, people ask themselves these questions. It’s far more rewarding to join a winning team and help them win more than to join a so-so team and turn them around (especially if you don’t have control over the makeup of the team).

Salespeople talk about products that are so good they sell themselves. When you’re recruiting, you’re selling the opportunity to join your team. If your team keeps shipping and the number of users keeps growing, that sales job becomes a lot easier. You can answer any question with the truth. Why did you found or join the company? What are you excited about? What’s your biggest challenge? Your enthusiasm and the enthusiasm of everyone the candidate talks to will shine through.

Do the job before you hire for the job. This approach forces many good habits. You’ll be hiring with a clear need in mind, instead of hiring for the sake of appearances. When you go to write the job description, you’ll know you need from the role and be able to list specific projects that this person will take over. When you get to the point of talking to candidates, they will appreciate that you know what the job entails and have realistic expectations. It’s another way of showing people that if they join your team they’ll be helping it to win more, not educating people on what winning even means.

If you’ve done the job, you’ll know how to interview for the job as well. You want to simulate what it’s like to work at your company. For product engineers, that means shipping a small product. For infrastructure engineers, that means building infrastructure. For site reliability engineers, that means designing, critiquign current designs, and responding to an incident. Designing such an interview takes time and practice. You will probably have to run through it 2 or 3 times with living breathing candidates before it goes perfectly smoothly. What’s it like to work with this person? That’s the question you’re trying to answer. And you want to give the candidate a good idea of what it’s like to work with your team.

If they behave a certain way in the interview, when they have every incentive to put their best foot forward, they’ll behave that way on the job. Pay attention to small details.

At the end of an interview, I like to give the candidate a chance to present their work, answer questions from people on the team, then ask the team questions. Sometimes these sessions turn into lively conversations. Sometimes they’re simply a question and answer period. For candidates that have done well, this is a chance for them to meet their future teammates and for you to sell the vision. They can also hear from the other engineers what it’s actually like to work at your company. It’s important that at least one person on the team drive the conversation and talk about long-range plans. It’s also important that that person not monopolize the conversation. It’s reassuring for the candidate to know that everyone on the team is a trusted spokesperson for the company and that they’re hearing multiple perspectives, not just management’s.

Hiring, like finding a college or a partner, is a matching process. No matter how talented someone is, if they’re not excited about what your company does, they’re not a good hire. Not everyone on the team has to be excited about the same things you’re excited about, but they have to be excited about something. It’s tempting when you meet someone really competent, especially when you haven’t seen a strong candidate in a while, to talk yourself into extending an offer even if they’re not a fit. You should have a clear hypothesis about why a candidate will do exceptional work on your team. “Why not?” is never a good argument for extending an offer.

Knowing that I’m trying to find a good match has stiffened my backbone both during the interview process and in offer negotiations. If someone’s not a fit, asking them to take most of a day for an interview is a waste of everyone’s time. Don’t do it. If someone’s asking for dramatically more compensation or a higher title than anyone else on the team, that can be a sign that there’s not a fit right then. That’s okay! It is not a comment on their objective worth in the universe!

Lastly, when I’m tuned into hiring and have a steady pipeline of engineers to talk to, I find that I love my job more. I’m reminded each day of why I joined the company and what I’m excited about. Selling the opportunity pushes you to take pride in your team and do all the little things that will help it. You’re selling to people who don’t work for you yet, but you’re also selling to yourself.