Evolution of a Software Engineer

This is our story. For some of us, those with 10 or more years of experience in software, it might sound familiar. For the others, still in the early stages of their careers, there should be plenty of advice about what’s coming up next in your short-to-medium-term future.

The early stages

We are not entirely sure how, but it happens. A light sparkles and we just fall in love with programming, maybe after finishing building that university project or the other piece of software we built just for our own use. So much to learn, so much to experiment with. There’s this very short reward cycle in programming that increases our dopamine levels continuously and makes us addicted to it. We have been bitten by the programming bug, but don’t worry, it’s not a disease, it’s just brain chemistry.

The “fun” game of jumping ships

The first few months or years go by, we reach the point where we seem unable to step up our game. Our colleagues now look less knowledgeable than they did before, even our best mentors don’t look that special anymore. We’ve absorbed all the knowledge we could, so we start looking around in search of a place where our learning adventure can continue.

There is no such thing as over-engineering

We’ve evolved over time, and if we are unlucky enough, we have developed an OCD towards achieving perfection in our code. Refactor after refactor after refactor your code becomes more and more beautiful to your eyes and more and more obscure to the other members of the team.

Why do we follow the buzz?

Another thing that happens naturally during our careers is this: we just put the world on pause and start learning something new. It can be a new language, a new framework, a new methodology, an entirely new area of development, or something different. But how do we choose?

The road to greatness

During the transition into more senior positions, we tend to grow more and more pragmatic. This tends to make us look a little annoying and less competent to the junior members of the team or the engineers we are currently mentoring. We also tend not to code as much as before, some of us think trivial tasks are beneath us, which amplifies the problem, try instead to lead by example and close down those trivial or boring tasks yourself.

A note on humility

Years of experience don’t directly translate to better-written code, keep asking for opinions and code reviews. Sometimes I ask my wife (she’s not a programmer) to proofread my code to see whether she can understand what it does.

Don’t give up

We all have highs and lows in our software engineering careers. Some of us start prioritising money over job satisfaction, ending up in either contracting roles or highly paid boring jobs. Some might move into management in search of a bug-free life.

Software Engineer | bfil.io