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 from levels.fyi

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 from levels.fyi

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

Previous: Mid Level

Next: Personal Growth Overview


Subscribe to receive latest updates

Do you use ChatGPT or Claude 3 for coding?

Check out 16x Prompt - Streamlined ChatGPT for Coding

Try 16x Prompt Now