Skip to content

Instantly share code, notes, and snippets.

@skyzyx
Created December 11, 2017 19:58
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save skyzyx/13f52bca7da0a049d514a5ad5787c5cf to your computer and use it in GitHub Desktop.
Save skyzyx/13f52bca7da0a049d514a5ad5787c5cf to your computer and use it in GitHub Desktop.
Engineering Role Definitions

Engineering Role Definitions

Note: Although the levels may be different, these tend to map pretty cleanly to similar hierarchies at Google and Microsoft, but they have no correlation to hierarchies outside of the "club" of elite companies (Microsoft/Amazon/Google/Facebook, etc. on the west coast, Bloomberg/Goldman/HFT firms, etc. on the east coast).

People with 10-15 years of software engineering experience interview all the time at these companies, but they may not be fit for much more than a junior engineering role (SDE I or SDE II, depending on which company you're looking at).

Junior Engineer/Intern:

  • Is essentially a new and inexperienced (below the level of Amazon/Microsoft/Google engineers) junior engineer.
  • Attending college for computer science, or really good at teaching themselves from books and online tutorials.
  • Can probably code something but not design it.
  • Needs a lot of hand holding (from other software engineers) to complete any non-trivial amount of work.

Mid-Level/Intermediate Engineer (SDE 1):

  • Is essentially a new and inexperienced (at the level of Amazon/Microsoft/Google engineers) junior engineer.
  • Usually a Computer Science college graduate.
  • Typically doesn't need any hand holding, but they still need someone to break down a high-level task into smaller well-defined tasks for them to work on.
  • Tend not to understand the big picture.
  • Typically, can get their code to work, but does not have the experience or knowledge to do the quality of work, from an architecture, maintainability and testability point-of-view, that you would expect from a senior software engineer.

Senior Engineer (SDE 2):

  • Has a few years of experience.
  • Experience with large codebases and some architectural experience.
  • Can not only code independently, but also design significant chunks of code, deliver significant team-level projects, and guide more junior developers.

Staff Engineer (SDE 3):

  • Has many years of experience.
  • Has led or spearheaded at least one non-trivial or important project.
  • Can design larger systems, work effectively across multiple teams to deliver large projects, and leads his/her team to technical success.
  • Provides solid technical leadership for their team.
  • Has demonstrated soft skills and political acumen, and is able to negotiate across teams.

Senior Staff Engineer (SDE 3.5):

  • Everything on the Staff Engineer list, plus:
  • Generally 10-15 years of experience.
  • Has led or spearheaded multiple non-trivial or important projects.
  • Provides solid technical leadership beyond their team.

Principal Engineer

  • Everything on the Senior Staff Engineer list, plus:
  • Generally 15-20 years of experience.
  • Has led or spearheaded several non-trivial or important projects.
  • Provides solid technical leadership across the company.
  • Typically has one or more patents.

Distinguished Engineer

  • More and better than the last. Less day-to-day coding, and more thinking, planning, and directing.
  • Has achieved noteworthy technical, professional accomplishments while working as an engineer.
  • This will ordinarily require significant amounts of time over the lifetime of the individual given this distinction.
  • Provides solid technical leadership beyond the company.
  • Werner Vogels, CTO of Amazon, is a Distinguished Engineer.

Fellow

  • More and better than the last.
  • Provides solid technical leadership across the industry.
  • James Gosling, creator of the Java programming language, is a Fellow.

Senior Fellow

  • Woz.

Sources:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment