👋 Hi, this is Gergely with the Pragmatic Engineer Newsletter. In every issue, I cover challenges at big tech and high-growth startups through the lens of engineering managers and senior engineers.
If you’re not yet subscribed, so so to get weekly issues. Many subscribers expense this newsletter to their learning and development budget.👇
This issue focuses on engineering career paths at high-growth startups and big tech. I cover questions sent by subscribers around engineering career paths. We’ll cover:
Engineering career paths:
Typical engineering career paths at big tech and the leveling system
Career path differences between high-growth startups and big tech
What next after hitting the Staff level at big tech?
Not-so-typical engineering career paths
Advice for engineers and managers:
Advice on how to think about your career, as an engineer
Advice on how engineering managers can help engineers with their careers
Q: I recently joined a large tech company as an entry-level software engineer (they call it L3 here). What is a typical career path at these companies?
First and foremost: everyone’s career path is different. I’ll share career paths I’ve observed more commonly. Do keep in mind that everyone has different situations, team dynamics, and opportunities. Here are some of the most common career paths I’ve seen at large tech companies.
The entry-level-to-senior path. An engineer joins at the entry-level position: either as a new grad or with a few years of experience, typically outside of big tech. After a few years, they get promoted to the next position – many companies call this Engineer 2 or a similar name. After another few years, they get promoted to Senior engineer. At this point, paths tend to diverge.
Staying a Senior Engineer – for a long time. The majority of engineers who make it to the Senior level at big tech tend to stay at this level for an extended period. This is by design. Senior engineers typically have a high level of responsibility and compensation that matches this. They are usually compensated at a similar level to what frontline managers earn at these companies.
Moving beyond the senior level is not just a matter of additional skills and opportunities, but it also means changing how you work. The positions above the senior engineer level tend to be very different from the software engineering role. Both staff engineers and managers are expected to be force multipliers or enablers. Taking this step “up” can take the joy out of their day-to-day work for many engineers.
You can have a great career staying at the senior software engineer level, especially if you love being hands-on and working with small teams. Some engineers move around, learning different tech stacks. For example, a backend engineer might move over to the mobile team, picking up this technology, and a few years later, might move over to ML engineering. The nice thing about big tech is how moving stacks is encouraged, and it does not result in title or compensation changes. I took advantage of this flexibility throughout my career.
Moving stacks makes you a more rounded engineer. A new stack helps learn more and can make the job more fun than before. Becoming hands-on with multiple stacks can also serve as a solid base for later in your career, as it makes it easier to work across various teams. Working across teams and stacks can later help grow into tech lead or staff engineer roles.
Going up a level typically means more responsibilities and more stress – and, counterintuitively, it might not mean more compensation in all cases. Compensation might not change significantly a level up for senior engineers who have received large equity grants. This is especially true if the equity value has grown significantly and accounts for most of their total compensation.
The current hot tech hiring market for senior engineers showcases how compensation at the staff/principal roles are not necessarily that much higher than at the senior engineering positions. Several Staff engineers job hunting shared that Staff and Principal packages have increased less, and senior compensation went up more, especially outside of big tech.
The Senior Engineer to Staff/Principal Engineer path. The Staff and Principal levels are fundamentally different from senior engineering levels. Most Senior+ roles expect a longer-term, more strategic outlook, where influencing people, leading larger initiatives, and more frequent context switches are a given. Enabling others or being a technical coordinator across a complex domain is often expected. There are a few cases where going very deeply technical is the expectation.
While a senior engineer typically works across a team, a Staff or Principal engineer usually works across a larger organization. CTO Will Larson collected four distinct Staff engineer archetypes that most Senior+ roles fall into.
Engineers who like being hands-on, don’t like context switching and like to see immediate results of their work might not enjoy Staff or Principal-level positions. Those who look for these challenges will often expand their impact and influence across teams and the organization. With support from their manager chain, peers, and some luck, they get promoted to the Staff engineer level.
Promotions to Staff within the company are more challenging than they are up to the Senior level. Up to the Senior level, expectations are usually clear, as are promotion paths. Beyond Senior, there is a lot more ambiguity on what output and behaviors are expected to get to the next level. Getting this internal promotion often takes more than one cycle, and it is especially challenging if you’re not getting actionable feedback or don’t have a strong network within the organization.
Another common way to get to this Staff level at big tech is to work for a few years as a senior engineer at another big tech company, then interview at other companies. With luck, you might be able to get a Staff offer, getting to this level a bit faster than getting promoted from within. This move is especially common when a senior engineer feels they have few options to get to the Staff level at their current organization.
Finally, going from Big Tech to a late-stage but highly growing company – like a Series D or E one – is another common way to go from Senior to Staff-levels. At these companies, there are plenty of opportunities for Staff-level work. There are also typically fewer Staff-level candidates applying, and it can be easier to negotiate a Staff title tied with a good interview performance or strong references.
The Senior Engineer to Tech Lead path. After working at a senior engineer level, some people start to take on more tech and project lead responsibilities, but without being responsible for all people management aspects for people on their team.
At certain companies, there might be a level after Senior Engineer called Tech Lead, Squad Lead, or Tech Lead Manager. These positions still expect engineers to code, but expand responsibilities with ensuring that their team performs well. These teams are usually small, up to around 5 engineers. Performance management for directs is usually not part of responsibilities, but hiring almost always is. They are often a good window of the engineering manager career path.
The Senior Engineer to Engineering Manager path. Senior engineers who are already doing tech lead-like activities sometimes have the opportunity to move into engineering management at teams that are growing quickly. This was how I also transitioned into management at Uber.
Many larger tech companies have training programs in place for first-time engineering managers. The transition at these places usually includes a safe way back into software engineering if the manager path just doesn’t work out well. Better companies realize that they need to both support new managers and also provide a safe way back into engineering for people who turn out to be better engineers than managers.
Most smaller companies don’t offer any training and very have little support for first-time engineering managers. However, at these places, the opportunities to move into management are more plentiful. If you work at such a place: know that you’ll be left to your own devices if you take the manager route.
Engineering managers typically code very little, if any, at big tech. Instead, they manage teams of 6-12 people, spend lots of their time between hiring activities, ensuring the team is healthy, helping team members grow, and making sure their team works on the right things. They are responsible both for performance management and promotions on the team and tend to be involved with most of the team’s stakeholders: both with other engineering managers, product managers, data science, and other functions.
Bouncing between big tech companies. Once someone makes it into big tech as a software engineer, it becomes easier to switch between companies. Passing the resume screen is a lot easier, and the interview process is likely almost identical to the one at their current company.
Moving between big tech can mean increasing compensation significantly with each move, even when staying at the same level. With the current, very hot market that is up 15-30% the past year, switching companies is often the fastest way to get paid market-level packages.
Leveling between more mature companies is starting to become more standardized. While getting a financial bump is common, getting a title bump is harder to do when joining a company similar in size and in maturity.
I have nothing against moving companies – as it could be the right call for many people. The only suggestion I have is to consider the learnings that come with tenure – staying for years at the same company. Read more on advice on changing companies or staying for a promotion in the newsletter issue Preparing for promotions ahead of time.
Q: What do things like L3 or E6 at various tech companies mean?
We cannot talk about big tech careers without mentioning engineering levels. Every large tech company has put career ladders in place for individual contributors and managers. They all use internal naming and numbering to refer to each of these levels.
It’s hard to compare levels between any two companies, as expectations and responsibilities tend to be defined differently. For example, the Senior Engineer level can mean far more responsibilities and skill expectations at Google than it does at a small startup.
The website Levels.fyi visualizes levels at most larger companies and attempts to draw how these levels compare to each other. They answer the question “what level would I transfer into if I were switching companies?” using leveling rubrics, mapping similar scopes and responsibilities based on the information they gathered:
I’m working on a series that covers leveling at larger tech companies – if you are open to sharing expectations at your company – either on or off the record – please do hit reply.
The Radford Global Scale is another approach to defining levels internally:
Microsoft was one of the earliest companies to standardize their levels internally. They have an unusual numbering and approach in how new grads start at L59, and they map two or more levels to each external title:
Google is the company that influenced many other big tech companies in their leveling. Companies that follow a similar internal leveling include Uber, Databricks, Airbnb, Instacart, Asana and others.
Facebook follows the same leveling as Google, except they prefix engineering levels with an “E”, and have levels from E3 to E10. They don’t have public titles for each level: engineer has the same title of Software Engineer. They do this for Product Managers as well. This makes it tricky to figure out how experienced someone with a Software Engineer title might be at Facebook: they could be from an entry-level engineer to one of the very few E9, senior principal engineers.
Netflix is a standout on how they have one single level: Senior Software Engineer. They pay every person differently, based on their market value, and are one of the only companies that keep up with the market. They are known not to shy away from increasing compensation by the amount that the market has gone up.
Other interesting leveling approaches include :
Q: What are the differences in career paths between high-growth startups and big tech?