7 Life Lessons I've Learnt as a Software Engineer

7 Life Lessons I've Learnt as a Software Engineer

Early last year I began my career as a software engineer and it has been one of the most transformative periods of my life. These are the lessons I learned from my mentors, colleagues, as well as from my mistakes. Even if you’re in a completely unrelated field, these lessons can be applied to any career and better the quality of your life.

1. Become a master of your tools

The best way to prepare for any job is to be efficient with the tools you will be using on a daily basis. Spending some time up front to make yourself familiar and comfortable with the tools you will be expected to use will make your life exponentially easier.

I made the mistake of changing up my code editor from Atom to VScode when setting up my environment on my first day. Not only did I have to acquaint myself with an unfamiliar codebase and new processes, but also use an entirely new tool as well. I was incredibly slow navigating through files and was confused by all the unfamiliar commands.

I spent the next few days looking up shortcuts and the different features VScode provides and I instantly saw results. What used to take me 5 - 10 seconds to search and click-through pages in a massive codebase, would now just take a second with a simple shortcut. This may not sound like much, but when you need to navigate through a massive codebase with hundreds of files every day, it really begins to add up.

Whether you use excel or any other program, by investing in some time to learn about your tools, your productivity will skyrocket.

2. It’s okay not to know everything, but being unwilling to learn is not

Have you ever been in a group conversation and a topic comes up that you have no clue about and just nod along? I’ve certainly been guilty of this and I would be too embarrassed or ashamed to ask. What I eventually came to realize that it is impossible to know everything and you’re certainly not expected to. Even the brightest individuals might be unaware of the latest software that has come out. What is not okay is to come across something you’re unfamiliar with and not bother to know what it is. This type of mindset will stunt your growth and limit your knowledge and understanding.

The tech industry is always changing with newly adopted technologies and frameworks. As engineers, it is crucial to stay up to date and learn these new technologies and systems to prevent being pigeonholed into specialist positions for outdated programs. This will only get harder with time until the technology you’re only familiar with is considered obsolete.

What helped me bridge my knowledge gaps was to be curious and honest with myself. If something came up in a meeting that I was unaware of, I would speak up and ask questions until I had a high-level understanding of the topic. If I was still feeling nervous, I would write down the unfamiliar topic and research on my own when I had the chance. That way if I were to come across it again, I would understand and contribute to the discussion. I accepted the fact that I don’t know everything, but I made sure to put in the effort to find out.

We live in a world where all the information is at our fingertips and we can search for just about anything on our mobile devices or computers. Rather than brushing off what we don’t know, we can look for meaning and expand our knowledge.

3. Declutter your mind

Have you ever struggled with going to sleep and being wide awake from the lingering thoughts and stress from work? I would lay in bed and repeat the one task in my head, hoping that I remember the following day. When the next day comes around, I would completely forget and stress over what I needed to remember!

What helped allow me to alleviate the pressure and anxiety of work was by simply writing down my tasks and thoughts throughout the day. By keeping notes of what I worked on as well as what was needed to be done, allowed me to remove any mental clutter and remind myself what was important. This allowed me to be more engaged in my personal life outside of work and pick up where I left off the following workday.

Writing down my thoughts allowed me to look at things from a different perspective and help prioritize my tasks. Another benefit is that by writing things down, I was documenting my work and can reflect back on what I’ve done. I would be able to go into performance reviews and discuss with my manager the work I’ve done and the impact I’ve made. I found that my stress levels greatly reduced and that I was in more control of my life.

4. Don’t burn yourself out

During my job search, I made a list of things I wanted to do as soon as I landed my first developer job. I wanted to create YouTube content to help aspiring programmers, take online courses to excel in my career, work on side projects, and so much more. Although this was a very ambitious mindset, I would set firm deadlines and see it take a negative toll on my life.

It all became very overwhelming and stressful when I didn’t meet my set deadlines or goals. Getting caught up to speed with a brand-new codebase and company processes was already stressful enough, I was just adding more stress on top of it. I decided to take a step back and make sure that my mental and physical state healthy was my top priority. I realized that I had to help and improve myself first before I could help others.

You hear influencers preach about the hustle culture with quotes like, “I’ll sleep when I’m dead.” I had a similar mentality and would only get 5-6 hours of sleep. Sure, this mentality is great for maximizing the output of content and work, but is it really healthy or sustainable? Looking back, I can see how this negatively impacted my daily life. I noticed that the quality of my work was subpar when I had mental fog from lack of sleep. There is a reason why there’s such importance of sleep and a recommended standard of getting eight hours of sleep per night.

Life isn’t a race, you aren’t expected to do everything all at once. Being ambitious is a great quality, but taking care of yourself should be the top priority.

5. Speak up for yourself, otherwise, no one else will

There’s a mentality that solid engineers are known to be autonomous and can work on their own. It’s true in the sense that great engineers don’t require handholding and will do their best to figure out the problem on their own, but it takes an entire team to build out an entire product or service. If you’re ever overwhelmed and fail to communicate with your team, no one will know your issues and they will assume you have everything under control.

If you’re stuck on something for some time or need assistance upon completing all your tasks before a deadline, then don’t be afraid to speak up. A common mistake my team would make would be underestimating a certain task when it could be broken up into smaller tickets. This left a huge burden on the person assigned to the particular task. I’ve seen other engineers get incredibly stressed, myself included, and would stay up late into the night trying to finish a task or story.

Don’t let your pride or embarrassment stop you from asking for help, we are all human and can only do so much on our own. Rarely do you hear of only one person build and scale their company all on their own, so it wouldn’t make sense to have that same expectation for yourself?

6. Look beyond the scope of your work and grasp the bigger picture

Look beyond the scope of your work and understand the bigger picture. It’s easy to get caught up in your work and focus solely on completing your tasks. In the world of software, you are likely to have work that is dependent on another team and vice versa. You want to resolve all your blockers and finish all your tasks within the sprint or deadline. I’ve made the mistake of being so tunnel-visioned that I would lose sight of the bigger picture and not know why I was doing my tasks in the first place.

I made a change to be proactive and help whomever I could, regardless of whether I worked with them on a regular basis or not. I worked with different teams that I usually wouldn’t interact with and my knowledge exponentially grew. I began understanding the reasons why we were doing things a certain way, what were our shortcomings, and how my work was integrated with the rest of the company’s vision. My confidence as an engineer grew, I gained the respect from other engineers, and I felt like the work I was doing was making a bigger impact.

7. Embrace being outside your comfort zone and use it as an opportunity to grow

In my early career, I had the misconception that an easy laid-back job would be the most fun and enjoyable. It didn’t turn out to be the case when I would do the same thing over and over again without any challenges. I felt that my potential for learning was diminishing when I worked on a mundane task I was already comfortable in.

What did make work exciting was when I would use a new technology and apply it to my team’s services. Foreign concepts began making sense to me and I looked forward to learning more. I was more engaged in the work I was doing and found my passion for learning.

There’s one instance where I was given a task to work on either the database or messaging queue for the service my team was working on. I’ve had experience working with databases in the past, but I chose to work on the latter which was completely new to me. I intentionally did this because I knew although it may have seemed intimidating and challenging to take on a new task from the start, that I would learn so much more and have a greater understanding of a new technology. I read countless articles on the publisher-subscriber model and how established companies implemented this in their software. By the end, I was able to conduct an end 2 end test of the entire service my team had been working on and see it all come together. I was able to take something that was completely foreign and turn it into a learning opportunity that will improve my skills as an engineer.


This past year has been transformative in both my career as well as in my personal development. Invest time and effort into your skills and your hard work will pay off shortly. Take this new year as an opportunity to reinvent yourself to better the quality of your life.

Add a Comment *


Email *

Post a Comment

Post a Comment

Previous Post Next Post