As per my previous blog post, hiring software engineers gets more competitive every year. Now that you’ve read the first step in our process, Step 0: Who Are You, here’s the next step:
Step 1: The Prep
The Pitch
Hiring is a lot like sales, and just like a good salesperson, you need a well-honed pitch. For recruiting purposes, you’ll want to break this into two parts: first, the company pitch and then, the engineering team pitch. A good recruiting pitch should tie in with Dan Pink’s “The Surprising Truth About What Motivates Us”, namely: autonomy, mastery and purpose. Explaining your company’s big idea should create a sense of purpose: what is your mission? And why should your candidate support this mission? This part of the pitch must be short, compelling and make sense to anyone. Can you explain why your company matters to your mom or a 12-year old nephew?
If you can hook a candidate with your company’s big idea, the next step is to hook them on the engineering team. Explain how your process and technologies afford opportunities for autonomy and mastery. To demonstrate the opportunities for autonomy, be prepared to explain your development processes and how you empower your engineers while also holding them accountable. Be sure to have a compelling story about your team’s freedom to make and live with their own choices. Use your technology stack and interesting engineering problems for mastery. You’ll want to prepare for the different types of engineers you are hiring. What appeals to a front-end engineer is going to differ to what appears to an automation engineer or a data scientist.
I recommend practicing this pitch often. Going to a career fair (see below) is a great way to force yourself to deliver the pitch dozens of times.
The Process
Now think through your hiring process, from resume screening all the way to making the offer and closing a candidate. While the details will vary there are a few best practices to keep in mind:
Limit total interactions:
This benefits both you and the candidate; you both save time and this should allow you to move faster and make offers sooner relative to your competitors. There is evidence (see the chapter on hiring from How Google Works) that beyond 5 or 6 total interactions, the insights gained start to diminish rapidly.
Constantly check on “close-ability”:
From the start, make sure this is a candidate you can close. The worst thing you can do is waste your own and your team’s time on a candidate who is not that interested. I recommend checking for disqualifications from the start, but you should also follow up on this at every step. Some suggested disqualifying questions:
- Will the commute be acceptable to you? (I avoid recruiting candidates who live too far away, but even for someone 25 minutes away by train, ask this from the start.)
- Does the job we’re offering match your expectations?
- Are you looking to manage people?
- Are you comfortable with the autonomy and self-motivation Scrum requires?
- We’re NOOPS - can you manage your own Terraform and Ansible code?
- How many other interviews are you planning to take?
- What is your criteria? How will you decide which job to accept?
- What do you look for in a boss?
- Our on-site interview is a 4.5 hour process, and this is a big time commitment for both of us to make. Are you sure you want to work here?
- (When making a verbal offer) I’m prepared to make an offer but I need you to get back to me with an answer within 3 business days, does that work for you?
Time box the offer:
Putting a limit on your offer can be painful, as the best candidates may have weeks of interviews left. Still, this is a worthwhile discipline. Ask them to get back to you when they are ready to work with a 3-day offer expiry – this is a final double check on their interest in working with you. You do not want to hire someone who is “meh” about your company.
Tracking:
You are going to want to learn from your hiring efforts. Minimally, which resume sources result in the most hires. To do this you’ll need a way to track every candidate by source and outcome. There are various tools available that allow you to measure your hiring process. We use a Google Sheet with formulas that automatically sum up the totals per hiring manager and by source, process step (initial screen to offer) and outcome.
Last Notes On Process:
- Be responsive and sensitive to the candidate.
- No take home tests. We use an online tool called coderpad.io and walk the candidate through a set of tests while on the phone. The best candidates already have jobs and busy lives and multiple offers. Asking them to carve out a couple of hours to do your take home test may prove a disadvantage relative to other opportunities. Moreover, listening to the candidate think through a code challenge is a great way to gain insight into their thinking and their ability to work through obstacles.
- ABC. If you don’t know what that means watch: https://www.youtube.com/watch?v=Q4PE2hSqVnk.
Now check out out final post about Lessons Learned Hiring Software Engineers During a Bubble!