There’s a common expectation when looking for great developers that they need to be “passionate” about coding, which is often equated to coding long hours. It carries the assumption that the best software engineers live, breathe, and sleep code. That great developers should have intensive work weeks, and fill their free-time with coding side-projects. It wants to see prolific Github accounts, tons of open source contributions, and expects great developers can’t wait to get back to writing code.
In my experience, there are people like that. And they can be great — until they burn out, of course. But while focusing so much time on code can imply that someone is a great developer (though never guarantee it), a lack of after-hours programming does not mean someone will be a worse candidate than someone who does.
In the end, while there’s a lot that separates great developers from mediocre ones, there are more important traits that make a superior developer.
Great Developers Are Problem Solvers
All first-class developers share one common skill: they can solve a problem. Though there’s more to it.
- They have the ability to define the problem it in a way that makes it possible to solve
- They can take their problem definition and break it down to target a solution.
- They are able to assess it from different directions, knowing that complex problems have multiple solutions.
- They also know how to find answers when they are missing information or experience. This is key, because challenging problems always require growth and learning to solve.
One thing you might notice is none of this is specifically related to years experience or raw knowledge. Instead, this is a skill set of its own, that’s often innately developed. From junior to senior, great engineers will be able to follow through on these steps, no matter their experience with the problem domain.
Great Developers Don’t Give Up
I think this is where the misconception that great developers work late comes from. What really is happening is that many amazing developers will get caught up in solving a problem, and want to see it through — or at least get their work to a state where they can take a break without losing their mental model.
This doesn’t mean that all developers have to work this way. The best developers know to always step away from complex issues, to let their mind rest and make it easier to tackle an issue from a different viewpoint.
Great Developers Do Care — About The Quality of Their Work
There is an important distinction here. Great developers care a lot, but they care about the work they do. In the right circumstances, this can be misconstrued as being “passionate,” but I feel like it goes deeper than that. Rather than a general, over-arching concern for all-things-programming, they are going to care about specific issues that affect them and how they work.
For example, a strong developer isn’t always going to accept their first solution. They care about getting the solution right, not just solving it and moving on. This means taking the time to review the solution, looking for edge cases and potential long-term issues. This also means thinking about long-term maintainability — as is appropriate for the problem at hand.
Great Developers Don’t Have to Program After Hours
This is the core issue. Just because someone doesn’t write code after hours doesn’t mean they aren’t a great developer. There are lots of great reasons that a developer might not work after hours on programming. Even more so maintaining balance is very positive to a developer’s mental well-being and will return large gains in the long-term.
- Many developers have other hobbies, that are often orthogonal to software development. If you are looking to hire someone, talk to them about their hobbies and interests.
- If a developer has a family, don’t expect them to have a lot of extra free time. But don’t discount someone here, either. Having a family might mean they’ll get more satisfaction out of the time they have at their job, to focus on challenging themselves and solving problems with code.
- For employed developers, learning about their current role can give you insight into what they find enjoyable or what they dislike about their current job. It also can open the door to learn about what they would like to be working on.
Great Developers Will Stand Out — With the Right Process
Hopefully you can agree: great developers are far more than the hours they log. Evaluating a developer solely on their résumés and extracurricular coding, neither of which show the whole picture, is a guaranteed way to lose talent. So how do you find them?
We’ve found the best way to find great developers is to test their ability to solve problems. Provide them with short, fair, and interesting challenges to solve. The solution to these challenges will give you a lot more insight into how they think and work as a developer.
Things to look for:
- Are they willing to solve tough problems?
- Are they persistent in solving a difficult challenge?
- Are they able solve the problem in a way that is maintainable, and can be understood by other developers?
Choose the Right Process for Your Team
When looking for developers to join your team it’s critical to evaluate potential candidates in a way that allows truly great developers to stand out. That’s our mission at Qualified, accelerating talent assessment in a way that saves time, while unearthing true talent. In our next articles, we’ll look at different processes you can use to highlight great developers.