# Typical engineering levels during career progression
This week we take a look at the software engineering levels common to many large (US) tech companies.
I got the inspiration for this post mostly in response to Reddit questions for a recent graduate asking what level he/she should be reaching within a few years of college (opens new window) and somebody else asking what's next after reaching Senior (opens new window). Interesting that engineers both young and experienced ask about this 😬
Watch the explanation on Youtube here or read on below for all the details:
# Engineering levels - an overview
Let's start with what engineering levels are.
In many tech companies, software engineers will be grouped broadly into different levels which are reflective of their responsibilities and compensation. Sometimes these can be named (eg Junior Engineer, Mid-level, Senior Engineer, Staff Engineer, Principal Engineer, etc) and sometimes they have a numerical classification (eg L3, L4, L5, L6, L7, etc).
Before you ask, no there is no standardization - each company can and does have slightly different names.
However the most commonly used levels and their responsibilities look like this:
If you are interested in how some well-known companies map their levels to each other (and the compensation!), levels.fyi (opens new window) is a great resource.
# Different responsibilities at each level
As you can see, typically as an engineer becomes more experienced they progress from:
- Junior ➝ Working on limited features under the guidance of other engineers
- Intermediate ➝ Working independently on larger features or multiple features within a product
- Senior ➝ Split between individual coding and guiding between 1 - 5 other engineers on their work withing a product
- Staff+ ➝ Rarely personally coding, more likely to be supporting several small teams of 3 - 15 engineers
The focus, scope, and impact changes with the progression. While the new grad engineer may be very "hands-on" and working on clearly defined bugfixes or features, more senior engineers usually deal with increasing complexity where their contributions are more likely to come in the form of shaping the engineering roadmap for the team, system design, and setting technical best practices.
# Years at each level
Luckily, the tech industry is fairly meritocratic and many companies are willing to hire you at any level you can demonstrate, with less regard for your age or actual years of experience.
However, many engineers often require a few years to progress between each level (it just takes that long to have faced and solved some common challenges), so a typical career might look something like:
- Total 0 YOE - New Graduate hired as a Junior / L3 engineer.
- Total 1 - 2 YOE - has learnt enough to work independently and is hired as a mid-level / L4 engineer.
- Total 3 - 8 YOE - now has experience leading other engineers as a Senior / L5 engineer. In many companies this might be the terminal level, and it may be rarer to progress above this.
- Total 5 - 10 YOE - after several more years leading multiple engineers, may be promoted to Staff / L6 levels.
- 8+ YOE - Levels above this become progressively more difficult, and if the engineer has not already reached a terminal level (or retired!) he/she may take 3 to 5 years to progress further.
Of course, these are rough guidelines only and some common variations include:
- Masters / PhD graduates sometimes fast-track to Intermediate, based on their research and maturity.
- Late-career entrants (opens new window) often have more years of experience, but usually only directly applicable YOE matters (ie engineering-related)
- Smaller companies usually inflate titles somewhat compared to larger firms, ie a Staff Engineer at a smallish company might get hired as a Senior Engineer at a larger one.
Good luck on your journey!