Searched for ""

Voicing Your Opinions as An Engineer

I notice a common trait among senior engineers: in most cases, they all have opinions and are not afraid of sharing them. As I gradually take on bigger and bigger responsibilities, when the stakes are high, I start to struggle with voicing my opinions and taking a stand. It’s a common topic mid-level engineers often encounter. This post covers: why we should voice our opinions; what is stopping us from voicing our opinions; when and how to voice our opinions. Why we should voice our opinions 1. It makes you more engaged in a discussion. Voicing our opinions is a… Continue reading

Senior Engineers, Stop Doing Everything

As we gain experience and grow our skill set, the scope of our capabilities increases. That means there are more and more ways we can contribute. For example, maybe two years ago, your primary way of contributing was by writing and reviewing code. Two years later, you are also capable of breaking big projects into small stories, designing large systems, and onboarding new engineers. But the amount of time we have stays the same – 24 hours a day and 7 days a week. Since the kinds and amount of work we can do continue to increase while our time… Continue reading

The other side of technical skill: Domain Knowledge and Long-term Vision

When we first start our careers as software engineers, we tend to focus on improving our coding skills, a.k.a. technical skills, including but not limited to: mastering a specific tech stack, adopting best practices, and studying architecture designs. But there is another side that is just as important: gaining the domain knowledge and forming a long-term vision for your team, product, and company. I’m leading a multi-quarter project that requires collaboration among several engineering teams. My team has been the ultimate initiator and driver of the project. As more and more senior engineers from other teams joined, I started to… Continue reading

Handling Disagreements and Conflicts at Work

Have you ever experienced the embarrassment of feeling so certain about your opinion and then later being proved wrong? Well, this has happened many times in my career. Feelings related to this kind of events stay fresh for a long time. The more certain I was in the beginning, the more embarrassed I felt when I realized I wasn’t totally right. It’s common to have disagreements among engineers. Disagreements present great opportunities to learn from each other and innovate better approaches. Being wrong is nothing to be embarrassed about. What embarrassed me was my arrogance and stubbornness that made me… Continue reading

Stressed out by work responsibilities? Focus on creating impact instead.

In this post, I share: My old attitudes towards responsibilities at work; Two main ways my attitudes disserved me; Two approaches for coping with the pressure from having too many responsibilities.   We all crave for a feeling of importance. Dale Carnegie claims “the desire for a feeling of importance is one of the chief distinguishing differences between mankind and the animals” and it’s “almost as deep, almost as imperious, as the desire for food or sleep”. This is also true for work — we want to be the M.V.P. (Most Valuable Player) of our team. The sense of importance… Continue reading

Not Working Overtime, but Working Flexibly

I avoid working overtime as much as possible. Working overtime can make our work less enjoyable, cause more errors, and lead to burnouts. The need for working overtime often is a symptom of deeper issues, such as immature planning. I prefer investigating and fixing root causes over using working overtime as bandages. But sometimes working overtime is inevitable. Things change fast. Although many deadlines are artificial, there are hard deadlines with direct impacts on the business and the team that might worth working overtime for. I faced this dilemma last week. The resourcing of my project changed, and I needed… Continue reading

Weekly Learning

Weekly Learnings My weekly learnings on the journey of becoming a tech lead. Week #8: Senior Engineers, Stop Doing Everything 7 min read Week #7: The other side of technical skill: Domain Knowledge and Long-term Vision 8 min read Week #6: Handling Disagreements and Conflicts at Work 11 min read Week #5: Stressed out by work responsibilities? Focus on creating impact instead. 9 min read Week #4: Not Working Overtime, but Working Flexibly 6 min read Week #3: Refactoring Legacy Code V.S. Staying Focused On The Current Project 7 min read Week #2: Never feel overwhelmed at work again- the… Continue reading

Refactoring Legacy Code V.S. Staying Focused On The Current Project

When I work on projects, I often run into legacy code that can be improved — to be more readable, more testable, or more comply with the current coding style. My urge to refactor the code is especially strong after spending a good amount of time trying to understand a piece of obscure code. That code hurts my brain, and I don’t want the same thing happens to other developers. There is the famous Boy Scout Rule: Leave Code Better than You Found It. But at the same time, I also want to stay focused and make progress on my current project…. Continue reading

Never feel overwhelmed at work again- the M.I.T. technique

Have you ever felt exhausted after a day at work? At the end of a busy day, you couldn’t remember how you spent your time. All you knew was that there was more to be done tomorrow. You were tired, overwhelmed, and even a bit frustrated — the to-do list always out-ran you. You might have wanted to review your day and see how to be more productive. But the pain you had in your head from a long day was so strong that all you could do was to drag yourself home and collapse on a couch until it’s time for… Continue reading