Common Traits of The Best Developers I've Worked With
I've been fortunate to have worked with a lot of great developers over the years, and for all the differences in coding style, personality, and preferences that these diverse individuals have, they also happen to share several common traits. Below is a list of the qualities that I've found have been shared by all of the best developers I've worked with.
They're collaborative -- not competitive
These people work with you, not in competition with you. They're team players, and want you to succeed as much as they want to succeed themselves. By contrast, whenever I hear a developer talk about keeping their "edge" over others, I know they're focused primarily on themself. That old saying about how there's "no I in team" is corny, but true. Will you be that cool dev that everyone feels they can come to with a problem, or the one who always has to sound like the smartest guy in the room?
They value best practices
Deisgn patterns, S.O.L.I.D. principles, CI/CD, DRY...the list of acronyms and abbreviations goes on! The best developers adhere to these things, while others will instantiate dependencies within a class because adding that one line to their IoC config to handle that edge-case is too much work.
They unit test their code
Unit tests ensure your code works as intended, guard against breaking changes, and help reveal flaws in a design or approach. And a sure sign of a developer who wants to produce quality software is an appreciation for unit tests and code coverage. By contrast, I've found that developers who consider unit testing to be a hassle typically produce problematic code.
They learn from their mistakes
This one's pretty much self-explanatory. The best developers learn, grow, and evolve, while others continue making the same mistakes over and over.
They treat other developers, even those with less knowledge and experience, as equals
Programmers, especially the smartest ones, can be an arrogant bunch. But the best ones I've worked with have had a sense of humility. As a developer, you can be a helpful member of the team who values everyone else on the same level, or you can be that guy who rewrites everyone's code and flashes their title around. Your pick.
They love what they do
Enthusiasm is contagious. It's a lot of fun working with other developers who are excited about some new tech their learning, or who you can hash out ideas with, or who, through their enthusiasm, lift your energy level when you're feeling fatigued. Working with developers like this makes the job more enjoyable.
They keep current
In summary, I've been fortunate to have worked with a good deal of developers who embody all of the traits I've just mentioned. These people have been fun to work with, have become good friends, and have been people I've learned some good habits and techniques from. With any luck, I'll be able to surround myself with these sorts of developers until the end of my career. Work is always more enjoyable when you're working with the best sort of people. I do my best to embody these traits as well, and hopefully I'm thought of as well by them.