Hiring is among the most challenging aspects to running a company. If done correctly, it can propel growth and success that you never imagined, but if done poorly it can lead to festering infections in culture and process that will be nearly impossible to get rid of. Unfortunately, there is no single technique, or even selection of techniques, that will be a silver bullet. Furthermore, each technique will have aspects what will eliminate candidates who might have been great, while letting others through that are not. Engineers present a unique challenge due to to the above-average density of introverted candidates when compared to other types of positions, like sales or human resources.
It is important to understand and focus on your hiring process for what it is – the future of your company.
A bad hire will not only slow down their own project, they will champion unwise changes or oppose logical changes that will slow down the company as a whole. They will even fight against you when you need them to fight beside you. To compound the problem, if they become more entrenched (which hopefully doesn't happen, thanks to effective review practices), they might become a part of the hiring process and start green-lighting even worse candidates. This can start the downward spiral of your company. Good engineers don't want to work alongside bad engineers, especially if there isn't a clear indicator that the good engineers are appreciated more than the mediocre or bad ones. Look for a more extended piece on identifying and retaining talent as well as the feedback and review processes, because those are both critical to keeping the right people, which can (but isn't guaranteed to) help add more of the right people.
So how do you identify and hire the right people?
Since there is no "sure thing" here, you have to take measures to improve your odds where possible. It is crucial to identify people within your company that will best serve as the core of the interviewing team, they should meet each of the following qualifications:
- Effective communicator with candidates of all types, and crucially able to identify the candidate's personality and their learning/communication styles
- Humble and genuinely interested in finding the best possible candidate for the role, not interested in seeing if they can make the candidate "fail"
- Able to demonstrate the value that your company offers and the value that your company is seeking
- Has a good track record with past hiring recommendations
Furthermore, it is also worthwhile to identify those who will not be valuable contributions to the interview process (either by choice or resulting from poor co-interviewer feedback). It should be made clear that this doesn't indicate that they are a bad employee. It is perfectly reasonable that a valuable employee is not a great interviewer.
An effective communicator will be able to read the candidate to determine which aspects of the person they are seeing are true, which result from nervousness, and which are embellishments or lies. A large portion of communication is nonverbal, but it is crucial not to let bias and prejudice slip in here; there needs to be a tangible reason to think someone isn't a good fit. This person should be technical enough to be able to question the candidate and probe to determine their exact skill set and previous roles on teams, but does not necessarily need to out-rank them (it is good to have at least one interviewer at or above the candidate's expected level, and avoid having too many that are well below).
As the interviewers build rapport with the candidate, they can tease out the nuances of their style to get them to open up and be themselves. Some candidates are nervous talkers, while some just love to hear themselves talk, this isn't to say either one of these is better (that's a decision for you and your company), but it is important to be able to know the difference. Other challenges include finding someone that is proud of any number of large contributions to a project that can simultaneously demonstrate the value they added while being humble enough to share in the success with their team and not take more credit than they deserve, but keep in mind you have no idea how much credit they deserve. A reference check might be able to corroborate some of the story, but in my experience it is often the engineers who battled through the project together who can really say what the candidate did, not always the manager who lead the effort (but is likely listed as the reference).
The learning style comes into play during the pair coding exercise whether it is on a laptop or at a whiteboard. When explaining a problem, it is your job as the interviewer to make sure it is clear and unambiguous. This should be tested out on current employees at the relevant level, not necessarily to test their answer, but to make sure you asked a clear question. Few things make me cringe more during an interview than when another interviewer asks a "question" that is meandering and without substance, then takes a negative note that the candidate didn't answer it "correctly." It is your job as the interviewer to make the candidate understand the question as clearly as you do, one method for confirming this is to have them state the problem back to you if it seems like they're struggling. A failure to understand the problem is rarely a failure on behalf of the candidate, but rather a failure of the interviewer to prepare properly and communicate clearly. A candidate who knows what they are doing will take note of this and lose confidence in your company's ability to mentor or bring them up to speed.
There is one undebatable point that each interviewer should understand – it isn't the interviewers' job to demonstrate their own technical prowess or to make the candidate fail, it is their job to determine if they are a good fit for your company. Each person has strengths and weaknesses, the interviewer is tasked with determining exactly what those are for the given candidate and then balance those with the desired skills to fill a given position while considering how their weaknesses will impact the team and business.
Focus on Company's Best Interest
The interviewers should either be in the position that is in need of an employee, thus defining the role to be filled, or they should be clear on what exactly the hiring manager does need. There are generalists, there are specialists, and there are candidates on a spectrum in between. A smaller company requires at least some generalists because usually people wear multiple hats. At larger companies, it is far more common to see specialists excel at a given field for 30 years and then retire. As a company grows, the ratio of generalists to specialists should shift toward specialists at a pace that meets the needs of that particular organization.
The key is identifying new hires given where your company is headed, not where it has already been, while making sure you are not focused too far into the future and hiring someone who won't be valuable to a company at your current and near-term stages. It is really easy to get caught up in the mentality that something that has worked historically will continue to bear fruit if you just stay the course, but that's a dangerous pattern to fall into. Take measures to avoid getting stuck in a loop where you keep looking for the exact same type of candidate with every job listing, though you should find common traits that will remain fairly constant (ex: self-motivated, strong curiosity, willing to put in the extra effort, etc.).
Sell The Position
When a candidate speaks with employees from a company, the tone is often that the interview is one-sided. The candidate is usually given a chance to ask questions, but the answers are often disingenuous for many of the "real" questions, if those get asked at all. For example, "How many hours do you typically work and what about during a busy period?" is usually met with some generic "we respect a work life balance" response when the reality is that you might be able to work from home or not have to use sick time to go to the doctor, but you'll be expected to work all night and on weekends; the fact that it is "flexible" when you work 60-80 hours per week doesn't qualify as "work life balance" to most people. The kicker is that by lying, the company is setting the employee up with false expectations, which is a recipe for failure.
If you want someone committed and enthusiastic and willing to work 70 hour weeks, say that up front. Seek out that kind of person. Then explain why the job is so fun and addicting that they will want to work 70 hour weeks. There are plenty of people who crave that kind of career, by being up front about it you will only get people who actually want the kind of work you are offering. If that's the position you have open, the person conducting the interview needs to be the best salesperson you have to explain why the candidate should want it.
If someone asks a question where you are embarrassed to give an honest answer, then that is an indicator that this is something your company should be looking to address and you can be up front about that. If you were to reply with, "Well right now, most of us are working 60 hour weeks, but we've got a hiring plan in place to grow the team then a training and mentorship program to get new hires up to speed. This will help to handle the work and get that back down toward 40." It is honest, it shows them you have a growth in business, and it shows that the leadership is invested in their employees and the new hire. There is no perfect company, and this shouldn't be where employees are airing dirty laundry to candidates, but you'll find that a more honest conversation will get you better candidates and will likely uncover a few improvements that your company can make to better serve its employees.
Track Record and Feedback
After each candidate, the interviewers should each fill out a standard evaluation form. This form should rate the candidate across several categories. As an example: relevant industry skills, technical skills/programming, natural curiosity/self-driven, easy to communicate with, and a final "Hire" or "Do Not Hire" recommendation.
These evaluations will help to make the hiring decision for the candidate, but the record should be kept on file. Over the longer term, after each new hire has six or twelve month reviews, these metrics can be used to indicate whether you have someone on your interview team that is regularly recommending hiring inadequate candidates or rejecting those that end up getting hired who are some of the best. This isn't an indication that the interviewer is a bad employee, just that they don't have the ability to read candidates in that short of a time period and they should not be part of the interview team.
This honest conversation with the interview team is very important, allowing someone to remain on your interview team who is not a strong interviewing asset is the human equivalent of using an antiquated firewall to protect your digital assets. While it is unavoidable to never hire someone that is a bad fit, each one takes a toll on the company, so measures should be taken to minimize the odds as much as possible.
Predictable Success by Les McKeown
Predictable Success is an excellent book that helps walk the reader through a dialogue that identifies the stages of growth for a business, the types of people that excel at each stage, and how leadership can identify their current stage of business and work toward the "predictable success" stage. It is an excellent guide to understanding and to avoiding getting stuck in the "let's keep doing what we did in the good old days" mentality that can be so dangerous. It is also on Audible.
Before, During, and After the Interview
There are specific things that should be done to enable your interview team and interview candidates for success, these people are ultimately your company, so this enables the company for success.
The best interview I have ever had threw me a curveball before I even scheduled my in-person interview. It has stuck with me as one of the best techniques for programming jobs, and likely will have parallels in other professions. They sent me a coding exercise (one that was as similar as they could get to some of the basic tasking I'd end up working on, built on the same platform).
Now sitting on the other side of the table, I have seen people who are put off by this, even some who quit the interview process because of it, and that is okay. They aren't a good fit, and this shows it. On the other hand, how often do you get to actually do a test run for a job? I got to see what kinds of projects I'd work on, what platform I'd be working on, and how well I was able to communicate with the team who recommended (and genuinely meant it) that I ask questions. I got to work with this team before I had ever met them or stepped foot in the building. Not only could they see how I worked through a problem based on my questions and my submitted code, but I could see how they would work with me to bring me up to speed and field what a new hire always feels are "dumb questions," but really aren't.
I recommend finding a coding exercise, or create three or four of them for various levels of seniority, and keep these in a code repository, then create a branch for each candidate. The code should be reviewed and critiqued like any other code review. As a side note, a fun measure of a persons curiosity and desire to improve is if they get hired and go look at the comments left on their own code they submitted during the interview process and use the feedback there to improve their coding mistakes or style going forward.
Note: I am assuming you have done phone screens at this point. The same holds true that phone screeners should fill out evaluation forms and there should be some consideration to make sure you have the right people for the phone screens.
The face-to-face interview should align with your company style. Keep in mind that the interviewers need to get a read on the candidate and tailor their communication style or even level of formality to create a better rapport with the candidate. You might have a quiet genius on your hands; this can be valuable if there is a place in the company for someone who maybe isn't the best at communication but is incredibly efficient at architecting large pieces of software. Though I will note, that even the best engineers in the world are frequently less desirable to work with if they cannot communicate, but I digress.
Start with offering something to drink and offer the bathroom, you would be surprised how many candidates will either have nervous bladders or got stuck in traffic and their "show up early" buffer disappeared. These also provide moments of alone time for nervous candidates to collect themselves. Afterward, in order to allow the interviewers to get to know the candidate and vice versa, they can open up with a general introduction to the company and industry, talk about some of the main products, and probably even give a demo. This helps to avoid the all-too-common occurrence that someone is hired not really being too sure what the company is doing. After the company introduction, transition to questions about the candidate, their history, and their working style. These kinds of questions work well because they build confidence with the candidate since they know these answers better than anyone, it also helps give the conversation momentum as the people get familiar with each other.
Since most companies won't have a single person with the candidate all day, it is good to appoint someone as the liaison and have this person do a lot of the up-front work, spend as much time in the interview room as their schedule allows, and to check in with the candidate between sections.
Ideally, the interview would only last for half of a day. Start at 8:30AM and finish with taking them out to lunch. This provides another less formal setting to get to know the person and has the added benefit that they'll be more comfortable now. I have seen interviews both sealed and broken during this stage; make no mistake, it is still part of the interview. I have also seen interviews carry on for another 4 hours after lunch, this is really unnecessary in my experience and usually just comes across as an intimidation technique.
Before the candidate has left, make sure they have two things. First, give them contact information for someone (probably the liaison and/or HR) if they have any follow-up questions. Second, make sure they have an understanding of what your company's timeline and process looks like, then stick to it. If you need more time, be honest with them, tell them you need more time. As much as your company needs to fill a spot, this person is possibly uprooting their entire life for this, they don't deserve to be kept in the dark.
After the candidate has left, sit and discuss with anyone involved in the process, plus a few who weren't, if possible. Go around the room and discuss things you noticed or things you weren't able to get a read on. The people who didn't participate in the interview will be able to ask completely unbiased questions about the candidate and this will help uncover whether there was something that was missed. When things get missed, the interviewers need to learn from the process and improve it. This is why it helps to have a fairly constant interview team, they will get better with each iteration.
If a candidate seems like a perfect fit for some reason, but imperfect for another, consider a trial period (usually three to nine months, depending on the role). Set them up as a contract or paid internship position. This can be advantageous to everyone, the company might end up extending an offer that is rejected because they learned this isn't the right company for them.
While this can be a useful technique, there are some crucial things to keep in mind. First, it can come across as insulting because they didn't get the job outright, be honest with the candidate as to why you are offering what you are. Anyone who is not willing to take constructive criticism and work on their shortcomings probably isn't someone you want around anyway. Lastly, make sure they have a rubric that will ultimately guide the decision to hire them. This rubric should be presented on day one, and should be updated monthly. This will leave no ambiguity as to whether they are on track to get the job or not.
The right hiring process can breathe fresh life into a struggling company, it can get a team back on track, and it can be one of the most fruitful investments that a company will make. Once you reframe the interviews toward finding a puzzle piece that fits and away from trying to make the candidate fail, you'll find a much more representative version of the candidate will come out, and this will give you a much better sense of who you will potentially be working with. Do not let the word "process" scare you, an investment in your hiring process is an investment in your company.