Select your current position
Pick a role and level — we'll show the growth path, skills and gap analysis.
Development path
Junior
0-2 years
Responsibility: Completing tasks under the guidance of senior colleagues. Learning the codebase, standards, and team processes. Writing code to spec, fixing simple bugs, writing tests.
Key skills:
Middle
2-5 years
Responsibility: Independently developing features from decomposition to deployment. Participating in code review. Optimizing performance. Mentoring junior developers. Taking part in architecture discussions.
Key skills:
Senior
5-8 years
Responsibility: Managing a team of 5-8 engineers. 1-on-1s. Performance reviews. Hiring. Sprint planning. Removing blockers. Technical context.
Key skills:
Lead / Staff
7-12 years
Responsibility: Managing multiple teams. Building processes. Budgeting. Strategic planning. Developing tech leads.
Key skills:
Principal
10+ years
Responsibility: Managing engineering department. Organizational design. Engineering culture. Hiring strategy. Board-level reporting.
Key skills:
Gap analysis: skills to develop
To reach the next level you'll need to develop:
Applies ADR practices in engineering management: ensures teams document significant technical decisions, reviews ADRs for completeness and stakeholder alignment, and tracks decision outcomes. Facilitates architectural decision-making processes across team boundaries.
Understands architecture fitness functions as automated checks for architectural characteristics: identifies key quality attributes (performance, security, coupling) to measure. Participates in defining fitness function thresholds and integrates basic architectural tests into CI pipelines.
Makes decisions on GraphQL usage in team projects, evaluates schema complexity and performance. Defines GraphQL API design standards.
Applies InnerSource practices in team management: encourages cross-team contributions, establishes contribution guidelines, and tracks InnerSource participation metrics. Facilitates team collaboration on shared internal projects and documentation.
Implements OpenTelemetry in team projects, defines instrumentation standards and monitoring metrics. Ensures proper configuration of traces, metrics, and logs.
Makes decisions on PostgreSQL usage in team projects, evaluates data schemas and indexes. Manages the migration process and ensures query performance.
Applies advanced prompt engineering techniques for automating routine management tasks — report preparation, metrics analysis, and planning. Trains the team on effective prompts.
Makes decisions on caching strategies in team projects, evaluates cache invalidation approaches and TTL policies. Controls Redis monitoring and performance.
Applies Technology Radar practices in team management: facilitates technology assessment sessions, tracks team technology adoption against radar recommendations, and uses radar insights for capacity planning. Ensures team stays informed about technology trends and migration timelines.
Makes decisions on applying asynchronous approaches in team projects, evaluates trade-offs between performance and code complexity. Reviews team's asynchronous code.
Establishes API documentation standards for the team, implements automatic generation and validation tools. Ensures API specification accuracy.
Establishes integration testing standards for the team, ensures availability of test environments and infrastructure. Defines release readiness criteria.
Reviews team's multithreaded code, identifies potential race condition and deadlock issues. Makes decisions on selecting parallelism approaches for specific tasks.
Makes decisions on team project network architecture, evaluates load balancing and security requirements. Coordinates network infrastructure setup with DevOps.
Implements secure coding practices into team processes, organizes security reviews and training. Ensures usage of static security analysis tools.
Establishes typing standards for team projects, defines TypeScript or other type system strictness. Ensures typing consistency through linters.
Applies technical debt management when planning sprint capacity. Understands trade-offs between feature delivery and debt reduction. Participates in budgeting discussions, tracks team velocity impact of accumulated debt, and communicates priorities to stakeholders.