With the enormous amount of software engineers who are being hired, building a successful hiring process is extremely important. If the hiring process is too long, you can lose a candidate to another company. If it is too technical, you can end up getting engineers who are strong coding wise, but struggle socially. If you have a very informal process that is focused too heavily on behavioral aspects, you could end up getting a candidate who fits into your company’s culture, but is not a strong contributor.
Some job openings receive hundreds of applicants, so you need to filter through the candidates to find the strong ones without spending too much time. Each phase of the hiring process needs to be fine-tuned in order to efficiently find the best candidate for your company.
As a computer science graduate, and having been in the software engineering space for most of my professional career where I have been through hundreds of interviews — that is not an exaggeration — I have seen the good, the bad, and the ugly when it comes to interviews. I have also hired engineers so I know what it feels like to be on both sides of the interviewing table. Interviewing with every company, ranging from popular social media companies to scrappy SF startups, each has an individual process, giving the candidate a unique impression.
For this article, I would like to focus on the first-round interview because I believe that is where most companies make the biggest mistakes. I will dive into the pros and cons of the most popular first-round strategies and provide solutions to optimize your hiring process. If you are a recruiter with a non-technical background, you will find this article very helpful in breaking down what a software engineer really experiences during an interview process. If you do have a technical background, then there might be a couple of nuggets of wisdom for you to try out at your company.
The 3 Most Common First-Round Interviews
Many times, recruiters are given instructions by the hiring manager of what to look for in a candidate and how to do so.
These “methods” are typically:
- Behavioral Phone Interview — A recruiter talks to the candidate on the phone screening for culture fit, communication skills, and evidence of technical competence.
- Coding Challenge — Candidates are emailed a timed coding challenge that they need to complete online. These can range from 30 minutes to two hours.
- Take-Home Project — Candidates are given a take home project where they need to code according to the specifications decided on by the hiring manager. These can range from two hours to however long it takes the candidate to finish, which could be up to 12 hours.
A Deep Dive Into Each Approach
Behavioral Phone Interview
- Tests communication ability
- Validates points on a resume
- Eliminates candidates with high financial expectations quickly
- Can eliminate extremely strong programmers. Keep in mind that a software engineer’s job is mostly solitary, while a recruiter’s job is to communicate with people everyday. A software engineer with more introverted characteristics tends to find phone calls more uncomfortable than a recruiter, resulting in a less than perfect impression on the recruiter. There are many articles touching on these points, that show that engineers preferred to be emailed for communication.
- Very time consuming on the recruiter’s part
- Incompetent programmers who communicate well can pass
When to Use It:
- When the hiring manager has already seen the resume. I cannot tell you how many times I’ve seen a call go great with a recruiter, but then the recruiter has to reject the candidate because the hiring manager didn’t think the candidate was a good fit after looking at his resume. Not only is this rough for the candidate, but it also wastes the recruiter’s time. It can easily be avoided if the manager first looks at the resume to make sure the candidate seems suitable on paper. (However, this does not always apply, such as at companies like Google, where the manager picks the candidate out of a pool of candidates who have passed all of the technical tests.)
- If the hiring manager highly values communication and “personableness.” If this is the case, a phone call can be appropriate. However, a hiring manager and their team should weigh in the most on whether a candidate is a good fit for the team.
Coding Test Interview
- Verifies that the candidate can code
- Saves time for the recruiter
- Does not simulate working coding environments. Usually coding problems are algorithms and data structures, both of which are really used on the job unless the role is in a field such as artificial intelligence. Plus, it’s timed. I have never once had to code something under a deadline for 30 minutes. Maybe 30 hours, but never 30 minutes.
- Easy to cheat. The fortunate thing for programmers and unfortunate things for recruiters is that the world of programmers is highly collaborative. What this means is that the solutions to a lot of algorithmic problems can be found within a couple of minutes. While interview tests ask candidates not to cheat, there is no way to be sure that they do not.
- Can eliminate very strong programmers. As mentioned earlier, these tests are very heavy on algorithms. Since people who have not graduated with a major in computer science are a lot less likely to know algorithms, a lot of candidates who are self taught or have taken boot camps will struggle on these problems. It does not mean that they are poor programmers; it just means that these questions are not common in the world of programming. By having this phase you can easily miss a large pool of qualified candidates.
When to Use It:
- If you have an enormous amount of applicants. This way you can easily filter for who is serious about the job. When you get them on the phone, you’ll already know they have some coding chops. However, please make sure that there is some thought put into the coding questions. For instance, if you are hiring front end developers, have front-end questions, not a generic software engineering test..
Take Home-Project Interview
- Simulates actual work
- Can filter the amount of desire the candidate has to work for your company. Many applicants will filter themselves by not completing the project, making the recruiter’s job easier.
- Takes time and resources to create and review the exercise. When a take-home exercise is created, that means that someone in the company has to decide on the appropriate take-home assignment. However, the big time component that comes in when the candidate finishes the assignment. Once the candidate finishes, several employees need to look over the code and evaluate whether or not the candidate passes. It takes a good amount of effort to get several programmers to stop what they are doing and evaluate, so you can expect a some lag in time before the team gets back to you.
- Take as long as you want, but not really. Often, recruiters will ask software engineers to complete the project in about X hours. The issue here is that the more time that the coder spends on the project, the greater the chances are of them moving onto the next round. This can really put a candidate in for a spin, especially if the project is difficult … which they usually are. The consensus among software engineers is that “X” is usually the least amount of time it will take, and if you really want the job then you are probably going to need to put in a few more hours. This increases the likelihood that the candidate will not finish the project, especially if they are hot on the job market and another employee has a shorter first-round process.
- Hard Ask for First-Round Interview. Normally, the interviewer and the candidate gradually invest more in one another with each subsequent round of interviews. When a company asks a candidate to do a take-home project, they are demanding a large investment from the candidate. The candidate is much less likely to complete it because they haven’t yet received an equal investment from the company.
When to Use It:
- Get a feel for the candidate’s coding skills
- To screen for candidates who really want to work at your company
Hopefully seeing the pros and cons to the different screening approaches can help you with your hiring process. Some of the biggest mistakes I see are different companies picking the wrong first round. Maybe it’s a really small unknown startup and they require a candidate to do a large coding assignment when the candidate has not been sold on the company yet, or a recruiter who has a copious amount of potential candidates screens everyone on the phone, leaving more qualified candidates to competing companies. With a bit more tweaking to the first part of the interview process, you could see an increase in the quality of the candidates who make it onsite.
In addition, I am sure a few engineers even if they don’t get the part, will write you a review on Glassdoor appreciating you for the great interview process you set up.
image from bigstock