Don’t mess up software developer selection

Time to choose

So, you need a new member to your software team. After contacting your favourite consulting companies, you get a bunch of CVs. They all belong to reliable professionals with adequate software development skills. But which one should you pick?

The usual way is wrong

Rating developers based on their experience in your main technology is the most popular method. It is simple and feels objective. It can also be very misleading. Just because someone has been working with Java for 10 years, it does not mean they will be the best choice for your Java project.

Counterintuitively, ten years of experience is not always better than three or five. Humans tend to stick to their known ways, and software developers are no exception. In ten years, there is likely to be more sticking and jading than in five. A younger developer might be just as good as the more experienced one but more flexible and ambitious.

Below, you will find our best advice for picking the right developer for your team.

Learning new things

A software developer spends 50% of their time learning something new. This means that besides coding, they have to be good at learning. You will want a developer who is willing to leave their comfort zone. 

Your project will undoubtedly include something the developer hasn’t done before. Or something is done in a different way than they are used to. Will the developer stick to their guns and implement something technically inferior just because they are used to it? 

The first place to look for project variety is the developer’s CV. Check out their work history and free time projects. Have they challenged themselves with new types of projects? Have they hopped into something completely new?

You can also just ask the developer their views. When was the last time they learned something completely new? How would they start a project where they don’t know the technology or framework beforehand? (There is a list of useful interview questions at the end of this blog post.)

Some technologies are quick to learn

For a skilled developer, learning certain programming languages is a rather quick process. Many programming languages have similar features or might even be relatives. If you choose a developer that has used many languages before, it is probable that hopping into Go won’t be too hard for them.

However, some technologies require more expertise than others. Many languages require deep knowledge gathered over the years. For example, C++ is way too complicated to learn in a few weeks.

Additionally, some languages give a good background to learn a specific new one. The syntax or typing might be similar between many so-called C style languages, such as Java and C#. TypeScript is essentially just an extension of JavaScript. 

What are these technology combinations? Below, you will find a table with some examples. With the skills mentioned in the middle column, an experienced developer can start working efficiently with the new technology within weeks.

Technology Experience needed Reason
Python Any type of programming background Oversimplified syntax

Interpreted language

Dynamic typing

Ruby Any type of programming background Much like Python
Go Any type of programming background Simple syntax

Limited amount of features

C++ Experience from various other languages, and especially C++ itself.

Knowing C might help.*

Complex syntax 

Decades of legacy code

Designed by experts for experts

C Knowledge on computer internals, e.g. ASM.

Knowing C++ might help.*

Simple syntax, but easy to mess up big time
C# Experience in Java may help Much like Java, but on Windows
Java Experience in C# may help Much like C# (duh), but on Java Virtual Machine
JavaScript Any type of programming background, but understanding about web is required Easy to learn
Different web technologies increase complexity
TypeScript Experience in Javascript. C# or Java might help Practically an extension to JavaScript

Static typing

React, Angular, Vue Experience in one of these and JavaScript or TypeScript JavaScript frontend frameworks, have much in commmon

* If the developer can separate C and C++ in their head, the languages support each other. If not, knowing one will make using the other even harder. 

Variety of skills

However, it is not the best choice to eliminate developers based only on programming language skills. In every project, additional expertise is needed. You will be guaranteed to get better code from a developer who understands your software’s bigger picture.

As an example, if you’re looking for a backend developer, see if they also know the other parts of a web application well: frontend, cloud services, databases and so forth. They will be able to communicate better with other team members and consider the needs of the whole application, not just the back end.

Also, a modern developer should have experience with testing. Not everyone has to be a test automation engineer, but knowledge of unit testing with good practices is a must. Even if this sounds like an extra or afterthought, consider that in a well-directed software project the developers spend almost as much time writing tests as production code.

The work history

So, a developer has worked at Google, Amazon and Nasa in the past three years. Sounds amazing! But is it, really? If the dev has kept hopping between employers, how committed will they be to you? Are they prone to resign when things start to get complicated?

Then, on the other hand, working on the same project for 15 years might not be good either. There is a chance that the dev has fallen behind in the development of that one language they have used. What good is 15 years of Java 5 if your project is using Java 17?

In both cases, you should ask the developer the reason behind their career choices. The frequent switcher might have a legit reason for the changes. Perhaps one project was ended during the COVID lockdown, the next company did its exports mainly to Russia, and the third one lost its funding due to rising interest rates.

Similarly, a long time with one employer might be a good thing. Ask the candidate what they have been doing during the years. They may have worked on various projects and have used four different programming languages, all to the newest standards.


Asking the candidate about their personality is not going to get you far. It’s not like anyone will admit that they are uncooperative or stubborn. Instead, look into the candidate’s behaviour during the selection process.

To help you, we gathered some good things to look for. These are not must-haves for a good developer, but they certainly make working with them easier.

Green flags in a candidate
Communicates their thoughts clearly
Listens to other people carefully
Admits when they don’t know something
Doesn’t aim to ”win” discussions or get defensive
Is flexible about practical things
Is willing to leave their comfort zone

How did the consulting company choose the candidate?

Generally, Finnish software consulting companies do a good job choosing their developers. However, there are differences between their selection processes. At Buutti, we believe the best way to pick software consultants is through three phases of technical testing. First, the developer does a homework assignment. Then, there is a technical interview with theory questions and, finally, a live coding test.

It’s not only technical tests, though. A consulting company should always also evaluate the character of the candidate. At Buutti, our recruiters make sure the developer has a personality suited for consulting work. Additionally, our sales team meets the applicant before hiring to make sure they will match our customers’ needs.

Ask your consulting company how they choose their developers!

Interviewing the candidate

You should always interview the candidate. This is not only for you to evaluate the candidate, but the candidate can also evaluate you. If you are both interested in cooperation, chances are the project will succeed.

For the interview, open-ended questions with broad topics are the most useful. Let the developer show how they think. A good question can be about a single framework or technology as long as the purpose is to explain it broadly (such as question 3 below). Below are some useful interview questions when selecting a software developer.

Good interview questions

  1. How can software developers ensure the code and the final product are high quality?
  2. How would you start designing an online chess application? It must include matchmaking and player vs. player matches.
  3. Give an overall description of how React.js works
  4. What are good CI/CD practices in a software project?
  5. Explain what is a Single Page Application


Bad interview questions go into detail. A good software developer doesn’t usually have to remember trivia or know esoteric frameworks in and out – those they can just Google or ask a teammate. The developer might also have not used a particular framework in years but will remember it quickly once they work with it. If your interview question has one specific right answer, it is likely to be a bad one.

Bad interview questions

A bad question Why is it bad?
What does the git bisect command do? The developer might not have needed this command, but can Google it quickly.
What is SessionFactory in Hibernate? There might be some time since they used Hibernate.
Explain the difference between merge sort and quick sort Developers need sorting algorithms very rarely, and can Google them quickly.
Explain the various built-in data types in JavaScript Tests photographic memory, not JavaScript skills. 
How would you publish a data asset into Amazon DataZone? DataZone is a niche feature that can be learned quickly. 


In addition to the interview, doing your own technical testing is a good idea. Developers are willing to show their skills, and you’ll see how they actually work. Pay attention to how they approach the problem, what kind practices they use and what they do when they encounter a problem. 

Just don’t ask to implement a linked list. How often do you actually need one?

What if I want to hire instead?

Choosing a hired developer works pretty much the same as selecting a consultant. So, you can apply most of the contents of this text. Should you hire an employee or a consultant, though? Check out this page on hiring vs consulting.