I spent about half my time in January hiring our second software engineer at The Graide Network. Hiring developers is tough, especially at a startup where we don't have the dedicated sourcing resources or internal employee network that some larger companies do. I've been in this position before and I felt pretty confident in my process, but it still took me 80 candidates, 50 phone interviews, 11 in-person technical assessments, and 6 final team interviews to find the right person.

Here are a few things I learned (or was reminded of) when it comes to hiring:

For Employers

  • Don't take interviews just because a candidate came recommended or "seems eager". Once you have a minimum list of technical requirements, stick to it. I wasted too much time on the phone with candidates who I should have known wouldn't be a good technical fit based on their resumes.

  • Don't invite a candidate to next phase if there are doubts...unless you need to calibrate the rest of your team. I read Brian Christian's Algorithms to Live By last year, and one thing that stuck with me was the optimal stopping algorithm. It dictates that after you've spent 37% of your allotted time seeing candidates, you should be ready to immediately send an offer to the next qualified candidate. In order for the rest of the team to get a sampling of the people coming through, I intentionally pushed a couple candidates who were on the border through to interview with them. I knew that I probably wouldn't select them, but that I had to give my team some candidates to compare.

  • Follow up, tell seekers why they weren't selected. I don't understand why most employers don't at least send a quick, "We didn't select you" email after an interview. Even if you don't want to get into details for legal reasons, you could at least say something as a courtesy to the candidate.

  • Don't burn bridges. Which leads me to the last point: today's rejected candidates are tomorrow's best leads for hiring. One of the hardest things a CTO must do is hire, and they'll be doing it often (assuming the company does well). I know that some candidates will be hurt by being rejected no matter what I do, but the last thing I want is to develop a reputation as a bad boss. The tech world is not as big as you might think.

I also noticed some things that job seekers - even highly qualified professional engineers - don't do well. It's surprising due to the plethora of job-hunting advice out there, but it seems as if some things still haven't sunk in:

Job seekers

  • Don't tell your new prospective employer every idea you have for upending and improving their business. While I'm not crazy about ideas without action, I think it's great when engineers can come in and improve the business. That said, don't send me an email telling me how I should convert our whole stack to a block-chain based ledger to address a problem we don't have after our first interview (yes, that really did happen). It's fine to talk about ways that you've solved problems in the past if it's relevant to the job at hand, but hold back a little bit until you know more of the context.

  • Prepare for every interview. The most impressive candidates I interviewed did their homework. They came in having researched our company (which is no small feat considering how small we are), they actually spent time looking at the technical challenge before coming in, and they arrived on time. I realize that as developers we get a lot of leeway in our day-to-day working environment, but at least put your best foot forward during the interview process.

  • Take each interview as a learning opportunity. If you read my points for employers above, you might be annoyed that I might send candidates through the process even if I don't intend to make them an offer, but each interview is a chance to learn. Interviewing - like any skill - is something you can learn to be better at, so don't waste an opportunity to practice.

  • Follow up. Only about 10% of candidates I interviewed sent some kind of follow up email before I sent one to them. It's almost too easy to make a good impression and stay fresh in an employer's mind; just follow up.

  • Check with each of your references before using them. I think many candidates misunderstand the goal of references. As an employer, I'm not just checking that you worked at a place; I'm asking questions about how you worked and what motivated you. Your references should all be able to vouch for you and only speak highly of you, so check with them before you include them.

  • Don't burn bridges. Your career is long, and hiring managers move around just like candidates do. Never leave a job interview on a negative note if you can help it because you might run into the same employer again (or more likely, someone they know).

Have your own tips for hiring or being hired? I'm always up for a good job-hunting conversation, so follow up on Twitter.