As I close out my first year as a full-time software developer, I find myself looking back and wondering to myself, “Am I doing a good job?”. I like to think I am, and feedback from my manager and peers would seem to confirm it.
While that’s reassuring, I still hesitate to call myself a “GoodTM Software Developer”. I look at colleagues whom I admire and still feel hopelessly behind.
Clearly they’re doing things that I’m not.
Beyond just experience, what is it about the way they operate that sets them apart? More importantly, how do I close the gap between us? Is it even possible -- Or practical?
I think so.
I spent some time watching how these people operate, and I think it boils down to a few things: Curiosity, willingness to share, and organization (A.K.A being on top of your shit). All the developers I admire most share at least these 3 qualities. They take time to understand things from top to bottom. They often distill and share what they learn with others. Most of all, they are incredibly organized and reliable.
With these traits in mind, is it possible to improve them within yourself? In short, yes - absolutely! In not-so-short, yes, but it will be a lot more work than you think.
The first step is in dispelling the myth that you are fixed in your abilities as a person. One’s abilities and tendencies are the result of many factors. Genetics, upbringing, and education are just a few examples. Most of these factors are largely outside of our control. The common belief is that wherever one lands on the scale, that’s it -- I disagree. Just because you grew up one way doesn’t mean you will be that way forever. Everyone changes. Some people are more intentional about it than others. It is possible - through a lot of intentional hard work and discomfort - to rewire your brain and change for the better. The human brain thrives on repetition, and because you’ve spent your life until now thinking the same way every day, that is what feels comfortable - like yourself. If you force yourself to do something different, it is only a matter of time before you find a new equilibrium.
With that in mind, let’s define each of the key traits of GoodTM software developers and then examine how we can improve them in ourselves.
Curiosity
Curiosity is the desire to understand something. It is the door left slightly ajar, begging you to open it and see what’s on the other side. Some people see it and move on, content with guessing at its contents. Others take a quick look and carry on about their day. Curious people (like GoodTM software engineers), however, kick the door open, letting the light shine on everything behind it. They study the new room in detail, until they find yet another door, and another through that one, and so on.
In essence, curiosity is the art of leaving no question unanswered. If you count yourself among those who aren’t curious, chances are that you just learned to be satisfied with incomplete answers. That could be for any number of reasons, but that’s up to you (or your therapist) to figure out.
It’s simple to become more curious, but not easy. You have to catch yourself every time you accept an incomplete answer to a question, and let yourself continue down the rabbit hole. Sit with the answers you find and see what questions bubble up. Keep going until you feel genuinely satisfied with what you’ve learned.
In a nutshell – if you want to become more curious, get in touch with your inner child and just ask “why?” until your computer hates you.
Sharing What you Know
The best software developers I know are excellent at sharing what they learn in easily digestible ways. The benefit to doing this is three-fold. You elevate those around you by teaching them new things, and you reinforce your own expertise in the subject. Teaching something shoves whatever you don’t know in your face and forces you to deal with it. How can you teach something you don’t already know yourself? The icing on the cake is that you build a reputation as an expert. Once you have that reputation, people will reach out to you with questions and opportunities, creating a virtuous feedback loop of improvement.
Organization
Without the keystone skill of managing your time and keeping track of your efforts, it’s incredibly difficult to be curious, and even harder to share what you know. If you’re always catching up with yourself, when will you have the time to explore the passing questions throughout the day? Thoughts like “I wonder where the term checkmate comes from?” or “How the hell does this library work?” end up cast in the ever-growing “later” pile and forgotten.
Each question is an opportunity to deepen your understanding of the world - if only you set aside the time to thoroughly explore it.
Conclusion
I’m only a few years into my career as a software professional and I’m still figuring a lot of these things out. On top of that, things are changing faster than they ever have. Software development as a skill-set is becoming less of a constant and more of a multiplier. The
tools, languages, frameworks, and even the role itself will continue to shift under our feet. What will matter more and more is not whether you know today’s exact stack, but whether you can learn quickly, understand deeply, communicate clearly, and reliably move work forward.
That is why curiosity, sharing, and organization feel so important to me. They are not just “nice to have” personality traits. They are the foundation that makes every other technical skill easier to acquire. Curiosity helps you keep learning when the ground changes. Sharing
helps you turn private knowledge into collective progress. Organization gives you the space and reliability required to actually do both.
I don’t think becoming a Good™ Software Developer is a destination you arrive at one day. There probably isn’t a ceremony where someone hands you a mechanical keyboard and declares that you finally belong. More likely, it is a direction you keep choosing. You choose it when you ask one more question instead of accepting a vague answer. You choose it when you write down what you learned so someone else does not have to struggle through it alone. You choose it when you make a plan, follow through, and become someone your team can count on.
So, am I doing a good job?
I think so. At least, I’m trying to. And maybe that’s the real point. Being a good software developer is not about already knowing everything. It is about building the habits that make you better every year: staying curious, helping others grow, and keeping yourself organized enough to do the work well.
If I can keep doing those things, then the gap between who I am and the developers I admire will keep getting smaller. And, hopefully, one day I’ll look back and realize that somewhere along the way, I became the kind of developer I used to look up to.
