This is how I think about software engineer levels, from Junior through Principal. I break it into three areas: Direction (what you're building and why), Engineering (how well you build it), and Approach (how you work with others).
I used it at 1KOMMA5° to evaluate my own performance and give feedback to my reports. The Junior→Mid transition trips people up more than any other.
| Level | Tagline | Work Unit Scope | Team Scope |
|---|
| Junior | Contributing with guidance | Feature / Project | Self / Tasks |
| Mid | Independent Contributor | Project / Architecture | Team |
| Senior | Technical Team Lead | Architecture / Systems | Multi project / Multi-Team |
| Lead | Technical Domain Lead | Systems / Technical Vision | Multi domain |
| Principal | Technical Org Lead | Same as Lead | Org |
AI makes you faster if you use it well. It also makes you faster at being wrong.
| Level | Expectation |
|---|
| Junior | - Uses AI tools (copilot, chat) daily for code generation, debugging, learning
- Knows when AI output needs review
|
| Mid | - Integrates AI into personal workflow systematically
- Writes effective prompts, builds small automations
- Evaluates AI output critically
|
| Senior | - Drives AI adoption within team
- Identifies high leverage use cases (code review, testing, docs, incident triage)
- Sets quality bar for AI-assisted output
- Builds reusable prompts or workflows for the team
|
| Lead | - Defines AI strategy for the domain
- Evaluates build-vs-buy for AI tooling
- Ensures AI usage aligns with data privacy, cost, and reliability constraints
- Scales what works across teams
|
| Principal | - Shapes org-wide AI strategy
- Defines where human-in-the-loop is non-negotiable
- Drives competitive advantage through AI-native workflows
- Owns cost/value framework for AI investments
|
Engineers must own a part or the whole product. Lead firm, but kind.
| Level | Expectation |
|---|
| Junior | - Knows why features matter to business or users
- Contributes to team architecture discussions
- Thinks about user impact before coding
|
| Mid | - Builds projects for user and business impact
- Owns architecture decisions
- Creates decision documents (RFC, ADRs)
|
| Senior | - Links work to company goals
- Leads architecture within team/domain
- Creates clarity for long-term direction
|
| Lead | - Aligns systems to company goals
- Drives long-term architecture direction
- Owns technical debt strategy
|
| Principal | - Defines technical vision for business impact
- Sets architectural north star for the org
- Influences company strategy
|
| Level | Expectation |
|---|
| Junior | No requirement |
| Mid | - Mentors peers
- Unblocks others
- Drives clarity and healthy team habits
|
| Senior | - Creates clarity fast
- Makes hard calls
- Aligns decisions with business
|
| Lead | - Multiplies seniors
- Scales clarity and accountability across teams
- Raises performance
|
| Principal | - Shapes org culture
- Grows senior leaders
- Delivers through people not hierarchy
|
Good engineering means understanding trade-offs, not just writing code.
| Level | Expectation |
|---|
| Junior | - Ships production code with guidance
- Clean code, meaningful unit tests
- Follows team conventions
|
| Mid | - Refactors confidently
- Adds test layers
- Simplifies implementation
|
| Senior | - Owns team code quality, velocity, and reliability
- Sets standards within team
- Optimizes entire codebase
|
| Lead | - Defines quality, velocity, and reliability standards
- Leads frameworks
- Drives cross team code standards
|
| Principal | - Defines quality, velocity, and reliability standards org-wide
- Leads large-scale investments
- Sets technology direction for the org
|
| Level | Expectation |
|---|
| Junior | - Contributes to incidents
- Monitors metrics and dashboards on-call with guidance
- Learns alerting and monitoring basics
|
| Mid | - Participates in small responder
- Active in incidents
- Improves runbooks
|
| Senior | - Leads incident prevention
- Owns team metrics
- Drives zero-downtime
|
| Lead | - Leads reliability
- Reliability strategy at org level
- Org templates for reliability
|
| Principal | - Defines company-wide reliability
- Multi-region strategy
- Reliability culture by design
|
| Level | Expectation |
|---|
| Junior | - Implements data flows with guidance
- Designs data models and pipelines
- Safe migrations
|
| Mid | - Defines metrics
- Query optimizations
- Data tests
|
| Senior | - Drives data-informed decisions
- Ensures scale
- Owns data lineage
|
| Lead | - Defines data platform, governance, and quality standards
- Owns data architecture across domains
- Leads data platform roadmap
|
| Principal | - Owns long-term data and analytics strategy
- Enterprise data strategy
- Privacy-by-design
|
Most engineering problems are communication problems.
| Level | Expectation |
|---|
| Junior | - Communicates clearly
- Posts async updates as comments/tickets
- Uses sync discussions when needed
|
| Mid | - Top-tier async communicator
- Presents ideas centered around code or prototypes
- Explains concepts to teammates using docs or demos
|
| Senior | - Improves communication efficiency
- Facilitates fast decision-making in groups
- Elevates clarity across the team
|
| Lead | - Improves team and org communication structures
- Communicates complex topics to executives and partners
- Mentors others on effective communication
|
| Principal | - Defines technical communication culture for the org
- Crafts narratives that drive company strategy
- Models communication that aligns teams and leadership
|
| Level | Expectation |
|---|
| Junior | - Ships projects fast with guidance
- Unblocks themselves by reaching out asap
- Breaks work into small deliverables
|
| Mid | - Independently delivers features
- Solves problems without waiting for permission
- Ships services end-to-end
|
| Senior | - Leads multi team projects to prod
- Drives multi domain high-risk projects
- Owns delivery timelines for complex work
|
| Lead | - Independently drives high-complexity projects
- Metrics first, code second
- Drastically improves iteration speed
|
| Principal | - Drives technical transformations
- Creates high leverage frameworks
- Drastically simplifies architecture and significantly reduces cost
|
| Level | Expectation |
|---|
| Junior | - Asks why, not just how
- Sees user and business pain
- Asks rigorously for feedback
|
| Mid | - Full ownership on ambiguous problems
- Builds prototypes
- Automates toil
|
| Senior | - Prioritizes ruthlessly
- Enforces write-first
- Turns ambiguity into plan + execution
|
| Lead | - Scales speed via systems
- Cadences, DRIs, documentation, feedback loops
- Multiplies ownership mindset across teams
|
| Principal | - Shapes how strategy, priorities, and ownership flow top-to-bottom
- Defines principles, not just processes
- Defines how information scales globally
|