There has been a steady rise in the demand for software engineers over the past few years, and it shows no sign of slowing. The U.S Bureau of Labor Statistics reported that employment in software development is projected to rise by 22% between 2020 to 2030, with an average of 189,200 openings for software engineers each year.

Finding qualified talent is hard enough, but given the current labor market dynamics, it is more challenging than ever before to fill technical roles. In an effort to broaden their talent pool, organizations are now looking at candidates from non-traditional backgrounds—candidates who may not have a four-year college degree in computer science.

The State of Software Engineers Report 2022 found that while 46% of software engineers have a computer science degree, 24% are self-taught, and 11% learned how to code through a bootcamp program. 

Hiring candidates from a diverse educational background means assessing for skills rather than pedigree or academic credentials. While this structural reset in the hiring approach had already begun to happen before 2020, the COVID-19 pandemic accelerated it.

With a shortage in talent due to employees leaving their jobs to relocate, retire or care for sick relatives, more employers began to forgo degree requirements. The rise of skills assessment platforms has also made it easier for engineering organizations  to remove traditional barriers to entry in the field. 

While skills-based hiring strategies may differ from organization to organization, interview assessment fundamentals and best practices remain the same. 

Five Best Practices for Interviewing Software Engineers 

The fundamentals of interviewing are similar for tech and non-tech roles; however, when taking a skills-based approach, organizations can move beyond the resume and address larger business challenges like diversity, equity and inclusion (DEI), cost per hire and more. Here’s how you can make the most of your interview strategy for software engineers:

Ensure Everyone Gets a Fair and Inclusive Interview

With an increasing number of candidates from non-traditional backgrounds, ensuring an inclusive interview experience is key. You can achieve this by:

    • Offering skill-based screening – At the top of the hiring funnel, measure applicants’ skills directly—rather than relying on resumes—to decide which candidates should move forward. For developer roles, coding tests are used to screen candidates. 
    • Structuring your processes – Treat all candidates equally by asking them similar questions and using the same structured framework for each interview to ensure that questions are presented in the same order and format. 
    • Creating a diverse interview panel – A homogenous panel will add to the candidate’s discomfort and make your interview prone to bias. 

Technical interview and assessment platforms offer screening, testing and interviewing services that are skills-based and designed to reduce bias in the interview process. 

Assess Soft-Skills Too

Technical interview questions should always be relevant to the skills that the candidate will need to perform the job requirements. Avoid brain teasers and puzzles, and have the candidate write real code (rather than pseudocode) wherever possible.

Ask about programming skills, experience and problem-solving rather than credentials. Solutions like CodeSignal help you evaluate candidates’ technical or hard skills before committing to a hire. However, measuring a candidate’s soft skills is equally important. 

Soft-skills like communication, creativity, ability to work well with others and more are crucial to understanding if a candidate is a good fit for your organization or culture. The bottom line is, that hard skills cn be measured and certified, however, measuring soft-skills is a little more challenging. 

Here’s how you can frame a few questions to gauge your candidates’ soft-skills:

    • Communication: Assess candidates’ non-verbal behavior during the interview – a good question to ask engineers is how they respond to situational questions. Like, how did they improve a faulty/inefficient process in their team. Notice how they explain the situation, describe a model of behavior and ultimately outline an effective solution. 
    • Interpersonal skills: Ask projective questions – questions that prompt candidates to assess other people’s skills, capabilities, and approaches to problem-solving. This will help you understand if a candidate is able to think of their peers as a resource for achieving their own goals or source of knowledge and information. 
    • Learning abilities: High-performance teams all have one thing in common – the mindset and ability to constantly learn, unlearn and relearn. To assess a candidate for their learning abilities, previous work experience is a good place to start. Ask them to describe issues or challenges that they faced in their previous roles. Notice how they articulate episodes of where they had to comprehend new information – could be learning new skills or moving into a new project. 
    • Team play: This makes it into our list of highly-sought after soft-skills because collaboration is now the cornerstone for remote and hybrid teams. Ability to play well with others is often a defining trait for successful software teams. Ask how the candidate would address a team mate if  they couldn’t fulfill their duties in a timely and efficient manner. A response to this question will help you understand how they deal with people’s challenges and how empathetic they are.
    • Innovation and creative thinking:  Use a brainstorming approach to a real-life problem, give them a paper and a pen. Now, evaluate if a candidate can:
      • Propose new solutions as sit in the question?
      • Are the solutions applicable to real-world problems?
      • An ideal candidate will not only describe their ideas but also propose a way to realize them

Help Your Candidates Feel Comfortable

Interviews can be nerve-racking for candidates. To set a friendly tone for the conversation, you can begin by introducing the company, yourself and the role before asking them to speak. 

Remember, candidates have all had different life experiences and will have different communication styles. While interviewing them, ask them specific questions – some instead of asking them, “tell me something about yourself that’s not on the CV,” ask – “Tell me about a time when you…”

It’s natural for candidates to feel stressed or intimidated during interviews and anxiety might prevent them from giving thoughtful and informative responses. 

Focus on Fundamentals, Not Programming Language Specifics

In general, it’s a good idea to hire engineers for overall programming ability rather than language- or framework-specific knowledge. There are plenty of exceptions to this rule, like if you want to hire a senior data architect who has worked on a system like yours in the past. However, especially for more junior-level roles, the details of specific technologies can be learned on the job. 

What’s harder to teach are the fundamentals that make someone a capable engineer, such as problem-solving skills, logical thinking and curiosity. Languages and technologies change over time (you don’t see too many COBOL engineers these days). But with a solid foundation, an engineer can keep growing and learning new skills over a long career in your organization. 

For these reasons, it’s best to avoid asking coding questions and challenges that are entirely specific to a certain language or technology. In many cases, it’s a good idea to ask candidates to use the language of their choice when writing, running and troubleshooting coding questions. This flexibility will make them feel more confident and increase their chances of performing at their best.   

Prioritize Candidate Experience 

Candidate experience is an important determinant of employment decisions. Job-seekers are likely to refuse job offers after a poor interview experience. A bad interview and hiring process also reflects poorly on your employer brand. Here are some ways to enhance your organization’s candidate experience:

    • Effective communication – Candidates hate being kept in the dark about the hiring process. A good candidate experience offers support throughout the entire process.
    • Asking for feedback (and implementing it) – Ask the candidates for input regarding their hiring experience and suggestions for improvement. 
    • Technology – Coding interviews require appropriate tools to code, compile and debug. Poor technology affects candidate performance and may even cause them to drop out. 

Prioritizing candidate experience, especially for hard-to-fill software engineer roles, is crucial to hiring talented candidates. 

Conclusion 

Interviews are the engine that drives hiring: they allow employers and candidates to meet and assess each other and lead to either positive or negative outcomes. The interview experience for technical roles in software engineering will determine the candidate’s employment decision.

Adopting interview best practices during technical screens and coding interviews enables you to onboard new talent. Creating an inclusive interview space with skills-based assessment, asking open-ended questions and prioritizing the candidate’s experience are vital best practices for interviewing software engineers. 


Authors
Sophia Baik

Sophia Baik is Co-founder and VP of People, Finance, and Operations at CodeSignal, a coding skills assessment platform dedicated to helping companies #GoBeyondResumes in tech recruiting. Prior to co-founding CodeSignal, Sophia started her career in investment banking at Lehman Brothers before gaining experience in marketing and operations at tech companies such as Wayfair, Zynga, and Beepi.