What separates a junior from a senior? And a senior from a staff engineer? Here is the map.
Junior (0-2 years)¶
- Completes assigned tasks
- Learns technologies and the codebase
- Needs mentoring
- Focus on “how”
- Measured by: code quality, learning speed
Mid-level (2-5 years)¶
- Independently delivers features
- Designs implementation
- Mentors juniors
- Focus on “what”
- Measured by: productivity, reliability
Senior (5-8 years)¶
- Owns technical decisions
- Designs systems and architecture
- Solves ambiguous problems
- Focus on “why”
- Measured by: impact on the team, technical leadership
Staff (8+ years)¶
- Defines technical strategy
- Influences multiple teams
- Solves organizational technical problems
- Focus on “where to”
- Measured by: impact on the organization
IC vs Management¶
Staff/Principal is the Individual Contributor track — technical leadership without people management. Engineering Manager is the management track — people leadership. Both paths are equal.
How to Grow¶
- Do work one level above yours (then ask for a promotion)
- Seek high-impact projects
- Mentor others
- Write documentation and ADRs
- Communicate (blog, talks, RFCs)
- Build relationships outside your team
Reality¶
Promotion is not automatic with time. It’s about demonstrated impact at a higher level.
kariérarůstleadership