What I have learnt throughout career

Sharing what I have learnt throughout my career

Throughout, my career as a software engineer, I have faced many challenges and struggles. Sometimes occasional imposter syndromes. Those challenges helped me grow both personally and professionally. Here are some of the key lessons I have learnt:

  • Document your works
  • Communication is the key
  • Manage your lead/manager
  • Maintainability over DRY
  • ChatGPT doesn’t solves everything

Document your works

One of the topics that I would like to emphasize is how important it is to document your works. Think about it. It helps you to remember what you have done throughout the days, weeks, months and even years. No more blurry days wondering what you have accomplished. No more questions yourself how much work you have completed.

Besides that, you can use it for your KPI review. No more cracking your brains trying to recall what you have done. Document it. Every single one of it. The future you will surely appreciate it.

Moreover, It would be great to document your train of thoughts. For exp, how you thought of the solutions, the intention & purpose, ideas to resolve present/future issues, etc. It helps you to organize your thoughts and put it into actionable items.

There are times where you may want to look back and refer as you won’t always remember everything. It just take around 10 mins to do it. It helps you to gather your thoughts. It helps you to remember. People tend to skip it because it is boring and seem troublesome.

The best part is, when you see the benefits, you will surely do it.


Communication is key

Sure, this term sounds cliche as you heard it everywhere. But that’s what makes it important. Especially the timing and what to communicate. Communicate with a purpose. Communicate to share your ideas in mind. Communicate to gain clarity. Communicate to be understood. Communicate to solve problems. Communicate to manage expectation. There are so many things that good communication can do. I can go on and on.

I believe you already somewhat know the importance of it. Knowing when to speak is important. Sometimes you can’t wait for people to ask as it may to be too slow or often a little too late. Be proactive. Speak when it is necessary. Don’t simply wait out. If you noticed some ideas are flawed, speak up. If you have better ideas, speak up. If you have questions and need to gain clarity, speak up.

You may not know that sometimes when you speak up, it might make your life a little easier. When people noticed you can provide ideas, they will listen to you more than you expected. The recognition may even boost your confidence.


Manage you lead/manager

Let’s face it. Not all lead/managers knows everything. All of them have weakness. They make mistakes like anyone does. Although, this term is not fairly common. You might be thinking “why do I need to manage my lead/manager?” or “why should I do that?”.

If you do get to somehow manage the way they handle matters, it might make your life a lot easier and bearable. Lead/manager may not always make the best/right decision. This is where you come in to persuade them to make the best choices which benefits either you, them or both parties. Just make sure no one loses something in the process. You get the idea.


Maintainability over DRY

DRY stands for don’t repeat yourself. Although, this is good practice for improving your programming skills and helps to generate more ideas. In real life, practicality usually comes first. It is alright to copy and paste existing codes as long it is easier to maintain it. You wouldn’t want to end up killing yourself with all the bugs that may potentially arise.

There are many instances you may consider to modify existing component to cater for other new use cases. However, beware the constant expansion can cause it to be out of control one day and it may cost more time to troubleshoot. Remember, you are not the only who maintains the codebase. As you work with your teammates, you can learn from others and listen to their feedbacks to gain insights.

It may lead you to see the bigger picture and foresee what it is to come.


ChatGPT doesn’t solves everything

Have you ever heard of the phrase “But ChatGPT told me it should be like this and that…” in the office? I believe many of us do. It gest a little uncomfortable when people said it without proving it first.

I am not saying ChatGPT answers are wrong but it is not always right. The usage of ChatGPT makes work a lot more easier compared to years back. There is no doubt about it. However, how we use it makes a difference. It is important to verify it before using it. Don’t forget the “traditional” method which is searching thru the internet by Googling, Bing search, etc. There are days where you would find the answer in the internet instead of ChatGPT.

Be open to use other methods and not over relying on ChatGPT.


As I close,

Growth doesn’t always come from comfort—it often comes from challenge, mistakes, and the willingness to reflect. I’ve learned to embrace discomfort as part of the process and now see every obstacle as an opportunity to improve. Here’s to learning, unlearning, and growing forward. Hope you gained something valuable from reading this!