Software Engineering Levels and Promotion
This post explains the expectation of each engineering level in the most concise and company-agnostic way and reveals the steps towards promotion.
The first step to prepare for promotion is to understand the expectation of each level. Having worked at several companies ranging from FAANG to startups in the valley, I noticed that the engineering leveling systems are awfully similar.
New grad / Entry-level (L3)
- Deliver assigned tasks timely and independently
Software Engineer (L4)
- Design, implement, and operate scalable systems for well-scoped projects
Senior Engineer (L5)
- Define and scope undefined problems given defined goals
- Substantial impact within the team
- Mentoring junior engineers
- Technical oversight
Staff Engineer (L6)
- Propose and drive cross-functional initiatives, define goals, identify and connect stakeholders
Senior Staff Engineer / Principal Engineer (L7+)
- It becomes stratospheric from here. Engineers at such levels are experts in their domains.
- Invent and evangelize new products and technologies
There are many moving pieces when you work towards a promo. If you forget everything I shared in this post, try to remember this: the single most important thing to do for a promo is consistently delivering projects at the next level of scope.
This is also one of the reasons (besides budgeting) why promotion is getting slower and harder to come by at some of FAANG, because with the money-printing success of the company’s business model, development work gradually shifts towards keeping the lights on.
Below are generic steps towards a promotion.
Step 1: Reasonable manager
The promotion process, as well as one’s life, depends more or less on luck on getting the right manager and projects. Without a supportive manager, promotion is rather difficult, because your manager is the person who represents you in the calibration and promo committee review.
At least, your manager should view people development as part of her job and believe that you have the potential to grow into the next level. If you unfortunately end up in some toxic work environment, there are ways to get promo too that I do not recommend. Instead, my suggestion in this case would be to run away screaming (change team or company).
Step 2: Identify gaps
Engage with your manager in your weekly one on one, to share your career aspiration and together identify the gaps between your current and the next level. Two things to keep in mind:
Seek actionable feedback. If you are L3 and your manager says the tasks you have delivered are not technically challenging enough, this feedback probably is not actionable for you, because you are likely not the person deciding on which tasks to focus on. An example of actionable feedback is to “be more vocal about your opinions by speaking up more in meetings and commenting on design docs”.
Perception is reality. If your manager thinks you have a communication problem, then you need to solve this communication problem to get promo. You may disagree with such diagnosis, or there might be underlying causes for such a symptom, but your manager’s perception is what matters here.
Step 3: Find the right projects
To repeat from the opening of this section, the key to promotion is to deliver projects at the next level of impact.
At L3/4, finding such projects are easy. Most projects permit designs that go on an extra mile in terms of feature, scalability, testability, and operational excellence.
At L5 and beyond, it gets a bit tricky. Most teams do not have a backlog of L6 projects, which is one of the reasons why many plateau at L5. So again, luck (right place and the right time) is needed for promo. Your manager and maybe tech lead are responsible for prioritization and project scoping. Make sure to loop them in to strategize for these projects.
Step 4: Learn and grow
Learn all the new technologies. Build healthy relationships with sister teams. Execute on the projects. Establish competencies.
Step 5: Demonstrate impact
You may believe in meritocracy and think the excellence of your work warrants attention and rewards, or perhaps you are being humble. Yet the reality is that most people are too busy to look if you do not point them in your direction.
Bombast about yourself feels awkward and might backfire. The trick is to let other people praise you, especially those who are at high levels than your target level. Relationship is important not only because it may unblock your project dependencies but also because many, after all, judge books by covers and believe trusts are transitive.
Prefer written evidence if you can, such as design docs you authored, video recording of your demo at all-hands, and thank you notes / peer bonus.
Following these steps and with sustained performance at the next level, promotion is yours. If not, did I mention luck and having a reasonable manager? My run-away-screaming advice still holds.