3 June 2021

Time flies, and it’s been yet another year working as a software engineer for me.

When I last wrote a similar post a year ago, I focused on reflecting on my one year in the industry as a full-timer, asking myself, what did I wish I knew before I started?

In this post, I’d like to be less formal. I’ll instead mention things that have surprised me, things I’ve learnt about myself, and talk about what keeps me motivated. Maybe you will be able to relate, and learn from my insights.

Thoughts in no particular order.




  1. What can’t be solved tonight will be solved tomorrow morning Your brain works while you sleep, especially when you’ve been stuck on a problem for days. Get some rest, you might just wake up to the solution.

  2. Self-confidence + Enthusiasm + Effort = Unstoppable You don’t have to start off as the smartest person in the room, but if you keep hustling, you’ll likely get where you want. It’s also important to focus on your own strengths to add value, but don’t be intimidated by the strengths of others. Don’t compare yourself or you’ll be very unhappy.

  3. Haters gonna hate The truth is that no matter how friendly, kind or people oriented you are, you will necessarily step on toes - at least if you stand up for yourself. It’s ok to not get along with everyone, but it’s great to try.

  4. Being in two different teams at the same company can lead to an experience as different as being in two different companies. Companies are known for their high level culture in the outside world, but the middle managers you work with generally have the management’s blessing to do things their own way. This means that even though the culture of Company X is known for being entrepreneurial for example, you might not get to experience if your manager has a different style. Of course, the converse also applies, and a great manager could lead to a very positive experience in an otherwise notorious company.

  5. The power of distraction Putting on noise cancelling headphones, wearing a hoodie with its cap on, and sitting in the dark alone to focus on your code in perfect silence is overrated. Some of the strongest engineers I’ve seen learn by being a busybody. Being able to freely ask questions and interrupt is also a sign of a very strongly bonded team.

  6. Over engineering does not excite me Since I derive my motivation from solving pressing real-world problems, I’m not excited about using a particular tool or technology for the sake of using it or a distant future need. I’m totally open to learning and using it when the situation calls for it, though. An example is designing for scale from the beginning whilst not having any idea about potential load. Premature optimsation is the root of all evil.

  7. Communication is a great strength to leverage on As engineers, we cannot always assume the services of a strong Product Manager will be readily available. Instead, being able to understand requirements, prioritise, and communicate will make you very valuable. This is primarily because you are able to add value through two dimensions - code, and product.

  8. I prefer a noisier environment I work best in an environment where there is ample opportunity for discussion, where engineers are free to interrupt each other to ask questions. This is a very difficult state to achieve, so kudos to my managers and teammates for fostering a positive work environment. Being able to unblock yourself by having the freedom to ask questions anytime is a true luxury.

Thanks for reading this! If you have any thoughts, feel free to get in touch.