Meta Engineering Levels for software Engineers
Meta (a.k.a Facebook) has very well established structure and levels for Software Engineers. Meta Engineering Levels are starting from E2 Intern/Student but for purpose of this post we will focus on levels from E3 to E9+ which are for fully qualified engineers.
We will cover briefly what one could expect from each level.
- E3 – Software Engineer ||
- E4 – Software Engineer |||
- E5 – Senior Software Engineer
- E6 – Staff Software Engineer
- E7 – Senior Staff Software Engineer
- E8 – Principle Engineer
- E9+ – Distinguished Engineer
E3 – Software Engineer ||
Complete individual tasks without much guidance. Deliver good quality code, test, documentation. React well on constructive feedback. As Software Engineer || you have to unblock yourself or with the help of another engineer.
E4 – Software Engineer |||
As a Software Engineer |||, you work on projects delivering whole features. You own the technical specification, collaborate with other teams to deliver. Working mostly independent. You help your colleagues through code reviews or providing constructive feedback on technical decisions.
E5 – Senior Software Engineer
You own a problem space / project end-to-end. You are expected to create scope for yourself and others in the team. Driving technical alignment and collaboration across functions and teams. As a Senior Software Engineer help other engineers grow through mentoring and coaching. You set and maintain the quality bar for the team. You can drive and deliver through others.
E6 – Staff Software Engineer
Yow play a critical role in setting the direction and goals of the team. As a Staff Software Engineer you are involved in roadmapping, scoping work and managing technical problems spanning outside of the team influencing the organisation. You are the one that deals with the hardest problems. You can cover for missing PM or EM in the team if needed, and advocate for high quality and engineering excellence.
E7 – Senior Staff Software Engineer
Different tracks and Archetypes focusing on breadth or depth in terms of technical complexity. Working on large programs spanning multiple teams and orgs. Setting organisational direction of a large problem. Involved in building high performing engineering teams and organisations.
E8 – Principal Engineer
Industry expert/leader. You have impact beyond Meta, into an industry or specific technology area, and you are very passionate about an area and champion it. As Principal Engineer you drive technical, process and cultural changes to help the company move fast. Pursuing many difficult incremental changes instead of just building new/shiny pieces of technology. You are a great coach and people follow you.
E9+ – Distinguished Engineer
As Distinguished Engineer you are heading a whole organisation. A core product of Meta. You are seen as a CTO of the area able to drive through all of the layers independently and dealing with problems that few other can.
Engineering Levels Expectations
The important difference between an IC3 and an IC9+ is not the volume of work they directly produce, but the scope of problems they solve, the quality of those solutions, and the way they deliver results. The higher up in the levels the bigger “blast radius” you have, i.e. you impact more people, teams, product metrics, revenue across the company with your direct and indirect influence and contributions.
You might have come across different abbreviations for levels. Let’s take as an example: IC6, L6, E6, M1. Many people wonder if they are different and what exactly is the difference between each one of them.
Let’s look first at the letters portion and understand what they mean.
- L – stands for “Level” it is quite self explanatory and it’s mainly used by Google but also Microsoft. It is straight forward and can be used across many different roles like PM, TPM, Designers etc.
- E – stands for “Engineering” as Engineering Level but that is more restrictive and may I say discriminates against certain roles, i.e. not all employees are Engineers, some are Content and Product Designers, Product Managers, Technical Program Managers Policy, Legal, Project Managers etc. This one is used conversely around roles in Meta but it is not an official one.
- IC – stands for “Individual Contributor”. This has more generic use and is a standard Meta level description. It is also incorporating the actual role of the employee, i.e. everyone can be Individual Contributor, regardless of type of work which is more inclusive. Also this shows that the person does not have people management expectations.
- M – since we have introduced a new letter let’s cover it too. It stands for Manager and can be used for different roles and technical domains. This is heavily used in Meta for all people managers. For example PM Manager, Engineering Manager, Data Engineering Manager, etc. This level can also correspond to an “L” type level, for example M1 = L6 and M2 = L7.
If you are wondering if there is a difference between L6 – E6 – IC6. The answer is, no. There is no difference in terms of roles and levels they all represent same expectations. That said since those abbreviations are being used by different companies, i.e. Google, Meta, Apple, Microsoft, Netflix, etc. they can have different comparison across the companies. If you look at the expectations at Google for L6 engineer that person might be L7 in a startup or another company depending on their skills and their exposure to various technical and business problems.
Meta Core Company Values
At each Meta engineering level, the person will have to focus and exhibit impact across most or all Meta Core Values. This is fully embedded in the performance evaluation and within the company processes.
- Move Fast
- Focus on Long-Term Impact
- Build Awesome Things
- Live in the Future
- Be Direct and Respect Your Colleagues
- Meta, Metamates, Me