If your business is interviewing software engineers, you have a lot of company. There are currently more than 600,000 unfilled software engineering openings in the U.S. alone, and it typically takes an employer 39 days to make a hire. According to Glassdoor, the average small or medium-sized business has to look at 86 candidates before filling an opening.
Clearly, recruiting software engineers to staff critical development projects is a high-stakes activity. In this article, we want to provide a useful guide for how you can structure your interview process to reliably deliver the right candidates for your organization.
To start, let’s take a look at some fundamental principles that should guide your interview process.
Look for strong fundamentals rather than specific technology skills
Technologies today appear, evolve, and are superseded at warp speed. So, when interviewing software engineers, your questions shouldn’t focus on specific technologies. Instead, look for candidates who demonstrate a strong grasp of fundamental design and coding principles that will allow them to quickly adapt to your particular technology stack. If you immediately reject individuals who don’t have experience with your current toolset, you can miss out on some great candidates.
Favor candidates with strong collaborative skills as well as technical proficiency
Software development today is not a lone-wolf activity. The scope and complexity of modern development projects demand that employees be able to work together effectively as a team. That’s why your interview questions should probe into how the candidate has worked collaboratively in the past. In most cases, if you bring on board an employee who is great technically, but who can’t work effectively in a team environment, you may well be sowing seeds of disruption that can kill the productivity of your team.
Make the interview process a good experience for the candidate
In today’s environment, good software engineers are rarely desperate to land a job. They are more likely to have several opportunities from which to choose. Remember that when you interview an applicant, they are also interviewing you. If the interview process is a bad experience, highly sought-after candidates can be quick to shut the door on your company as a prospective employer.
The Interview Process
In general, most companies use a three-step interview process to find their ideal candidates:
1. Use a telephone pre-screen to quickly eliminate the unqualified
Glassdoor reports that about 45% of software engineering applicants are unqualified. Therefore, determine as quickly as possible whether the candidate possesses the baseline skills needed for the position. Most companies today use, as the first step in interviewing software engineers, a telephone pre-screen. This determines whether it’s worthwhile to bring the candidate in for on-site interviews.
During that telephone interview, candidates typically solve one or more fairly simple but relevant coding problems. Interviewers ask questions that assess communication skills and behavioral fit. But be careful to not set the bar for these characteristics too high. Many engineers who perform well on the job aren’t at their best when interacting with a stranger on the telephone.
Indeed.com recommends questions such as, “What’s the most important thing to look for or check when reviewing another team member’s code?” or “In your opinion, what are some basic principles of good software engineering everyone should follow?”
2. Use on-site interviews to determine if the candidate is a good fit for your company’s culture
If a candidate passes the telephone screening, they are then invited for in-depth interviews, usually on-site. These interviews often take a full day and involve both technical and supervisory members of the relevant project teams.
3. Test the candidate’s technical proficiency using a realistic design or coding problem
A take-home coding problem or a whiteboard coding review serves as an in-depth test of the candidate’s technical skills.
Whiteboard reviews normally occur during on-site interviews. They typically include one or more high-level developers who pose a problem or scenario. Applicants must work it out on the spot using a whiteboard. As they work toward a solution, candidates interact with the company engineers, explaining their approach and thought processes at each step. Company engineers offer appropriate feedback and guidance.
Whiteboard review questions typically focus on knowledge of algorithms, as well as on architectural or system design concepts. One applicant at Bloomberg L.P. was asked to write code to return the difference item and common item of two string arrays.
With the technology available today, the whiteboard interview may not involve a physical whiteboard at all; nor do companies always hold it on-site. For example, some candidates at Google have worked through their interactive coding problems remotely using Skype and a shared Google Doc.
Many seriously question the usefulness of whiteboard reviews because the time-constraints and high-stress levels that characterize these tests bear little resemblance to conditions software engineers actually face on the job. Candidates often perceive whiteboard reviews as unnecessarily stressful and unfair, and many engineers hate them with a passion.
Take-home assignments are gaining ground as a substitution for whiteboard reviews. Interviewers send candidates a realistic problem, often directly related to actual company projects. They then ask them to solve it at home over a time frame that may range from several hours to several days. One applicant, for example, built a functioning chat app as part of the assignment.
The great advantage of this approach is that because it simulates real work, it provides a more accurate indication of how the candidate might function on the job. Also, it reduces the potential for racial or gender bias in the assessment because the completed project can be anonymized during the review process.
Many engineers prefer take-home assignments. However, one potential problem is that they require a major investment of time, usually unpaid, by the candidate. Highly sought-after applicants, who usually have other options, have been known to simply walk away when presented with a complex take-home project. Candidates who think the assignment would require more of their time than they are willing to put in are likely to cut their losses.
Next Steps of Interviewing Software Engineers
In this short article, we’ve only been able to scratch the surface of how to build an interview process that will provide your company with great software engineering prospects. As you can see, it’s not a trivial exercise. Here at ParallelStaff, it’s part of our mission to help companies interview prospects effectively, so that they consistently identify individuals with the skills they need, and save time and money in the process. If you’d like to know more, please contact us.
- 4 Tips To Hire Outstanding .NET Developers – IT Outsourcing - February 9, 2023
- Maximize Control and Flexibility With IT Outsourcing - January 19, 2023
- 4 Ways IT Staff Augmentation Transforms Your Business - December 8, 2022
WheeljackJuly 6, 2021
These organizations should also provide the candidate with sample source code that fits within the context of the problem they’ve been presented. Many organizations expect all employees to think exactly alike, so the candidate should be aware that their solution should be the same as the interviewer would’ve produced themselves, right down to placing of their brackets and semicolons. That will help screen out free thinkers who will only try to solve problems and improve products/services if they manage to get a foot in the door.