I came across this on LinkedIn nd it was too good to let it get lost in the internet.
Here are some Engineering roles, in plain English:
Junior Engineer: is mostly learning, assists others and takes care of simple tasks.
Mid Level Engineer: can be entrusted with the execution of well defined tasks.
Senior Engineer: can be entrusted with the planning and execution of initiatives. Mentors others.
Staff Engineer: improves everything they touch, from code to process. Systematically levels others up. Proposes initiatives. Their scope of work spans multiple teams.
Principal Engineer: same as Staff but with cross-departmental scope of work.
— Management track —
Engineering Manager: responsible for the outcomes generated by one team. Hires, develops and retains talent. Coordinates initiatives with stakeholders.
Senior Engineering Manager: same as EM but for multiple teams and/or bigger scopes.
Director of Engineering: executive role. Responsible for the outcomes achieved by a department of multiple teams. Responsible for the systems more than the individuals. Normally has a budget to manage. Needs to be business-oriented, domain savvy and customer-centric.
VP/Head of Engineering: the more technical counterpart to the CTO, responsible for engineering culture, quality and process. Larger organizations have multiple, each responsible for a group of departments.
CTO: as a member of the C-suite (alongside CEO, CFO, CMO, CRO, etc), they’re accountable for business outcomes, which they achieve via technological strategies.
DISCLAIMER:
Companies don’t universally agree on definitions for these roles. These are simply how I chose to massively simplify each one to make it understandable relative to each other.