Understanding the Hiring Process
As an engineering team lead, you will be responsible for hiring engineers. It’s critical that all engineering team leads have a solid understanding of the interview process, and what to do in each step of the process. You must also understand that hiring is extremely expensive, and not just the salary part that goes to the person you hire. There’s a vast amount of time and hard costs involved with hiring a single person, usually in the tens of thousands of dollars. And if you make a bad hire? It’s even more costly to remove a bad hire, and then restart the entire hiring process again. So making the best hiring decision you can is really important.
Stay Factual, and Unbiased
Throughout the entire process, it’s key that you, and your hiring team, stay focused on the facts, and not feelings and gut reactions. And it’s also important to stay unbiased. It’s best that you have an established hiring process and protocol for evaluating people throughout the process, and make it factual and evidence-based during. You shouldn’t dismiss a good candidate because someone “got a bad vibe”. Any negative aspect about a candidate needs to be backed by evidence. How someone feels about a candidate is a valid feeling, but it shouldn’t be enough to remove someone from the pipeline. So focus on staying unbiased and factual throughout each stage of the process.
Your Unique Hiring Process
Always remember that the hiring process of hiring a software engineer will be unique to your organization. There are general guidelines of course: filtering through hundreds of resumes, the initial screening call, the technical screening, the final interviews, then the salary negotiation and offer stage. Then there’s the onboarding stage, but that’s a topic in itself.
So when you’re learning about the interviewing process, it’s best to understand what’s expected on the industry level, but always learn in-depth how your organization does it.
Filtering Candidate Resumes
This is a topic in itself that I will cover in its own blog post. But this is arguably the worst part as a hiring panel. For most job openings when you’re looking to hire a software engineer, you’ll likely have hundreds or even over a thousand resumes submitted for a single open engineering position. There’s really no automated way to filter out these resumes. Resumes are written uniquely per person, with their own flairs, personality, and content. So you won’t really have access to a systematic way to filter out the good from the bad. So that’s where you need to learn how to find the gems out of the pile of candidates. And you will find out quickly that the vast majority of resumes you’ll receive aren’t worth your time. There are hiring funnel statistics for a reason.
You may also realize that you may have a hiring team, or at least a hiring person, to help you throughout the process, but notably this stage. That’ll be a huge benefit so you personally don’t have to scan hundreds of resumes looking for what you need. But you also may not.
Either way, even if you have support from a hiring team or not, you’ll still end up having to verify some resumes. Key things to look out for are fundamentals like grammar, relevance to the job, relevant experience and background, work history that would be suitable for the role you’re hiring for and in general keywords that either line up with your requirements, or if not, relevant keywords that would give you a compelling reason to think they can learn quickly. Once you have some resumes that are screened for the next step, then comes the initial screening call.
The Initial Screening Call
An initial screening call is usually a really short interview with someone besides yourself. It’s usually with someone from the hiring team, HR, or someone else. The fundamentals here are to establish an understanding that the candidate about basics like availability, salary expectations, interest in the role, and knowledge of your company. The screening call isn’t about finding the perfect candidate. The screening call in the hiring process is about filtering out people that looked good on paper, but clearly won’t make it through the next interviews. Afterall, the next interviews and steps in the hiring process become more and more expensive for the company.
Technical Screening
The technical screening of the hiring process for hiring an engineering is a highly debated topic. It’s likely your company already has a process already set in place, so stick to that. But the root of this stage is for everyone in the hiring panel to come to the agreement that the person is well suited to technically fill the role. That may come from a take-home exercise, leet code during an interview, multi-stage interviews about things like architecture, debugging, etc. or a mixture of all of those. Some companies have a single stage for this, some have multiple. Just know that the more rigorous your technical screening is, and the more time requirements you expect from a candidate, the more candidates will remove themselves from the hiring process. So strive to strike a balance of everyone’s time.
This step is really crucial though, so don’t shortcut it either. You’d be surprised how many people in the interviewing process can talk really well during an interview, are well studied. But when they’re faced with actually coding something that they fail at the most fundamental things. I’ve experienced bad hires where someone had a masters degree in CS, and got through the hiring process, but couldn’t code a basic form, or know how to save something small to a database. That’s why you need a diligent technical screening. It’s no different than other industries like lawyers, chefs, etc. Many high paying jobs have solid screenings to ensure that the person who is hired can actually do the job, and not just speak well about doing the job. Again, hiring is expensive, and a bad hire is dramatically more expensive.
During this process, you should really outline for each role exactly the things you expect the candidate to answer, and a scale of how to measure how well, or poorly, they did. Make a list of critical skills and knowledge, then a list of important ones, then a list of nice-to-haves. Use that list to structure your interviews and screening, and what questions you ask. This should be your baseline to work against, and be your gameplan for the whole technical screening. Don’t just wing it.
Final Interviews and Evaluation
Usually after the technical screening, you’re almost done as a team lead. There’s usually a step where you need to meet as a hiring panel to determine if you want to move forward or pass on a candidate. This can happen right after the technical screening or after the final interviews. This is where your factual-based interviewing process and framework will come into play. Learn over time how to properly gauge and score and rank candidates without bias or relying too much on your gut feeling. And learn how to document, and succinctly convey your recommendation, and be able to back it up either way you recommend it. Engineers are expensive, so if you pass or push to hire someone, you need to be ready to say why clearly.
There are usually some final interviews as well after the technical screening. This can range from a variety of people that a candidate may speak to. Sometimes it’s the CEO, sometimes it’s the CTO, or VP of Engineering, or someone else. This final interview is usually to give the candidate a chance to talk to their boss’ boss, and also give someone with a lot of experience with people a chance to give their final say. There will be times someone will fail this step, so don’t be too surprised if it does happen, even with someone you’re eager to hire. Just know that this step is really important, and remember that they’re talking to someone with a lot more experience than you when it comes to people, big picture, and hiring in general.
Salary and Offer Stage
If a candidate has made it this far, then congrats to everyone involved! But it’s not over yet. And this is usually where your involvement ceases, if it didn’t in the earlier stage. But in general, they’ll be working with someone from HR, hiring, or a VP or higher to negotiate things like salary, benefits, timing and availability for their start date and more. This is the hopeful stage, but remember that even at this stage, a lot of candidates are talking to multiple companies at once. So it’s not uncommon for a candidate to get an offer, but decline it. But if they do, then congrats!
Learning and getting used to the whole interview process takes a lot of work, context, understanding, empathy, and practice. Our work in general is more about people than it is about writing code. So the better you are at understanding people, and the hiring process, the better you and your team will become.