L8 Explains Career of Software Engineers
https://medium.com/tech-career/l8-explains-career-of-software-engineers-5969a8ae0351
Hello everyone, my name’s Kun. I’m going to explain to you a full picture of software engineers’ career path, and the key skills that enable engineers to advance towards higher levels.
This post has a video version as well which you can find at the bottom of the page.
The leveling system
Depending on what company you joined, there may be some differences in how they define levels and expectations for engineers, but largely speaking they are just potato po-tah-toes.
If you look at the leveling systems of big tech companies on levels.fyi, you can see the structural similarity. For the sake of simplicity, I’m going to use Google’s terminology.
You can see that it starts with L3, which is typically the entry level for college hires. And then it goes to L4, L5, up to L10. (or L11 if you’re Jeff Dean).
But what do these levels mean, outside of being paid more and more? In order to understand that, you first need to know how these companies work.
How tech companies work
Imagine we started a company whose mission is to give all the pet lovers funny pet videos to watch. Our product vision is an app similar to TikTok except that it’s only for pet videos.
(I know, it sounds lame, but for the sake of giving an example, stay with me.)
Now, we need to figure out how we would achieve that vision. This is where we define our company strategy.
After lots of homework and discussions, we figured that in order to succeed, we basically need to nail two things — find good pet videos, and have an app that allows people to watch them.
Following this strategy, we created two teams. One that focuses on getting good pet videos into the system; and another that focuses on building and improving the app.
The team that was assigned to find videos decided that we would need to tackle that in two phases. In the first 6 months, build crawlers and pipelines to identify and import good pet videos from YouTube. And once the app has more users, who are pet lovers, they must have lots of good pet videos on their phones, which means we could get lots of videos if the app has a user flow to upload them.
Now, how do we support uploads? We need to build a frontend user flow in the app, and also a backend to store the videos.
The frontend user flow can be further broken down into many smaller tasks, for example adding an upload button into the app, building a simple video editing UI, and calling the backend to actually upload the videos.
Look at that! We’ve just built a really good and actionable plan! Now, let’s take a closer look at how we got here.
First, we defined our company strategy which informed the organizational structure of having two teams.
And then, each team had their own focus and had to figure out their long term plan. These plans were then broken down into milestones.
Each milestone usually requires tackling a few key problems. Each problem has to have a set of solutions, and each solution can be broken down into specific tasks.
Now with that in mind, it’s really easy to understand the various levels for software engineers that we looked at earlier.
L8s and above are accountable for success at company/organization level. It’s worth noting that big tech companies are so big that they get structured into a hierarchy of divisions or organizations and their complexity might require L9s and above. For simplicity, let’s assume our company or organization is no more than a few hundred people. L8s need to figure out the strategy for such organizations and make sure it’s executed successfully by the sub teams.
L7s are typically accountable for the long term success of each team. They need to make sure there is a good long term plan for their team, which typically gets broken down into shorter term milestones.
L6s are then expected to help achieve these short term milestones. They have to identify the key problems that need to get solved, and help make sure the team actually solves them.
L5s will then own each of these key problems, and figure out the right solution.
L4s are expected to build these solutions, which requires them to break the solutions down into smaller tasks.
L3s need to then implement each of these tasks with good quality.
So, how do promotions work? What are the key things engineers need to nail to go from one level to the next? Different companies have slightly different frameworks for this, and it also depends on the culture, and sometimes the leadership of your organization. This is why you might hear different answers if you ask different people.
From my experience, I’ve built a simple mental model that might be helpful to you as well.
Basically, to succeed as an L3, what you need to nail is consistent productivity. You will get assigned specific tasks, and you need to make sure they are completed in a timely manner and with good quality.
To get to L4 however, what you need to nail is independence. You can no longer expect others to assign you small tasks. You will be asked to build a feature, typically with a well-defined spec, and you need to accomplish that without others having to proactively step in.
The key to get to L5 is the ability to deal with ambiguity. You start to own problems that don’t have clear solutions and you will be the one that figures that out. If the problems are complex enough, you might need to lead a small crew to tackle them as well.
What gets L5s to transition into L6 is accountability and influence. You will be accountable to hitting your team’s objectives, and you need to do whatever it takes to get there. This typically requires good analytical and prioritization skills to identify the most impactful problems to solve, and influence L5s and other disciplines to work together and actually solve the problems.
To be successful as L7 and above, you would have to be strategic and learn to scale. You are now accountable for your team’s success over a longer term, which requires more rigorous planning and strategic thinking.
Achieving short term objectives at the cost of more sustainable success for example now becomes your problem, and you need to help the team make the right tradeoffs.
Especially for L8 and above, the scope also gets so big and complex that you need to figure out how to succeed without having direct control over the details. For example, you need to start to care about the culture of the team so that hundreds of people can make the right choices when facing ambiguity without being bottlenecked on your involvement. Your influence would also often need to scale beyond your own organization, because achieving success at your scope starts to depend on a lot of cross-boundary partnerships.
To get to L9, what you need to do is to subscribe to my channel here, and wait for me to get my next promotion. And I’ll tell you all about it. :)
Okay, we just went over the levels and expectations for software engineers. I’m really curious — was there anything surprising to you? Please comment below if there was.
In my upcoming posts, I will go into more details and share tips and tricks that I’ve found useful for people at each level. See you next time!
More articles from me: