Your First Step to Engineering Leadership: Becoming a Senior Dev
Why Becoming Senior Dev is the First Step to Leadership
👋 Hi beloved Optimist Engineer, Marcos here!
Today’s issue features a special guest,
. Here is Adler’s introduction.is an Engineering Manager at a fintech company in Japan. He began his career as a Backend Engineer before transitioning into management after developing an interest in leadership.Outside of his job, Adler is the author of the newsletter Tokyo Tech Lead. He writes about engineering leadership, technical management, and the transition from Software Engineers to Engineering Leaders. He is actively helping other engineers achieve their goals.
I want to recommend Aldler’s newsletter for all those Software Engineers seeking growth and Engineering Leaders looking for learning resources.
Without taking any more time, I'll hand the word 🎤 over to Adler.
I first thought of wanting to be a manager when I joined a giant corporation. I saw some managers speaking confidently and being in control all the time. It looked awesome. "I want to become an Engineering Manager!" This idea popped up. But in reality, I had no idea what it was.
Two years later, I realized the truth: The path to engineering leadership is not about jumping straight into management. It starts with the basics: mastering all your technical skills and soft skills.
The key I learned was that before becoming an Engineering Leader, I need to be a senior developer. That means I need to be qualified and have a track record. So, I'm going to share with you what I've learned during that time, and how you can move forward if you would like to become an engineering leader.
Engineering Leader Types
Most engineering leadership roles fall into two categories: the IC (individual contributor) path and the management path.
The IC Path: Staff Engineers
Staff Engineers are like senior developers but with a bigger impact. They might focus on a single team or multiple teams depending on the assignment.
A common organization design would look like the following:
Senior developers mostly focus on their team, and one of them would be the technical leader. On top of that would be Staff Engineers.
Staff Engineers' day-to-day work focuses on the following:
Technical strategy
Technical innovation
Problem-solving
Cross-team collaboration
The main difference between Staff Engineers and Engineering Managers is that Staff Engineers do not manage people. They focus on the technical side. For example, if the organization is planning to break down its monolith app into micro-services, Staff Engineers would need to plan for the steps toward that goal. How to split the domains? How to move the apps without downtime? What's the test plan? Staff Engineers need to collaborate with EMs and senior developers to figure these out.
Once they have bigger impacts, they will move forward on this path and become principal engineers and above.
The Management Path: Engineering Managers
The management path includes EMs (Engineering Managers), Directors, VP of Engineering, etc. They are responsible for team management and people management.
Most of the time, they oversee the entire team. This includes the three pillars of a team:
Different organizations have different role designs. For example, some EMs need to do project management directly, but some would have PMs (Product Managers) to support them. Their responsibilities are to ensure that the team can move forward.
But one thing for sure is that EMs are the roles that are responsible for people management.
Why Becoming Senior Dev is the First Step to Leadership
To explain this, we need to talk about the engineering ladder first. If you have not heard of it, engineering ladders are standard for each company to define their engineer levels. Each company has its engineering ladder, or they use one from well-known companies. There are examples of resources like levels.fyi.
The primary measurement of levels is by impact. And the following is how it is usually measured:
Level 1: Creating impacts by completing tasks
Level 2: Creating impacts by leading projects
Level 3: Creating impacts by leading a single team
Level 4: Creating impacts by leading multiple teams (or a big and complex team)
Level 5: Creating impacts by leading an entire division
So on and so forth. This is the same for both IC and management paths. You can refer to the following as a visual representation.
We can see that leadership jobs, either on the IC path or the management path, require individuals to be on the 3rd level. The expectation is for the individual to lead an entire team.
Thus becoming a senior dev is your first step to any engineering leadership role.
Act Like a Senior Dev: a Mindset Shift
As described, a senior developer is equivalent to a team leader. It's a role that moves the entire team forward.
If you are not sure about your position or grade, ask yourself this question: "Are you able to be in charge of most technical decisions in this team?" If it is a yes, congratulations. You are a senior developer.
If you are not sure about the answer, no worries. The following are the traits that we can see from a senior developer. Use it to see what are the core skills that you are still missing.
1. Team Ownership
The focus is on the team, not any individual. Whenever anyone from the team has an issue, you should pay attention to it. You don't have to do all the tasks by yourself, but you need to be aware of the team status, such as team roadmap, current outstanding issues, major technical debts, etc.
It also includes proactively finding issues and jumping on issues. Don't wait for instructions. Senior developers are leaders. They give instructions instead.
2. Vision & Strategy
Senior developers no longer look at only short-term success. They go long-term. For example, they have in mind what the system should look like in 2-3 years, and they set up a strategy to achieve it.
For example, they might want to delegate the development responsibilities to other teams since the current service is a BFF (backend for frontend) service. To do so, they gradually improve maintainability by modularizing codes, having sufficient test coverage, and creating sufficient documentation and processes. This might take 1-2 years to complete, but senior devs would strategize it and put these tasks on the roadmap in each planning session.
3. Go Beyond Engineering
Senior developers should start to connect with non-engineers such as product managers, designers, and QA. The more they understand how a product is delivered, they will know better how to troubleshoot issues.
They also communicate with the business stakeholders regularly to ensure that they ask the right questions when necessary. For example, if the business side gives an unusual requirement, senior devs ask why and find a better alternative to resolve that problem.
These are only some examples. For a complete guideline of how to become a senior engineer, I would recommend resources like the following:
Timeline
If you look at the market, senior developers usually require 6-8+ years of experience. However, it depends on the individual. I've seen people becoming senior dev in 1-2 years. On the other hand, I've also seen people with 15 years of experience performing at mid-level (And there's no right and wrong here. It's ok to be happy with where you are).
As long as you have the right mindset and skills, time does not matter. Keep moving forward. Learn consistently. You will get there one day.
🫂 Thanks Adler!
Marcos back!
I want to send a deep Thank You to
for sharing his experience with all of us. To learn more from Adler, take a look at his newsletter 👇We are ✨918 Optimist Engineers✨!! 🚀
Thanks for your support of my work here, really appreciate it!
If you enjoyed this article, then click the 💜. It helps!
If you know someone else will benefit from this, ♻️ share this post.
Good insight 😌 Can i translate this note into Spanish with links to you both and a description of your newsletter?
Fantastic article. Well described content.