blogbookshire me

Process For Recruiting Software Engineers

23 March 2020

Recruiting is one of the most important task a team leader can have. A bad hire can destroy the dynamic of a good team, and a great hire can multiply the everyone’s velocityl.

I’ve tried a lot of ideas after years of recruiting software engineers, first as a technical interviewer, then as a hiring manager and finally as the lead of the entire engineering department. In this article I won’t give you a process that works out of the box, but instead a few steps to setup one for your team.

Getting Started

When to Add a Process

Some people do not believe in spending time setting up a clear recruitment process, preferring going with their instinct. I don’t disagree for some cases. For instance this makes total sense when you are recruiting a couple of people for a small structure.

However, if you are recruiting at a larger scale, you will quickly see the limits of this approach. The person with the “instinct” becomes a massive bottleneck, slowing down everything. The rest of the team is unable to efficiently participate and gets frustrated. Finally the candidates can feel the issue and the conversion rate goes down.

I’d say that, if you hire more than 5 people a year, it’s worth investing into a simple process.

Objectives of Having A Process

Defining a process helps reaching certain objectives. Here are the ones I’ve set for myself.

Impacting the Candidate

  • Clear process and expectations. A candidate should know what they are getting into.
  •  Pleasant experience  even if this doesn’t end with a hire. Ideally someone who isn’t hired refers a friend or won’t hesitate to apply again after a year or two.
  • Fast turnaround. The recruitment process is stressful, there is no need to make people wait for answers on top of this.
  • Feedbacks during the process, both ways, to avoid disappointments. If it’s going poorly for the candidate, the recruiter should know about it.

Impacting the Company

  • More hires at the expected quality, obviously!
  • Better predictability. It is useful to know what can be the time and energy required to hire someone.
  • Pleasant interviewer experience. We need to keep in mind that a lot of people involved in the process are usually not recruiters by trade, and therefore we have to make it easier on them.
  • Improve employer brand, to ease future hires.

Testing The Candidate

Figuring Out What’s Important

Before setting up your applicant tracking system or defining your recruitment process, the most important thing is to know what kind of person you want to hire. If you don’t, you’ll end up planning the wrong interviews, checking the wrong skills and in the end wasting everybody’s time or making a wrong hire.

To get there, make a clear list of skills you want to check and the kind of person you think would fit in your company/team. Then use the interviewing process to check against this.

If you have it, it’s great to be able to leverage things like company culture documents or team objectives. If you don’t, consider setting these up before starting to hire.

Recruitment Funnel

Over the past few years I’ve tried a lot of different processes, and the one thing that works is having a real funnel with objectives for each step.

Recruitment funnel

The exact steps can change, and there is no one optimal setup.

Defining The Steps

There are a lot of things that can be done, but to illustrate this, here are a few example steps that I’ve used or seen companies used:

  • Screening call
  • Take home assignment
  • On site pairing
  • Lunch with the team
  • Meet your future manager
  • Technical interview
  • Fit interview
  • Reference check

You then need to order them, define the time spent on each and so on.

Setting Objectives For Each Step

Once you have decided on the various steps, you need to decide of the objective of each step. This is crucial, because in order to be effective you have to make sure you did test what you were planning on testing.

What you really don’t want is this kind of conversation:

Hiring Manager: So, how did the technical interview go with the candidate?

Interviewer: It went great! I’ve given the recommendation to hire.

HM: Great, we need strong developers in the team to tackle project XYZ.

Int: Hm… I don’t know about that. We couldn’t really get to the coding part of the interview.

HM: What do you mean?

Int: The candidate didn’t really know the language we use here, so instead we chatted a bit about the company and our current projects. They seem really interested in joining and have a great attitude!

Here the interviewer didn’t have clear objectives for the technical interview. This step should be focused on figuring out on determining the candidate’s technical skills, not assessing the motivation.

When defining objectives, remember to:

  • Keep them realistic and simple . It’s very hard to get a sense of someone during a one hour interview, so don’t expect the impossible from your interviewers.
  • Have a set of objectives around showcasing the position  as well. You are assessing the candidate, but keep in mind that the candidate is also assessing the company and the position.
  • Share them explicitly, it shouldn’t be an oral tradition.
  • Check that they are followed by shadowing some random interviews, setting up feedback sessions , etc.

Personally I like to write objectives as questions to be answered. To illustrate here are a few examples of objectives to assess the candidate:

  • Are they motivated to join the company?
  • Do they show interest in solving users’ problems?
  • Will they work well with their manager?
  • Do they fit our values?
  • Do I see this person in my team?
  • Can this person fit in the organization and evolve?

… and a few examples of objectives to showcase the company and/or position:

  • Provide an interesting challenge to the candidate
  • Give more context to the candidate
  • Showcase our work environment and mission
  • Address any remaining doubts the candidate could have

Expectations for the Interviewers

General Guidelines

There are a lot of things interviewers need to get right, and it can take years of practice to be a confident interviewer. Here are the advices I usually share to people new to it:

  • Focus on the objective, rate candidates based on it only.
  • Always sell the position & the company, regardless of the candidate. It might not be a fit today, but it might be one tomorrow.
  • Let the candidate answer and don’t be afraid of silence. It’s easy to try to fill in uncomfortable blanks in the conversation.
  • You need to  be sure of your recommendation, so dig deep to turn orange flags into red or green.
  • Contribute to improve the process, and share any issues that could be addressed.
  • Don’t mistake enthusiasm for ability. Don’t mistake quietness for a lack of motivation.
  • Rate regardless of time spent. If you had a 20 minutes phone call that went very well, you should give a “hire” recommendation. The hiring manager will know the context and use your feedback accordingly.
  • Do not share your opinion with other interviewers and do not try to read other people’s feedback. Stay unbiased.
  • Don’t be influenced by the context. Being understaffed doesn’t mean we should hire anybody
  • Have a few recurring questions, this way you’ll be able to compare candidates.

Expected Output

Then you need to define what kind of output you want out of the interviewers, most likely a “hire/no hire” answer. I like what some applicant tracking system do, rating on a scale from 1 to 4 as it removes the ability to say “I don’t know”.

  •  ✓ ✓ Strong yes . This person is really great at what I’ve been tasked to test. I’m very much looking forward to work with them.
  •  ✓ Yes . This person is good at what I’ve been tasked to test. I’ve seen a couple of minor issues, but nothing too problematic.
  •  ✗ No . This person is not good enough at what I’ve tested. I’m not completely confident it would go well if we were to hire them.
  •  ✗ ✗ Strong no . The person is bad at what I’ve tested, or I couldn’t even test it because of major fit issues with this person. I can’t see them here.

Of course this is just the recommendation of the interviewers, the final call rests into either the hands of the hiring manager or some kind of hiring committee. It’s perfectly possible for someone with a couple of “no” to get hired, if the other interviews went really well.

Finally I also like to ask for a paragraph or two to explain their decision.

Onboarding Interviewers

I think that interviewing should be an opt-in process. There is little value in having someone talk to candidates if they don’t want to do it.

For those who want to start helping hire, here are a few things that can help get started:

  • Have documentation with use case examples, question templates, interviewing techniques , etc.
  • Spend some time briefing the person before an interview, and more time debriefing after.
  • Setup some shadowing sessions, where a new interviewer follows the lead of a more experienced one.
  • Involve recruiters in the process to help explain interviewing techniques.
  • Setup reverse shadowing sessions, where a new interviewer leads an interview but is watched by a well meaning more experienced interviewer.
  • Gather feedback from newly onboarded interviewers to improve the process.

Measuring

Like everything, it’s important to measure what you are doing. A few metrics that are interesting to follow:

  • Time to hire
  • Conversion rate (segmented by step and position)
  • Candidate satisfaction rate (segmented by hired/not hired)
  • Interviewers satisfaction rate

Overall recruiting is hard and as for most things there is no silver bullet. However I still hope this article will help you improve your process!