5 Most Important Traits I Look For When I Hire A Developer

5 Most Important Traits I Look For When I Hire A Developer

My perspective towards the process of hiring

I have been interviewing developers for years now. My most key lessons came from three types of people:

  • Brilliant hires
  • Ones I regret hiring
  • Rejected candidates

I paid more attention to the bad hires and analyzed what I missed when I hired them.

I believe if the candidate is a good software developer and a good team player, he can learn any language and possibly any domain of software.

It’s not easy to know the person when you are interviewing them. So now my hiring process is more structured than being ad-hoc. I look for certain traits in the person I want to hire for my team.

Thinking comes first

Photo by Juan Rumimpunu on Unsplash

Thinking comes before programming. Computational thinking is the first step towards programming. The most crucial part is thinking logically and breaking down a problem into steps to find a solution.

In the first round of interviews, I try to find how is the computational thinking of the candidate. I give them problems related to Data structures, dynamic programming, etc. I don’t put restrictions on the language they want to use.

Any language can be learnt if you can think and solve a problem

I have seen many experienced candidates give up when you start discussing binary search trees and graphs.

Basic concepts & experience

Photo by Kaleidico on Unsplash

Another important attribute is the basic concepts of computer science.

We discuss the functioning of various sub-systems involved in a pseudo solution and try to gauge the understanding of the candidate about how the whole system works. Concepts related to the operating system, data structures, and domain-specific theories and opinions.

Next comes the experience of the candidate. Discussions on the past projects and the problems the candidate has faced and how they were solved.

This gives you insight into the capabilities and helps you make a decision.

Problem Solving

Photo by ALAN DE LA CRUZ on Unsplash

Solving a problem involves many steps:

  • defining a problem
  • Analyzing the cause of a problem
  • Generating the alternative approaches
  • Evaluating and selecting an alternative
  • Implementing the solution

I throw a few well-known and non-conventional problems at the candidate. The goal is to see how well the candidate attacks the above steps involved in problem-solving.

I often give them hints and see how they proceed.

I look at approach and not the solution

Design concepts

Photo by Firmbee.com on Unsplash

Design is as important as coding. We do a couple of discussions to understand the design thinking of the candidate.

Idea is to get a glimpse at his/her way of designing a solution. The key aspect I look for is the simplicity of the solution. I make a few changes to the use-cases and then see how the candidate adapts to them.

Attitude

Photo by Alex Iby on Unsplash

The right attitude is one of the most important qualities of a good teammate.

One wrong hire can change the team dynamics and make everyone inefficient.

You want to hire someone who gels well with the team and yet complements the team in terms of skillset.

In my career, I have seen bad hires do the damage. The whole team goes for a toss.

Wrapping it Up

I have spent a lot of time when I was hiring for my team a couple of years ago. It got me thinking after interviewing 4–5 candidates. So I came up with these qualities that I want in my teammates. My team’s process of hiring revolves around the qualities I have listed above.

Comments are closed.