Predictors Of Success As Software Engineers
7 Traits That Makes Or Breaks A Successful Career In Tech
Hey 👋🏽 and welcome! This is Jonas with a weekly update for you as a free subscriber to the Nimblegeek newsletter. In every issue, I cover insights on learning, technology, and the art of programming through the lens of aspiring developers and experienced practitioners who want to grow in tech.
Last week, we explored a few skills worth investing time in if we want to land a job as a professional developer.
In this week's issue, we are expanding the perspective and looking ahead to the traits that could make your career trajectory flourish when you finally land that position.
I have observed and worked with a few software engineers through the +10 years I have worked in IT and digital transformation projects, and here are some traits that make the most successful ones stand out.
1. Grit & Grunt
So much success in life and our careers comes down to grit.
It is persevering when it's not looking good or working through the boring parts.
Most software development is cleaning up legacy code, “duct taping” APIs, and fixing other people’s bugs.
Engineers tend to love the latest tech, but resisting the shiny objects and doing the grunt, boring parts seem to pay off in the long run.
2. The Human API
Translating business requirements into technical solutions, understanding domains outside the tech landscape, and communicating effectively with multiple stakeholders. Communicating effectively using different communication styles and “languages” is a super skill.
Business jargon, as well as technical discussions, require understanding beyond the syntax.
Having a bilingual, trilingual, or even multilingual approach is how engineers are understood across domains. Not only in the developer communities and teams.
This super-skill of communicating effectively is about knowing when to use plain and simple language and when to be less or more technical.
Being a human API is what I like to call it. A multidisciplinary skill that is worth investing time and attention to.
Organizations tend to reward people who can easily navigate between multiple domains with depth in tech.
3. Teaching & Treating Juniors
You can tell a lot from a person who invests time in explaining, teaching, and nurturing juniors in the team.
Successful, experienced engineers are well aware of the importance of teaching others. That is how they grow.
Neglecting this part, ignoring juniors, and considering them a waste of time will most likely bite back. They stop growing as well.
In a complex field such as software engineering, your success depends on continuous learning; most knowledge comes from teaching others.
The most inspiring and successful engineers I have worked with have invested time in learning juniors “how to fish” instead of giving them the fish...
4. Empathy Driven
Reflective and self-aware engineers tend to spend time on understanding:
How they come off.
The impact of his/hers actions.
The way they treat others and make others feel.
Those who are self-aware can bounce back from mistakes and succeed long-term. 111204
5. A Love For Learning
In a constantly and rapidly changing environment and industry, a developer’s learnability is a survival trait.
It is easier to stay relevant and ready for the next exciting project with a willingness to learn.
Having an interest and almost natural tendency to shorten the learning loops makes engineers stand out from the crowd. Quickly surfacing new learnings and applying them as fast as possible.
Both on an individual basis and on a team level.
6. Where Focus Goes…
There is a back-side to the learning part. Trying to learn everything will drown and kill progress in the end.
Knowing what to exclude and what’s worth learning is an accelerator for success and is just as important as learning itself.
Identifying and focusing on specific patterns, frameworks, and techniques and combining them into a stack creates leverage beyond imagination.
7. Risk Management
It is placing the bets on specific initiatives like knowing when and what to refactor for reduced tech debt is worth lifting.
Engineers take risks all the time. Knowing which risks and which ones to focus on creates trust and saves a lot of time.
Making tradeoffs is part of the engineer’s day-to-day work. Knowing when to double down on reducing tech debt versus delivering a cool new feature can significantly impact you and your team.
On a final note
The above traits are more exciting and growth-triggering than just climbing a career ladder and comparing myself to others.
I have given up the rat race a long time ago. As a business graduate, I looked forward to a thriving career as a management consultant. I worked hard, networked, and aimed for positions that put me to the test.
After achieving the goal of positioning myself as a management consultant back in 2015 at a Swedish consultancy, I quickly realized that dipping my toes in that pond wasn’t as I expected.
I made the same observation as Daniel Vassallo:
So despite how successful you might be or witnessing someone else succeed. Remember why you do it from the start.
Are you chasing a higher salary or a fancy title?
Or are you learning something new? A new domain in your project, a new framework, or maybe you grew your leverage by leading a team?
Whatever it is, I hope you don’t fall into the rat race.
That is a foolproof way to misery.