The process of hiring the appropriate resource for your team can be a very daunting task. Nowadays, the complexity of hiring is getting a bit out of hand. Most companies have to resort to team leads or fresh managers with little to no experience hiring talent.
Beyond the obvious requirements a specific position might have, many complex dynamics and cultural aspects can affect your team’s synergy. Understanding these aspects might be a bit beyond most managers’ capacities. Nevertheless, this responsibility must fall to someone. In most cases, the person most affected by hiring a candidate would ideally be responsible for carrying it through.
This article will tackle the interview and acquisition process of hiring an engineer candidate step by step. We will address the whole interview process from profile creation, resume screening, initial contact, subsequent interviews, and the close of the contract. This article aims to serve as general guidelines for the hiring party to identify the needs to address and find the most appropriate fit.
We’ll also be addressing some of the most common pitfalls and caveats that most hiring managers fall for and how to avoid them. Read on to learn how to interview a software engineer!
The first thing to consider even before posting the vacancy is what you’re communicating to potential candidates with your job listing. Most HR departments tasked to look for engineering talent tend to produce very lousy job listings.
Whether it’s because of poor communication or just pure laziness, it results in a terrible description of the wanted profile for the position. Usually, they use an inaccurate, unrealistic, and unnecessarily complex template. These templates are out of touch and result in listings that read like a child’s wish list for Santa—full of wildly unrealistic demands and metrics with laughable results.
Although these are pretty entertaining to read, they aren’t very likely to yield the talent expected.
Addressing this issue isn’t difficult:
- Firstly, ensure that your team’s needs are adequately communicated.
- Secondly, avoid recycling profile templates. Make an effort to sit down with your team and figure out its culture.
- Thirdly, empathize with their needs, identify the members’ shortcomings, and complement them with the new potential candidates.
- Lastly, prioritize your team’s culture and existing dynamics. Focus on how this potential new member can contribute to the atmosphere of the group.
Look for team players above superstars.
Additionally, looking for a fresh graduate with five years of experience in a three-year-old technology is absurd. This ask should be a reason to reconsider the employment of whoever wrote that requirement. Do your research.
All right—you’ve produced a concise and accurate profile, published it on some sites for candidates to see, and received dozens of resumes. Now we can proceed to screen the potential candidates and find out who’s worth our time.
Commonly, engineering positions tend to yield an unmanageable amount of interest from candidates. As a result, a significant majority of these candidates won’t be qualified for the job and must be weeded out.
This process can be done quickly with some screening solutions that can process resumes and churn them so that the HR department receives only those resumes that closely fit the criteria. Not all companies use these solutions, and most solutions don’t produce results that satisfy companies’ standards. Nevertheless, they exist— and, in my opinion, they should be used sparingly and with caution.
In terms of screening, you must:
- Identify the critical requirements of the profile
- List the must-have skills, technologies, and experience levels
- Have a clear idea of the kind of history you want your ideal candidate to have
When defining the profile, think of the following questions:
- Are you looking for someone who has worked mainly with new technologies or more established ones?
- What kind of role do you want this candidate to fill in the group?
- Are you looking for someone with leading experience?
- Are you looking for a specialist or a generalist?
This list is by no means exhaustive, but it should give you a good idea of what to look for in a resume.
As a rule of thumb, you should consider every resume that’s lacking a cover letter or some additional documentation from the candidate to be low quality. If the candidate didn’t make an effort to research the position and company and point out what they can offer, they are unlikely to be a good fit.
Additionally, prioritize the candidate’s history above their credentials. Look for the projects they’ve worked on and what role they had in them. Focus on the outcome of these projects and how their career history has progressed. Is this person moving up in their career? Bonus points if they point out what technologies they used and how they implemented them.
Once you’ve found a few candidates you want to reach out to, proceed to the next stage.
Commonly, the initial interview is performed by an HR representative who contacts, arranges, and meets the candidate for an initial in-person screening to validate the information provided by the candidate. This process is pretty standard and rarely results in elimination.
However, I have found that having this interview jointly with the candidate’s potential manager speeds up the process and helps the candidate assess if they’re also a good fit for the position.
Before this point, the amount of information available for the candidate to assess their fit was limited to the job listing and company info. However, once both parties can interact, they can better understand what’s on the table.
You might consider this a waste of the manager’s time. But, in my experience, this has saved many headaches and misunderstandings later on, especially when a candidate realizes that the culture is not a good fit.
The follow-up interview usually revolves around the testing part of the process and assessing the quality of the candidate’s skills. Unfortunately, this is also where most teams end up hiring the wrong candidate.
The reason behind that is simple. For most engineering interviews, the assessment method of a candidate’s skills is—you guessed it—a timed whiteboard programming test. And, more recently, interviews have included a timed live online test as well.
The issue with whiteboard tests, and timed tests specifically, is that they are a terrible indicator of an engineer’s capacity and skill level. And this is especially true for seasoned engineers with years of experience.
You might assume that having the candidate develop a solution to a programming challenge based on an obscure mathematical concept or an abstract logic puzzle will tell you their capacity to solve problems. And you would be wrong.
The truth is that 99.9% of the programming done in 95% of companies does not require you to have advanced knowledge in mathematical concepts.
- Involves dexterity and experience with the tools and framework you work with every day
- Requires comprehension of the methodologies and cultures that are common in the development team
- Demands research and self-drive skills that are second nature
- Commands the capacity to have effective teamwork and communication skills with team members and leadership
Being an effective and talented developer has absolutely nothing to do with how much you understand quadratic equations or puzzles.
Additionally, the candidates that usually excel at these tests are recent graduates with little to no experience in real-world work. However, their knowledge of programming challenges and quizzes is still fresh and available, so of course, they dominate on these tests.
Moreover, the hypothesis that assessing a candidate’s capacity to handle pressure with a timed test is myopic at best. Seldom does an engineer working on a project run against the clock to produce a quality solution and ship. And if this is the atmosphere you have in your team, you should reconsider your culture and workflows.
So, unless your company works on programming TI89s or building processors, reconsider choosing a university-level programming question for your interview.
A more effective test plan should involve:
- Providing a custom programming test created by the team
- Ensuring that this test accurately represents the task and level of expertise currently faced by the team
- Giving the candidate a day or two to solve the issue
- Asking for detailed documentation on the reasoning behind every choice
Measure the thinking process and culture, not the memory capacity.
One of the most important aspects of hiring is culture fit.
If a recruit can’t engage with the culture or actively works against it, it can result in loss of productivity, morale, and sometimes even other team members. So the candidate must have a good fit for the established culture of the team they are intended to join and must have something to offer to work for the momentum and not against it.
Additionally, suppose a candidate can’t come up with a plan on how their talent and skills can be of value to the company. In that case, a lot of productivity might be lost trying to assimilate this candidate into the company. Having a clear vision of how your strengths and skills complement the team is a strong indicator of independence and direction that can be the difference between a lackluster team and a star team.
What’s more, when a candidate’s interests and values align with the company’s mission and vision, they are more likely to work harder, for longer, and be more loyal to the company.
Finally, the best hiring methodology in my experience has been an interactive interview discussion.
- Sit down with the candidate and ask about their history, past projects, and challenges they faced and how they overcame them.
- Listen to how they talk about their previous teams and press on the culture they had. Look for indicators that the candidate is a team player and is willing to adapt and learn.
- Prioritize motivated learners over stagnant geniuses.
If you absolutely have to test them, create a custom test representing what the company works with, and examine their thinking process.
See how they face challenges and offer observations. If they’re stuck but still make suggestions about how to address the issue or have an idea of who to ask or where to find the information, then you have a winner.
How to Interview a Software Engineer: Useful Resources
For the most part, learning how to spot issues with the hiring practices within my company and how to deal with them was a process of experimentation, constant discussions, and developing experience. However, you can learn better and faster by reaching out to other managers and building a network. If you’re interested, you can find other people discussing the same ideas on places like the Dev Interrupted Discord.
If you’re looking for more information about better hiring practices and more effective monitoring of your teams, consider checking out LinearB. They offer the first-ever project board explicitly designed for dev leads. You get all of the details you need to make decisions on a single screen, asynchronously—without interrupting your devs. And while you’re there, check out LinearB’s podcast episode for suggestions on hiring senior developers.
In the end, it’s up to you. But remember that the quality of the hired candidate is as much your responsibility as the candidates themselves. So, learn how to hire better.