Introduction
I’m often asked how to become a Senior engineer quickly.
The Senior level varies from company to company, but there are elements to it that are generally true in the industry.
Before we dive into the two main ingredients, let's cover the fundamentals.
Get technically good
One thing that’s in your control is getting technically good. By that, I mean getting good at programming. This can be done by building side projects, reading books, and taking online courses.
Get known for getting things done
Get known for getting things done. When you promise, you deliver. Be seen as a reliable person. This sets the foundation for a good reputation and builds trust.
Get good at communicating
Be able to communicate effectively with developers and non-developers alike. This includes both written and verbal communication.
Be a team player
Be helpful, spread knowledge, and show that you care about the team as a whole, not just your own work.
Two main ingredients
The two main ingredients for becoming a senior engineer are ownership and impact.
Ownership
Ownership is based on two principles: Identify and Act.
**Identify:** This is how you develop an eye to identify problems that are pain points. You don't simply point out superficial problems, but dig into the underlying issues.
**Act:** This is how you evaluate the problem's impact, the cost of fixing it versus not fixing it, and its priority against other team commitments.
How to develop an eye for “identify”?
It doesn’t happen overnight. It happens over time as you gain more experience.
Highlighting some opportunities split by levels:
Junior / Mid developers - Look for problems that are affecting team productivity
Is it difficult to work in your codebase? Maybe refactor things
Are the tests breaking all the time? Improve your process or use linters
Are you not catching bugs before shipping? Improve your release pipeline!
Senior developers - Improve team and customer relations
Is a customer unhappy with your team? Can you resolve it?
Are they complaining too many times about a workflow or an API? Can you turn the complaints into a feature?
Act
Some hesitate to take action after identifying a problem. They feel:
They are not the expert.
How can I propose a solution if I am not a manager?
They fear failure or worry that the new work will take longer.
The feeling is normal, but don't stop there. The top 1% of engineers push through the discomfort and deliver excellence.
Be confident. Remember, do your best, and if you make mistakes, you learn. You will learn regardless of whether you make a few or many mistakes.
One thing I’ve found helpful is seeking input from one of my peers. It helps me become more confident in my proposal and whether I’m on the right track.
Impact
Impact is about working on the right problem—a problem that is important to the team and the customers.
Let's take a look at two examples, one is my own.
Fixed accessibility issue
At my first job, I led our accessibility initiative. See my previous newsletter post for more details.
However, a customer navigating our website using a screen reader was blocked from accessing certain parts of the site. They filed a complaint to our customer success team.
The ticket ended up being written but was just lying around. People were not even aware of it. I looked at it and brought up that we should fix it as soon as possible.
I prioritized fixing this issue and getting it out to customers.
This is an example of focusing on work that has a real impact on the customers.
Improve CI speed
Improving the CI speed is a great example of impact. I've heard many do this to increase their impact. It's a small thing, but it can make a big difference in the team.
If you can cut down the time by 30%, that's a big win. Think about how much time every team member spends waiting for CI to finish.
Your team will move faster and you'll be able to deliver more features.
Conclusion
Becoming a Senior engineer is different in every company.
Cover the fundamentals of being a good developer.
Lastly, focus on the two main ingredients: Ownership and Impact.
Love this! Be a team player, software engineering is a social activity!