How To Be a Successful Developer

Corey Hickson
Vendasta
Published in
5 min readSep 1, 2023
Hemant presenting at the inaugural Vendasta Tech Conference.

In January, Vendasta held their inaugural tech conference (internally) with a vast array of topics and a great set of presenters. Immediately after, I was already looking forward to the next one! I had the pleasure of sharing my talk “A Path to Success As a Developer” which was based on my seven years of being a software developer and what I learned were effective ways to be a software developer. I wanted to repurpose that talk for the broader internet to have! Let’s dive in.

What does success mean?

For this presentation, I was using Mentimeter, an interactive platform for presentations that lets you engage in a variety of ways with your audience. First up, I asked what success meant and let the answers roll in. What did people say?

A set of answers that I summarize later on what a good software developer is.
A variety of answers describing successful software developers as focussing on creating useful software and helping customers, happiness and productivity, and learning and growth.

For me, the highlights of what success means boils down to: creating useful software and helping customers, happiness and productivity, and learning and growth. This captures the value that you’re able to provide, how you interact with your peers, and it captures how you provide for your self and plot your own path forward. If someone is meeting all those criteria for the level they’re at, I think that’s a great spot to be.

Let’s dive into these three concepts!

How to create useful software and help customers

This is a particularly broad question and the answer changes depending on what you’re responsible for. But I think the responsibilities build upon one another from the most junior of ranks and upward.

A pipeline from good features, to good proposed solutions, to good technical vision.

At junior levels, you focus on making sure your feature deliveries are tested, they work, and they have good polish so edge cases don’t cause friction for your users.

As you grow, you start to propose solutions and you want those solutions to encapsulate the problem space in an effective way that shows you really know what’s going on and your recommendation is going to be an effective way to move forward.

Next is where I’m improving at right now: integrating architectural vision with technical limitations and company objectives. This feels like a particular dance where you need to work to align timing and decision making just right to move your whole platform forward in unison. Generally, I try to ask myself: is this path we’re taking going to be easy to change and adapt in the future?

Combine this with cross functional members to research user needs and engage them to use your new feature, and you can drive to effective software that will help the customer.

Happiness and productivity

Happiness and productivity are generally intertwined and it’s easy to find research that supports this. A good developer practices healthy boundaries that in turn allow them to be more effective at their work and do it quicker than otherwise. This is paired with the environment you’re in and together have an impact on what you’re capable of.

This is more individual to the person, as it’s subjective, but you can largely distill this down to: are you taking ownership of your own time and your role?

You can do this by: planning ahead, remembering everyone is (in general) doing their best, and finding the right space for your skills.

Do you have a meeting coming up? Make sure you’re briefed on the material to contribute. Is your schedule too busy to focus? Decline more often and ask for summaries or recordings to review when you have fragmented time to catch up. Planning ahead generally helps make meetings work better for yourself and others who work with you.

The prime directive for retrospectives sums up my second point nicely:

Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand.

  • Norm Kerth, Project Retrospectives: A Handbook for Team Review

This allows us to breath and bring peace to our day to day, as much of what we do is making mistakes and learning from them so we can improve in the future as we iterate on our software.

Finally, a big determinant on your productivity is your environment. Not everyone gels and I think that aiming for a place where you can gel is a great goal. If you find yourself in a place where you won’t gel, see if your manager knows of any changes coming to change up your team or see if there’s spaces of interest they might know of. This is always better than working against the grain and burning out.

Learning and growth

Finally, a successful software developer is constantly learning and growing. I like the SMART framework for these: specific, measurable, achievable, relevant, and time-bound. For example, I made a goal to participate in our book club which was reading Team Topologies by Manuel Pais and Matthew Skelton. It met all parts of the SMART framework and helped me improve my own skills.

Additionally, I like to share and meet with others in one on ones which not only helps those I’m mentoring but it helps me practice and refine my own understandings of what I share or better understand another perspective from what gets shared with me.

Overall, I think learning and growth is an individual plan but I’d encourage you to ensure you’re growing with intent. I think by focussing on where you are, where you want to go, and how you’ll get there, you’ll see much more success than if you just go with the flow and see what happens.

Conclusion

I hope that these highlights help encapsulate some of the high levels of ways you can ensure you’re a successful developer. We’ve dove briefly into how a developer can create useful software and help customers, be happy and productive, and learn and grow to be successful in their role.

--

--