The Ideal Software Developer Interview Process

Photo by Christina @wocintechchat.com on Unsplash

Far from clickbait, this article presents a practical approach to hiring top-notch software developers.

How you apply this cookbook depends on your context and what you’re looking to achieve from the process.

It will not be right for you out of the box.

Consider the points below and make the appropriate modifications and you will hire better staff and cut retention.

Take it from The Secret Developer

I simply have no idea why companies aren’t doing it this way

Assumptions

You are:

  • A tech-first firm

  • You are data-driven in outlook

  • You know what you are looking for

The Ideal

If you choose to ask sets of technical questions these should vary from candidate to candidate. A candidate with deep knowledge about an irrelevant (for you) area is of little value. Therefore the questions and how they are asked should be variable according to the role, people present, and what happens in the interview situation.

Total flexibility

It’s difficult, so remains an idea.

Let us look at the actionable structure for interviews that we might choose to use during the next interview cycle.

Preparation

If an organization knows the interview process before engaging the candidate they should be in a position to prepare the candidate. This helps provide thinking time and remove surprises that can trip up even able candidates.

  • Have a 1-to-1 session to prepare the candidate and answer questions

  • Prepare FAQ-style documents about what the candidate may expect for each interview.

Technical ability

What to ask:

Open-ended questions enable the candidate to reveal their strength.

Strategy 1:

Ask the candidate about the most challenging previous project they have worked on, including their role within it. If necessary ask for more detail in one technical area (depending on the level of the job opening this can be a more difficult area, like cache policy or encryption).

Strategy 2:

Give the candidate a project there and then work on it. With you in the room. Ask appropriate questions. The idea here is to measure capability in an area that matters to the business. If you ask for the candidate to produce the code live you can be sure it is their work. Because live coding can be stressful for some, prepare them for the session and make allowances.

What not to do: Traditional data structures and algorithms. These favor younger candidates with the time to study.

Can’t they just look over my GitHub repo?

Actually, a flexible interview should be able to not just take into account a candidate’s published work but potentially accept that. Someone with a decade at Google (for example) isn’t faking their work for any particular job interview. The interviewers should be able to judge the performance of candidates according to how they present.

Behavioral skills

What to ask:

STAR questions that align with the behaviors that are required for the software development role in question.

It does require some thought into what type of questions to ask, however

Strategy:

Ask the candidate a series of hand-picked questions about their behaviors while at work. You’ll need to make sure that you know your company values and expected behaviors before the interview and inform the candidate of these too!

It isn’t about grading responses but rather about gaining evidence of a good fit. Rather than a feeling, the candidate's responses can be recorded and understood to be a snapshot of a moment in time of the candidate.

What not to do:

Tell the candidate you’re asking behavioral questions “to make HR happy”

That last one happened to me. I’m better about it.

Leadership

What to ask:

Look for evidence of strong leadership through both behaviors and technical competence.

Strategy:

Leadership skills can be weighed up through the candidate’s experience and specific behaviors that can be elicited from the behavioral interview. For senior positions, a more holistic understanding of people’s reactions to the candidate can be important.

What not to do:

Be overcome by someone potentially very competent in their role.

System design and others

What to ask:

There should not be a specific question or set of questions here. These should be wrapped in other questions, or if specific interviews occur, the candidate should be aware of what might be asked and the form it will take. No special interview preparation should need to take place.

Strategy:

Either use a separate interview according to your needs or put the specific questions into other interview sections.

What not to do:

Ask weird, inappropriate questions.

Conclusion

A practical guide for interviewing? There I’ve done it. It’s not on a consultancy basis, no payment is required.

Aren’t I great?

Previous
Previous

5️⃣Software Developer Delusions

Next
Next

Elon Musk Just Shouldn’t Be a CEO