The Hiring Process
Hiring great engineers is often a long, involved process. Once you’ve determined your needs, created your job description, and gathered some potential candidates (“sourced” them), your real challenge begins. How do you pick the right ones?
Every hiring manager has certain areas they look at when appraising engineering candidates. For software engineers, I have, over time, separated my evaluation criteria into three general categories: technical skills, cultural fit, and a passion for engineering. Technical skills is the most obvious category, and often the easiest to assess, as these tend to be concrete (hard skills) that you can verify. Cultural fit is harder to define and can be much more difficult to gauge. The goal should be to find great teammates, not necessarily clones of the existing folks. My third criterion, the one I find to be the differentiator between good and great engineers at any level, is a real passion for engineering.
An engineer’s technical skills can be relatively easy to assess, as long as you or some folks on your engineering team have similar domain expertise. More on that in a minute.
The key to a useful appraisal is to clearly spell out your required and desired (but optional) skills and qualifications. Be flexible! Some of what you believe are required qualifications might be fairly easy for a motivated engineer to acquire. And excellent junior candidates can grow into strong, skilled senior folks over time.
With a clear idea of what you are looking for, set up relevant practical interview questions, such as programming tests (I’ve used HackerRank and other tools in the past), programming projects, and concrete questions. Avoid puzzles and trick questions!
A good interview challenge should be applicable for engineers of all levels. For example, at my last few jobs, one of the onsite tests involved a cooperative pull request/code review. The candidate would make their suggestions, which my interview team would then discuss with them. Junior engineers might require some coaching, but senior engineers were expected to volunteer insightful feedback.
A core component of good interviews is calibrating your interview team. Agree on the questions/tests/challenges, and ensure that the team understands the depth and breadth of possible answers. With a calibrated system in place, different engineers can run various segments of the interview but still provide consistent feedback. Likewise, all engineers will understand if a candidate did poorly, or did well.
The most challenging technical assessments are of candidates who have domain expertise that your team lacks. For instance, if you need to hire a security, performance, database, or operations engineer because your team lacks that expertise, you may have a hard time evaluating candidates and discerning skill levels. To assess a candidate’s skill set in these cases, reach out to your network to see if you have a trusted source who can consult on candidates, or possibly recommend some. As a last resort you could consider hiring an outside consultant to help with this process.
Cultural fit is a tough criterion to interview against. If you do it poorly, you may unnecessarily limit your candidate pool, or inadvertently foster “groupthink”. This is why cultural fit often has negative connotations.
Your team should not be looking for clones who look and talk like them, or who come from the same area or school. They should be looking for talented folks with good attitudes who can do the job well, perhaps with different approaches. Cultural fit should be about finding folks who are nice, open, honest, and confident, yet humble. It should be about avoiding rude, dishonest, or arrogant folks, regardless of their talent set.
- Cast a wide net in your search for great engineers, and ensure that your recruiters/sourcers know that you are looking for a broad range of qualified people.
- Look for folks who have effective ways to solve challenges, then ensure that your interviewing team is open to a range of valid solutions. This should be part of the interview team’s calibration.
- Consider implicit bias training for your interviewers, so that they gain a better understanding of the traps that might make them favor or disfavor candidates.
- Train your team to note the ways in which candidates communicate with them, and ensure that this is part of the feedback each interviewer returns.
- Ensure that your interview process allows you to spend time with the candidate to dig into interpersonal challenges they have faced and their approaches to resolving them.
One of my favorite interview techniques is to take the candidate to lunch, if their schedule permits (and if a global pandemic isn’t raging at the time)—both to ensure that they get something to eat, but also to spend a good hour talking with them more generally. I prefer to do this after I have already received some feedback on the candidate, so that I have areas of concern to probe.
The best engineers I have hired were not always the most senior or technically qualified, but they were willing to jump in, work hard, and figure out what needed doing. They had a passion for the work.
Don’t make the mistake of assuming that passion always shows itself in loud and visible displays. Work is not like a sporting event, where the most passionate fans paint their faces and scream for their team (usually). Engineers with a deep passion for their job may be visibly demonstrative, but they are more likely to be quiet, thoughtful, and dedicated—or warm, engaging, and intense. The sort of passion you should look for is a deep affinity for engineering work and a strong desire to find solutions for challenges.
A candidate’s enthusiasm for engineering will often show without prompting. But like technical skills and cultural fit, don’t leave this to chance. Coach your interview team how to look for signs of engaged, passionate folks, and how to draw this out of nervous, reticent candidates:
- How do they talk about their previous jobs?
- Do they seem proud of or enthusiastic about their work?
- Have they searched to find creative ways to solve problems?
- Are they enthused about any technical techniques and advances?
Dig into the subject more directly, possibly at the lunch interview. Ask your candidate about a project they worked on that they really enjoyed. Ask them what their role was, why they enjoyed it, and what they learned. Ask follow-up questions to really get a feel for their attitude and level of involvement.
Sometimes engineers have technical hobbies, open source projects, training/school they are taking on the side, or favorite technical books they can talk about. These can all be good signs of a deep interest in engineering work. However, this tends to be more of a Silicon Valley trait, which you shouldn’t generally expect. Great engineers may bring their best to the job but live full (non-geeky) lives outside of it. Likewise, engaged, passionate engineers don’t always work crazy hours. Don’t judge performance based upon the time spent; judge it by the results achieved.
Great engineers often have multiple opportunities they can pursue. You need to identify the right folks, but before you can hire them you need to attract them to your team!
I’ve stressed a number of times that you should coach and calibrate your team to consistently and intelligently interview for technical skills, cultural fit, and passion to ensure useful, consistent feedback. Intelligently run interviews can reassure candidates, but repetitive and disorganized interviews reflects poorly on your team and may discourage good candidates.
You and your team must represent the culture you want to attract. This includes the company’s core values, but goes beyond this to the fundamental way you treat people—hopefully, with fairness, integrity, and respect. If you have shortcomings in your culture, work to address them before your interview process begins. It’s disingenuous to measure candidates against standards your team does not uphold, and candidates may well pick up on this. Moreover, new employees will, to a large extent, adopt both the social and technical habits that are already firmly established—make sure that these are good ones!
This is particularly true for passion. Part of your job as an engineering leader is to foster passion in your team. If you and your team want to hire inspired, enthused, high-performing engineers, you need to demonstrate these same attributes to them. Great engineers, the type that solve problems and get things done, want to work with others who share their passion.