What I Learned After Interviewing More Than 100 Software Engineers

Each software company has a unique interview process. A candidate may struggle in one and thrive in another. It’s normal

Philip Starritt
Better Programming

--

All images from Unsplash

Over the last few years, I have had the pleasure of conducting over 100+ technical and culture fit interviews. During that period we have tested various formats and evaluated candidates on different principles. Enabling our process to evolve one step at a time.

Here is my take on this ever-evolving process.

What skills does the candidate need to successfully fulfill the role?

Structuring the interview process to best reflect reality increases the chance of having more successful hires. This also provides an opportunity for the candidate to better understand if the job is a mutual fit. This is paramount, as we want to fulfill new hires’ expectations.

For example, does it make sense to test candidates on complex graph algorithms, if they will be working on a standard CRUD application? And vice-versa. But of course, the interview should be challenging. Allowing the candidate to show their skills such as problem-solving and analytical thinking.

The interview process should also take into consideration the company size and needs.

A start-up may desire fast-iterating engineers who can bring a product to market. While a more established organization may be facing scaling or architecture challenges due to rapid growth.

Be consistent in your decision-making

Decide on a hire or no-hire decision-making process and strive for consistency. Access and adjust.

Exceptions should not be the norm.

This applies to individual interviewers and the process as a whole.

Prefer open-ended questions

Avoid questions that can easily be looked up.

  • Math problems with one answer.
  • Java API questions. Who googled the 101 Java interview questions last?

Prefer open-ended problems where there are many valid solutions. Let the candidate drive the approach. Provide guidance and hints when necessary.

Pretend they are your teammate, and you are solving a problem together. How does it feel?

A great interview will feel like a discussion with a friend.

Multi-step problems

Not every candidate is an expert in all topics. Some candidates may shine in one section and struggle in the next. Having a multi-step problem or question may provide more opportunities for the candidate to show their skills.

For senior candidates, we pair on an architecture exercise covering all aspects. Such as design, scalability, observability, databases, security, deployment, infrastructure, etc.

Look for their strengths. What are they good at?

Let's not forget they will be part of a diverse and supportive team.

Photo by Antonio Janeski on Unsplash

What does the candidate consider a challenge?

Fixing a bug? Developing a feature? Or getting a disgruntled team-mate back motivated and delivering?

If you know, you know.

Don’t let the interview overrun

Test the interview process with a teammate.

Give the candidate at least 3x the amount of time it takes you.

Stress

Yes, stress exists. Interviews are stressful. It’s your job as an interviewer to minimize that.

Some tips

  • Prefer inclusive language. For example, “we would like to solve a problem together” vs. “how would you do that?”
  • Explain the interview format at the start
  • Take a small break
  • When the candidate is struggling, provide hints and mentor
  • Learn to know when to move on to a different topic
  • Treat the candidate as your teammate

People may go blank on some questions. It’s okay. Completely normal.

Avoid group acceptance

Don’t have a bias if they don’t follow your approach. Instead, try to understand why they choose this approach. Can they convince you?

Hire people who can approach problems and think from a different perspective.

Company Values

All interviewers should share the organization’s principles and company culture.

Do you tolerate brilliant jerks? Hire for attitude and teach the skills? EQ (Emotional Quotient) vs IQ (Intelligence Quotient). Which one is more important?

And my last tip, don’t compare yourself to the candidate.

Happy interviewing!

Philip

--

--