Meta (Facebook): Software Engineer Levels

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.

Engineering Levels

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.

Levels Abbreviation

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

Join Me

Follow me on Twitter and Linkedin for more Career, Leadership and Growth advice.

Lightning Tweets about Engineering and Software Delivery at Meta


Leave a Reply

Your email address will not be published. Required fields are marked *