smhk

Reflections on 10 years as a professional Software Engineer

As we begin 2024, I’ve now been working full time as a Software Engineer for over 10 years1. These past few years in particular have been significant for several reasons, so I thought now would be a good time to take a moment to reflect. Thinking back, there’s a lot I could talk about: I’ve worked on many different projects, for a range clients, with numerous technologies, in various locations across the globe. However, I thought I’d try and focus on the general life lessons, and draw out some underlying points that will hopefully better stand the test of time. We shall see! Here are a few of the most important things I have learnt:

Work life balance §

  • Work is a marathon, not a sprint. You’re in it for the long haul, so the pace needs to be sustainable.
  • Some problems can only be solved by stepping away from the computer. Go home, get some rest.
  • Computers are pretty great, but they’re not everything. Make sure you have hobbies outside of computers.

Career development §

  • It’s okay to say “no” to opportunities that come your way, but actively pursue the opportunities you desire.
  • If your presence is critical to a project’s success, it’s exciting, but it’s hard to move on. Train a successor so that you can both progress.
  • Make it easy to prepare for your annual review. Record your progress each week, even if just a couple of bullet points.

Mental health §

  • No one is immune to burnout, anxiety and depression. Be open with those you trust.
  • Imposter syndrome is no joke. Pause, and remind yourself of the truth.
  • Be kind and encouraging. Assume best intent.

Learning §

  • It’s normal to feel out of your depth when learning something new. Press on.
  • If you’re stuck, sometimes just formulating the right question can give you the right answer.
  • For everything you know, remember there was a time when you did not know it.

Documentation §

  • Write things down, and make it easy for others to access and contribute.
  • Different documents have different audiences. Not every reader is a Software Engineer.
  • Be detailed when writing tickets. They may lay dormant for years, before being read again by you, or someone else.

Interpersonal §

  • Good relationships are vital for good software; social structure goes hand in hand with software structure.
  • A day online, an hour with a decent technical book, or five minutes with the right person, can save weeks.
  • People come and go faster than you realise. Enjoy their company and learn from them while you can.

There’s more that comes to mind, but let’s leave it at that.

Farewell 2023, onwards to 2024!