What is a Senior Software Engineer in Big Tech?
How the role is typically defined by Big Tech and at larger tech companies, and frameworks for thinking about seniority.
What is a senior engineer, and what are typical expectations at the senior level?
This is a question several readers have been asking following the issue, What is a Staff+ engineer?
In my observation, a senior engineer is basically someone who gets things done without much guidance. But it’s more nuanced. “Getting things done without much guidance” means different things at different types of companies:
At a digital agency where the ‘what’ is pretty well defined by the client
At a small company where everyone knows everyone else, and people rarely get blocked by others
At a 10,000-person tech company where “getting things done” tends to involve working with several teams, and it’s common enough to get blocked by other teams
We’ll examine this topic by breaking down what “senior engineer” means at different places: starting with Big Tech and large tech companies which employ well over 1,000 software engineers. I gathered details for the definitions by talking with current engineers at such companies, reading expectations outlined within the company, or – in the case of Dropbox – relying on a publicly shared engineering career framework.
In today’s issue, we cover:
Two frameworks for thinking about seniority
Amazon’s senior definition (SDE3)
Meta’s IC5 level
Uber’s senior engineer expectations (L5)
Dropbox: the IC3 position
Shopify’s C6 level
Oracle: where the internal ‘principal’ position maps to ‘senior’ within the industry
In a follow-up issue, we covered What a senior software engineer means at scaleups.
1. Two frameworks for thinking about seniority
Before we jump into how larger companies define the senior engineer role, here are two frameworks on how to think about seniority.
The first is one I came up with, which looks at scope and influence. Scope refers to what type of work you take on, and how complex it is. Influence refers to people you’re expected to – or must! – influence, as you deliver work within that scope:
The names of the levels in this framework are illustrative and titles will differ by company. The point is that the higher a position’s seniority, the wider the scope of work that holders are expected to deliver. And to deliver this work, they need to be able to influence groups of a certain size.
For example, a mid-level engineer is usually expected to deliver a feature by themself, and usually don’t need to influence beyond their immediate team. However, a principal engineer might be expected to make a decision on a portfolio of products their group owns, for which they need to influence the whole group. For example, making the case for moving the shared logic of several products to its own, centralized service for better maintainability.
A second framework comes from an observation shared by software engineer Samhan Salahuddin, about the connection between influence and independence – the latter referred to as “task maturity” by Andy Grove in the book, “High Output Management.” Visualizing this:
2. Amazon: SDE3
Amazon’s SDE3 level maps to what the industry commonly refers to as “senior engineer.” A summary of this level’s typical expectations:
Amazon’s SDE3 definition is closer to what is considered a “team lead” or “tech lead” role at many companies, and so I view this SDE3 role as being at the upper end of a senior engineer definition. Amazon emphasizes a few different things at this level:
Dealing with ambiguity. Senior engineers are expected to tackle problems where the business problem (or customer case) is well defined, but the technology strategy is not. It’s down to them to create well-designed, extensible, performant and secure solutions.
A lead role. The SDE3 level expects leadership on projects in which this engineer is involved. However, expectations make it clear that “leading” does not mean doing all the major work. It involves mentoring colleagues, reviewing their work, and making space for others to voice opinions.
Writing and explaining things simply. Amazon expects senior engineers to be skilled at communicating their technical ideas in writing. They also expect senior engineers to do this regularly. Seniors are expected to be able to explain problems and suggest solutions in simple, concise terms.
Autonomy. Seniors are expected to be able to deliver the right things without guidance.
Maintainability. SDE3s are expected to balance speed of execution and delivery, with building maintainable foundations for the future.
The expectation which stands out most to me, is that Amazon expects SDE3s to not be a key dependency. This is how Amazon puts it:
“Your team is stronger because of your presence; but it does not depend on your presence to be successful.”
This is a pragmatic-enough expectation which encourages mentoring and knowledge sharing. After all, if you hoard knowledge, you will be on the critical path for your team, so if you’re absent, work can come to a halt. It’s less usual for such an expectation to be spelt out this clearly, even though it’s pragmatic to seek to remove the “single bus factor,” wherein a team is fully dependent on an individual.
Expectations for moving into an SDE3 (senior) role
Amazon is almost alone among most tech companies in the way its internal leveling document specifies levels and their expectations, and also provides guidance on how to move to the next level. Here’s the guidance Amazon offers SDE2 roles about moving to SDE3. It’s not a checklist, but some expectations that could be considered:
Lead a complex project. Lead a strategic team effort, starting at the design stage. This project should require multiple team members’ contributions.
Influence the long-term roadmap. Advocate for long-term technical investments, and build software flexible enough to evolve in future.
Coach and mentor. Mentor or help others on the team.
Mitigate roadblocks. Discover and mitigate unknown risks which block projects.
Demonstrate engineering best practices. Work efficiently, deliver incrementally and frequently.
Improved writing skill. Efficient at communicating design decisions and technical decisions in writing, and keep improving in writing for non-technical audiences.
Design reviews. Lead team reviews and participate in other teams’ reviews.
Address systemic issues. Take the lead in identifying and solving architecture deficiencies. Reduce support costs by addressing systemic issues.
We cover more about Amazon’s engineering levels in the article, Inside Amazon’s engineering culture.
3. Meta: IC5
“Senior engineer” maps to the IC5 level at the social media giant. Here’s what is typically expected at this level: