How to recognize talent: what makes a good software developer

Peter Simic
Author
12 minutes
Reading time
Hiring
Category

If you are in search of new software developers, you are probably bombarded with CVs submitted by candidates with similar skills.

Spotting talented developers can be a tricky task, especially if you don’t know what exactly you are looking for.

Productive developers have a few characteristics in common, and to make it easier for you, we’ve explored them in this article.

So let’s find out how to recognize talent and what truly makes a good software developer.

They have extensive technical knowledge

It goes without saying that a good developer has extensive technical knowledge. In order to be sure that a developer’s skills are accurately represented in their impeccable CV, always test them first.

There are several ways to do this. One of them is asking the right questions during the interview.

A knowledgeable developer is experienced in practices such as agile development, and has a grasp of some of the key programming languages like Java or Python, as well as familiarity with project management tools like Asana, Trello, and Jira.

So, make sure to cover those during the interviewing process.

Another thing you can do is to ask them for examples of previous projects. You’d be amazed at how brilliant and creative developer portfolios can be.

Check out this awesome interactive portfolio by Robby Leonardi below:

A portfolio would be great, but they can send you code samples or screenshots if they don’t have one.

The next thing you can do is give them a programming challenge.

This is the best way to find out if they can handle some of the more challenging coding problems in a limited amount of time.

You can use LeetCode for this purpose, and even though the challenges there are not exactly like the ones they will have to do in your company, it will give you a good idea of their expertise.

Source: leetcode.com

And let’s not forget about programming languages, all 700 of them. A good software developer will most likely master more than one.

Actually, most great developers are fluent in four different languages.

This is because they have a multidimensional way of thinking and don’t like to find themselves in situations they can’t solve.

Just take a look at this post from Reddit; this young developer has a great career ahead of them for sure.

Source: reddit.com

When you look for a developer, you will most likely want one who has worked on projects similar to yours, so besides looking at their resume and portfolio, you should test their abilities and make sure they know more than one programming language.

They see the big picture

Good software developers aren’t just focused on their part of the job; they are interested in the big picture.

They want to know how the software they’re working on will impact the end-user; they show interest in marketing and sales, they pay attention to how their decisions affect the whole team.

Basically, they are interested in the project as a whole.

Lewis Nakao, a software engineer, explained this very well in his post on Quora.

He stressed the importance of involving yourself in all aspects of the job.

Source: quora.com

But, how can you tell if your candidates are interested in the big picture?

By asking the right questions.

Be mindful of how you formulate your questions since clearly, you can’t expect software developers to have the knowledge of someone with a business degree.

So while you can’t ask some specific things about sales and marketing if you’re looking for a developer, what you can do is ask questions about some areas that pertain to their future duties but are often overlooked, such as design.

Also, try to inspect how much interest they have in the way their software projects will work in the real world.

Bug and crash reporting tool for your mobile app.

Another thing to pay attention to is their willingness to speak up when they come across a feature request that may affect some other aspect of the software negatively.

For instance, you can ask them if they ever had a disagreement with their previous project managers about this type of issue. And, as a bonus, you will also find out how they handle workplace conflict.

Bottom line, developing software is about more than just coding.

You want your developers to show interest in your company as a whole, and that’s, unfortunately, something they can’t learn just by reading an “Introduction to C++” book.

They work well in the team

Teamwork is the foundation of any successful company.

If you look at some statistics, you will see that they strongly support this claim, as lack of teamwork is the number one reason for project failure according to 86% of executives and employees.

Source: Shake

When you search the web for the lists of traits that make a good software developer, teamwork is often not on them.

However, as you can see from the Reddit post below, that is a quality many employers look for in a developer, so it should be prioritized.

This Reddit user even thinks it’s more important than job-related experience.

Source: reddit.com

Clearly, you want your developer to be a team player, but this might be harder to find than you think.

Many great developers are highly skilled but tend to isolate themselves from the rest of the team. In other words, developers often play solo, lacking in teamwork.

So how can you recognize a potential team player?

Well, for starters, these types of individuals will be able to own their mistakes and consider the input of others, instead of getting offended or continuing to do things their way so ask them about their prior experiences.

You can also look at their references and make a few phone calls to find out about their relationships with their former teammates. In this way, you can find out if your candidate was difficult to work with.

Also, activity on platforms such as GitHub can be a clear indication that a developer can collaborate on coding projects and is willing to help others in their work.

Have a look at the activity below for a great example of a very active developer.

Source: GitHub

One more thing that would be helpful is if your candidates have some mentoring experience.

This is a huge plus since mentoring is a significant part of most job positions and requires good teamwork skills.

And at last, if everything else fails, you can simply ask them if they would prefer to work on a team or individually.

So you want a developer who can cooperate with others, be supportive, and mentor others.

Simply put, you want to create an environment where your employees can constantly learn and grow, and to achieve that, you need to hire only team players.

They know how to communicate

Speaking of teamwork, nobody can be a team player without good communication skills.

Teamwork and communication go hand in hand, and companies that communicate effectively can increase productivity up to 25%.

This is because communication in software development isn’t just about the team, it extends to the clients as well.

However, communication is one of the biggest skill deficiencies in developers, and it often gets neglected in spite of its importance.

Source: reddit.com

Good developers will be able to understand problems clearly and propose solutions, but they will also be able to explain technical issues in a simple manner.

In other words, a good developer will be good at coding but also good at being understood by people without a technical background, not just by other software developers. 

To test this, you can give your candidates problem assignments to explain to other non-developer members of the team.

For example, you can get someone from accounting and see if they will understand what the candidate is explaining.

Besides being able to communicate simply, a developer with good communication skills will ask the right questions to make sure everyone is on the same page.

It’s always better to ask a million questions than to end up with a misunderstanding.

You can give them a scenario in which they need to estimate how long it will take them to complete a task and watch which questions they ask along the way.

The only red flag here would be if they didn’t ask any questions at all.

As mentioned earlier, you also want a developer who can speak up, which is where confidence comes into play.

There will be situations a developer will have to handle, for instance, when a client asks for a feature that would cause some issues in the long run.

A good developer will be confident enough to explain the downsides, whereas one who lacks confidence may let the issue slide, potentially causing further problems down the line.

Below is a good example of this from Quora.

Source: Quora

The thing about confidence is that it’s usually connected to the experience.

If someone comes across as insecure, it’s probably because they’ve never encountered a specific problem or situation before.

To sum up, good developers are also good communicators; they explain technical matters in a way that everyone understands.

They ask additional questions to avoid misunderstandings and are confident enough to speak up and defend their choices when needed.

They know how to manage their time

Research shows that an average employee spends 80% of work time on unimportant tasks, so clearly, time management is a problem for many companies.

Source: Shake

When it comes to software development, working under pressure can’t be avoided. And neither can tight deadlines.

On the other hand, burnout must be avoided at all costs, and here’s where time management comes into play.

Good developers have a strong working ethic. They meet their deadlines, show up for work and meetings on time, and give accurate estimates. Basically, they are masters at managing their time.

However, their amazing time management skills usually involve a little help from modern technology.

Nowadays, developers can use several tools and techniques for time management.

One of the more popular ones is, for instance, the Pomodoro technique.

This time management method uses a timer to break work into 25 minute intervals with five-minute breaks between each.

Source: luxafor.com

The number one benefit of this method is that it prevents burnout since it allows developers to focus on a single task instead of multitasking and therefore minimizes distractions.

This is important since an average employee gets around eight disruptions every hour.

Judging from this post on Reddit, developers seem to love this technique as it improves their focus, and they sure get to be creative during their small breaks.

Source: reddit.com

But, how can you test if your candidates are using helpful techniques and if they are even good at time management?

The best thing to do is put them on a short probation period and keep track of how they manage their time and if they manage to complete meaningful tasks in those time frames.

All in all, good software developers know how to use time management tools to meet their deadlines; plus, they are always mindful of possible distractions.

They proactively seek challenges

Probably the best skill a person can have is the ability to learn, and great developers are masters in self-learning. They tend to improve and seek challenges continuously.

Furthermore, according to a survey done by LinkedIn, developers spend more time learning than any other profession.

Not only that, but they do it outside of work, out of personal interest as well.

Source: reddit.com

As you can tell from the Reddit post above, good developers are curious and always interested in new technologies. After all, they have to be; software development changes all the time.

So you will most likely want a developer who is a fast learner and loves to learn, but how can you tell if someone really enjoys learning new things?

Well, you can ask them to tell you about something they’ve learned recently, or, for example, if they participated in a hackathon to hone their skills, collaborate, and learn from other developers.

Source: UNESCO

Another thing worth mentioning is that good software developers love their job; it’s not just a chore to them; they genuinely enjoy building something, doing little tweaks, perfecting their product.

Needless to say that you can’t be an expert in any field if you don’t like what you do.

If you hire someone who does their job only because they need the money, you will get a mediocre worker.

Source: quora.com

As this developer states in his post on Quora, it’s all about passion, but, unfortunately, this isn’t something you can test.

However, with some experience in doing enough job interviews, you’ll be able to recognize it. Passionate, energized candidates will simply stick out from the rest by how they act and how they talk about developing.

So, the key takeaway here is that good developers care about their job; they enjoy doing it, love to learn new things, and, most importantly, are passionate about their profession.

Conclusion

Finding the right talent for your software development team can be hard. This is often because executive teams don’t even know what exactly to look for.

They know that they want a really good developer, but what does it even mean?

Well, besides being great at writing code, there is a wide range of skills you should pay attention to, and we’ve covered all of them throughout this article. We are sure they will help you recognize and hire real talent in no time.

About Shake

Shake is a bug and crash reporting tool for mobile apps. It was founded in 2019 with the mission to help app developers spend less time on debugging and manual overhead — and growing daily since thanks to a small and dedicated team of geeks based in the EU.

Meet your favorite bug and crash reporting tool.

Add to app in minutes

Doesn’t affect app speed

GDPR & CCPA compliant