Senior Software Engineer
How many years to become a senior software engineer, what are the expectations, and how to become senior software engineer.
How Long to Become Senior Software Engineer
Becoming a senior software engineer is a major milestone in the career.
Typically you will need around 5 years of experience to get promoted to senior software engineer in a reputable tech company.
Smaller tech companies may promote you to senior software engineer earlier (e.g. 3 years of experience).
Levels
Companies have different names for the level that grants the title of senior software engineer.
Industry standards from FAANG are typically used as benchmark for comparison. Top Chinese tech companies such as Alibaba, and ByteDance follow FAANG standards closely.
- Google: L5
- Facebook: E5
- Alibaba: P7
- ByteDance: 2-2
Senior Software Engineer level mapping of Google, Facebook, Alibaba and ByteDance (levels.fyi)
Singapore local tech companies such as Shopee and Grab have lower requirements and expectations for the title of senior software engineer, which is closer to the industry standard of mid level software engineer. They will also use another title, like Lead Software Engineer, for the industry standard for Senior Software Engineer.
Grab:
- Grab uses G4 for the title of Senior Software Engineer, but G5 is closer to the industry standard of Senior Software Engineer.
Shopee:
- Shopee uses Senior Software Engineer for both the level and the title, but Expert Software Engineer is closer to the industry standard of Senior Software Engineer.
Senior Software Engineer level mapping of Google, Facebook, Grab and Shopee (levels.fyi)
Open Government Products (OGP):
- OGP uses Senior Software Engineer for both the level and title, but Lead Software Engineer is used for the seniority level and title that is equivalent to the industry standard of Senior Software Engineer.
Expectations
Understanding what’s required for the senior software engineer in the company is important so that you can work towards them. Big tech companies usually have documents on specific expectations for each level (job model or career ladder).
Here are some common expectations for a senior software engineer:
Area | Expectations |
---|---|
Impact | - Understand business impact of new products and features |
Ownership |
- Ability to deliver complex projects end-to-end - Owner of a small system or part of a large system |
Influence |
- Experience in leading cross-functional projects - Experience in mentoring junior software engineers |
Ad hoc duties |
- Perform on-call duties - Lead investigations of production issues |
A complex project may involve multiple products and features. Delivering a complex project end-to-end means you need to capable of:
- Translating project business requirements into one or more system designs
- Writing code to develop features and products required for the project
- Fixing bugs discovered during testing
- Deploying all pieces in the project to production
Cross-functional projects are projects that involve multiple teams. For example, a user behaviour analytics project could involve the following teams:
- frontend (user interaction tagging and collection)
- backend (API gateway)
- data engineering (data cleaning)
- data science / business analytics (user behaviour analysis)
Promotion Process
Promotion to senior software engineer requires much more effort than mid level, especially in big tech companies where structures and processes are in place to make sure only those who meet the criteria gets promoted.
The promotion process usually involves 3 steps:
- At the start of promotion cycle, managers get to nominate team members for promotion.
- Once nomination is accepted, the person needs to prepare and give a presentation to a panel of evaluators.
- The panel decides if the person meets the criteria (rubrics) for promotion.
How to Become Senior Software Engineer
Follow the steps below to increase your chances of getting promoted to senior software engineer:
1. Communicate Intention Early
Talk to your manager and communicate your intention to get promoted as early as possible. It is important for your manager to be aware of your intention. Your manager is more likely to nominate you for promotion as compared to others who did not make their intentions explicit.
Also, as a potential candidate for nomination, your manager is more likely to assign you ownership of a challenging and impactful project to build a strong case for promotion.
2. Take Ownership of a Project
Demonstrate ownership and capability of owning a project. You need to be the one in charge of project on a technical level.
For a new project, this means design the system architecture to fulfill business needs, plan out a timeline for delivery, as well as breaking down and allocating tasks to individual developers if there are multiple developers involved.
For an existing project, this means you have to take over as an owner, fully understand how it works and be responsible for troubleshooting any issues that might happen, as well as plan out future timeline for continuous improvements if needed.
3. Start Documenting to Build a Strong Case
Start preparing for promotion as early as possible, at least 6 months to 1 year before you plan to get promoted. When working on projects, collect data, testimonies and anything that show your impact and contribution to the team and the company.
Having more supporting materials helps to build a strong case for promotion. You don’t want to be in a situation where you have the chance for promotion but you did not have anything to back it up.
4. Focus on Impact, Not Technical Details
It is likely that the promotion panel consist of staff engineers and engineer managers who are less hands-on. They might also be working on different tech stack from you. Avoid technical details and focus on high level technical achievements and business impact.
For example, if you shipped a significant optimization on page load speed, record the page load speed before and after the change using performance monitoring tools and correlate the speed improvement to business metrics such as conversion rate or customer satisfaction rating. Also consider video recording to showcase the improvement of real user experience.
Beyond Senior Software Engineer
Once you are a senior software engineer, you may be offered a chance to lead a small team of 2 to 5 people as a team lead or engineering lead.
Subsequently you may be offered to convert to the management track, or stay on the individual contributor (IC) track.
On the manager track, you will be groomed to become an engineer manager (EM). Your main responsibility shifts from coding and technical work to managing people.
On the IC track, you will be working towards becoming a staff engineer.
Additional Resources
Credits
- LoneRifle for contributing to Levels section
Latest blog posts
Mar 23, 2024
Feb 3, 2024
Dec 29, 2023
Oct 20, 2023
Sep 21, 2023
Subscribe to receive latest updates
Using ChatGPT or Claude 3.5 Sonnet for coding?
Check out 16x Prompt to streamline your AI coding workflow