avatarThe Secret Developer

Summary

The article outlines a flexible and practical approach to interviewing software developers, emphasizing the importance of tailoring the process to the company's context and the role's requirements.

Abstract

The "Ideal Software Developer Interview Process" presented in the article is a nuanced approach that requires preparation and customization. It suggests that tech-first, data-driven firms should conduct interviews with an understanding of what they are looking for in a candidate. The process includes varying technical questions for each candidate, preparing them adequately beforehand, and focusing on open-ended questions that reveal the candidate's strengths. It also emphasizes the importance of behavioral skills, aligning interview questions with company values and expected behaviors, and evaluating leadership qualities through both technical competence and relevant behaviors. The article advises against traditional data structures and algorithms questions, as they may favor certain demographics, and suggests that a candidate's published work, such as a GitHub repository, can be a valid indicator of their capabilities. The conclusion reiterates the practicality of the guide, which is provided freely by the author, "The Secret Developer."

Opinions

  • The author believes that the traditional interview process is not effective and that companies should adopt a more flexible and tailored approach.
  • There is a strong opinion that preparing candidates before the interview can help provide a more accurate assessment of their abilities.
  • The article posits that live coding exercises are a better measure of a candidate's capability than theoretical questions about data structures and algorithms.
  • The author suggests that a candidate's previous work and experience, particularly from reputable companies, should be given significant weight in the interview process.
  • Behavioral questions should be aligned with company values and the specific role, rather than being asked to satisfy HR requirements.
  • The author expresses confusion as to why companies do not adopt these suggested practices, implying a level of industry-wide inefficiency in hiring processes.
  • The article promotes the idea that interviews should not be a one-size-fits-all approach but should be adaptable to the candidate and the role they are interviewing for.

The Ideal Software Developer Interview Process

Here it is!

Photo by Amy Hirschi 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 experience of the candidate, and also 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 take place 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?

About The Author

Professional Software Developer “The Secret Developer” can be found on Twitter @TheSDeveloper and regularly publishes articles through Medium.com

Tech
Technology
Software Development
Software Engineering
Interview
Recommended from ReadMedium