We’ve worked with developers in more than 25 countries for more than a decade now. Over the years, there have been three incredibly important traits that continue to pop up in every extraordinary, reliable and productive developer we hire.

If you want a team of developers who can execute quality and always move your team and product forward, then you need to find these 3 traits in the people you hire:

1. They’re confident communicators

You just found out you have to add a new feature by the end of the sprint. It’s an incredibly challenging task to add mid-sprint. You assign the task to one of your developers who looks up at you and says:


A confident communicator is someone who not only makes every “Oh crap” moment leave you feeling assured the project is in good hands, but they’re the kind of person that if you went to a conference with, you’d want that person there at the reception dinner because they make you look smarter.

Whether speaking or writing, you can always depend on them to be confident in their solutions and represent your team as a group of professional individuals who can be trusted to deliver quality. Period.

But be careful: there’s a difference between cocky and confident.

Cocky developers are people you avoid talking to. Confident developers are people you naturally want to follow.

Why it’s important:

Although you might be thinking this only applies to lead developers, it applies to every developer.

The easiest way to illustrate this is by looking at the effects that come from a developer who isn’t confident in their communication with someone like a project manager. If a project manager is trying to set expectations with stakeholders or a PM based off shy, hesitant or unassured estimates from a developer, it’s likely the wrong expectations will be set and trouble can ensue.

Or imagine a developer ends up in a meeting or casually talking to your boss about a project and he comes across as anxious or scared about a situation; suddenly your boss is worried about deadlines and has you in his office having to reset expectations.

Everyone sleeps better at night and moves forward with projects faster and more confidently when you hire people (yes, even developers) who can communicate with passion and confidence.

How you can test for it:

Before you accept them for an interview, have them answer a set of simple questions about how they’d approach a technical challenge, or how they’ve approached their greatest technical challenges in the past. Based on the length of their responses and the passion put into them, you’ll quickly be able to see whether they can confidently communicate in written form.

Once they reach the interview, assuming they’ve already taken a technical exam, have them go through the exam and explain each decision they made and why they made them. Be sure they can justify their solutions confidently, even if those solutions aren’t necessarily the best approach.

If they’re a remote developer, take into consideration things like timeliness to showing up to the call, as well as quality of their connection and equipment. They might not seem all that important during the interview, but they will when a major bug hits the site.

2. They’re proactive and take charge

The last thing you want, especially if your developer is remote, is someone who sits and waits to be given tasks or told what to do.

In other words, you don’t want them to look like this:

Dr. House rubbing lip

Developers who get bored…get bored on their own. Proactive developers can’t sit still, they can’t go without a task and they will create tasks if none exist.

A proactive developer who takes charge is someone who is never “blocked.” They continue pushing forward to get answers to become ‘unblocked’ OR they find tasks that they can do in the meantime until they are unblocked.

Proactive developers are never bored. If the sprint items are done, they’re digging into the backlog without ever asking for help. They constantly move projects and teams forward, and are the most valuable people to have on a team.

Why it’s important:

If you want to do your job well as a development manager (or CTO), you’ll never be able to do it until you have proactive people working for you.

If you constantly have to hand-hold people, give approvals on everything, assign new tasks when a sprint finishes, help people reach out for help to get unblocked, etc., then you’ll never have time to be a manager.

And for the sake of your developers and helping them grow, they deserve your time and attention in those areas much more than they need to have their hands held. But you can’t do it without proactive people.

How to test for it:

Proactiveness is incredibly hard to test for, but we’ve found a good solution.

We put developers in a week-long test project where they join a ‘fake’ team and are expected to start adding value to that team immediately.

They’re given unexpected obstacles throughout the week-long project (Requirements changed! New comps! API just broke!) and several opportunities to keep the project moving forward despite the hiccups.

Great, proactive developers ensure that the stakeholder remains satisfied by resetting expectations often, all while still producing code that will be easy to maintain for the team in the future.

3. They share selfless values

When people work in an industry that is all about ‘who can come up with the best way to solve a challenge,’ you can end up with a competitive spirit that can sometimes be taken too far.

If you’ve ever had a developer who wasn’t quite a team player and preferred to stay in a silo with their headphones on 8 hours a day, then you know what I mean.

This is why we tend to recruit from open source communities, as they already tend to understand the team mindset and how important it is to support one another in order for a team to grow and sustain itself.

People with selfless values are more likely to help each other, which combined with proactiveness, results in a team that moves forward very quickly.

People with selfless values create an environment that’s encouraging and supportive, which results in developers who get addicted to learning, growing and receiving more respect and support from their peers.

Why it’s important:

If you want a team of developers who will always grow, dedicate themselves to quality, commit themselves to their teammates and moving forward together, then you need people with selfless values.

How to test for it:

This also isn’t easy to test for, but if you get into the right conversations during an interview, it will become more clear.

We like to talk to developers about their experiences in past projects, both the good and the bad, in order to learn about what parts of those experiences were most important to them.

We want to know what’s closest to their heart in order to be able to extract whether they share our selfless values. We want people who understand that, at the end of the day, people are more important than computers.