A Scientific Method for Hiring the Ideal Software Developer
By: Yaniv Beaudoin
Tags: Job Interview, Software Development

In chapter 21 of his book “Thinking, Fast and Slow”, Nobel prize winner, professor Daniel Kahneman describes a method he developed for interviewing employees. I highly recommend reading this chapter, which will also explain the theoretical reasoning behind the method I am going to discuss here. Based on his writings and our own observations, we developed a useful method to help us understand which software developers we should hire. It is nothing new, but rather basic principles put together. The idea is simple, we created a formula with a few factors to grade our candidates. To check if a candidate is qualified, all we need to do is to check the grade of the formula.

Motivation

As a startup at the begging of its journey, the price of hiring unqualified workers is very high. It takes time to understand that a new worker doesn’t suit the job, they slow down the whole team, you don’t want to fire them right away so you give them a few chances before firing, and then the firing process is not a positive process for anyone involved. We can’t afford to do hiring mistakes, it is just too expensive and disruptive.

Before this method, we had no constructed way to know if one is qualified or not. Of course, we had an interviewing process but it was mainly based on intuition. You can claim that intuition is very strong but we wanted a more scientific method. Every time we had to check a candidate's qualification we had to rethink what parameters we care about. We told ourselves stories about the candidates’ strong and weak aspects and tried to project these stories to the candidates’ success or failure in his future work in the company.

The Method

We chose three parameters which are required for the success of a software developer at our company. We designed every step of the interview process to help us grade these parameters. Every time we interact with the candidate we are focused on only one parameter. This way, we break the big problem of understanding if a candidate suits us into several smaller questions we can better estimate.

In addition to the four parameters, we add one special parameter — Intuition. We close our eyes and try to guess if the candidate will be a good fit for our work environment. Before this method, intuition was our main tool to recruit so we didn’t want to entirely abandon it, so we added it as the fourth parameter to our formula.

Our Parameters

Each of the parameters receives a score between one to five. The highest score is five and the lowest is one.

These are our parameters:

Technological intelligence (See what it means bellow)

Specific knowledge in what we need them to do

A good fit for our company culture

Our intuition

To qualify, a candidate has to score at least 16.

For certain positions, we put more weight on one of the parameters than the others. For example, if we are looking for UI expert or a low level specialist, we will put more weight to the parameter of “specific knowledge”, as listed above. This is because we think that these positions demand more specific experties.

Technological Intelligence

We say that someone has a high technological intelligence if they:

Easily jump between different technologies

Can meet our high code standards

Can create good software architecture

Have in-depth knowledge in the computer science world — Data structures, algorithms, etc.

Have in-depth knowledge of modern software — Familiar with modern frameworks and have experience working in different software environments, etc

Can articulate their work and communicate their challenges

Specific Knowledge

Each technological environment is different and reveals its own challenges. We are looking for people that have experienced the challenges that we are going to face. Someone with high technological intelligence will eventually be able to solve every problem but we want to skip as many challenges as we can.

If someone has good specific knowledge it means that they:

Have significant experience in the specific technology (Measured in years)

Are able to quickly solve complicated questions in that specific area

Have led a significant development in this area

Faced and solved challenges in this field

Good Fit For Our Company Culture

We need our workers to have a good fit for our company culture. It won’t work if someone is very skilled but doesn’t share the same work ethics as us. We are looking for people that:

We can trust and rely on

Value teamwork

Respect other people

Will make an effort to be successful

Will want the best for the company

Will take full ownership of their work

Will aim to see the big picture

Intuition

As mentioned above, we don’t want to ignore our instincts. There are things our mind catches which we can’t always put down to words. At the end of the interviewing process, we imagine the employee working in our company. If our gut feeling tells us that we will be happy about the recruitment, then we give a high rank to this parameter.

Being Parameter Focused

Grading each of the parameters is challenging. We can’t afford a long process with each candidate but we still have to be as accurate as possible. This is another place where the method shines. Instead of wasting time, we use every interaction that we have with the candidate for grading a specific parameter. If an interaction doesn’t help us to grade a parameter, then we should avoid it.

There is an exception to the point mentioned above: Interactions that are meant to show case the company and highlight its strengths. We use these interactions to impress the candadite.

Grading The Parameters

Here are some of the tools we use to measure our candidates:

General knowledge questions

Problem-solving questions

Programming home assignments

Review the CV together with the candidate — This gives the candidate the opportunity to explain how significant each of their past positions was.

Talk to recommenders, people that worked with the candidate in the past and can help grade the parameters.

Using The Method

In this article, I focus on hiring software developers but you can apply this method to other positions as well. The parameters and the grading method might be different but the idea is the same; Choose a small number of simple parameters (3–5), write down what these parameters mean and how you can measure them. Then, make sure that every interaction with the candidate is designed to measure your parameters.

Wrapping up

I hope that you find this method useful as we do. After we started to use this method our whole recruitment has changed and became more parameters oriented. It takes time and effort to get to ideal parameters for you and to implement this method but it is totally worth it.

Please let me know if you have any new insights after reading this article!