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

Current

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:

GraphQL Design Need
OpenTelemetry Need
PostgreSQL Need
Prompt Engineering for Code Need
Redis Need
Async Programming Need
API Documentation Need
Integration Testing Need
Multithreading Need
Network Fundamentals Need
Secure Coding Practices Need
Type Safety & Type Systems Need

Middle

2-5 years

Next

Responsibility: Independently developing features from decomposition to deployment. Participating in code review. Optimizing performance. Mentoring junior developers. Taking part in architecture discussions.

Key skills:

Architecture Decision Records (ADR) Need
Architecture Fitness Functions Need
GraphQL Design Need
InnerSource Practices Need
OpenTelemetry Need
PostgreSQL Need
Prompt Engineering for Code Need
Redis Need
Technology Radar Practice Need
Async Programming Need
API Documentation Need
Integration Testing Need
Multithreading Need
Network Fundamentals Need
Secure Coding Practices Need
Type Safety & Type Systems Need
Technical Debt Management Need

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:

Architecture Decision Records (ADR) Need
Architecture Documentation: C4, arc42 Need
Architecture Fitness Functions Need
Capacity Planning Need
Diagramming: Mermaid, PlantUML, D2 Need
Feature Flags Need
GraphQL Design Need
InnerSource Practices Need
OpenTelemetry Need
PostgreSQL Need
Prompt Engineering for Code Need
Redis Need
Technology Radar Practice Need
Async Programming Need
API Documentation Need
Integration Testing Need
Multithreading Need
Network Fundamentals Need
Secure Coding Practices Need
Type Safety & Type Systems Need
Technical Debt Management Need

Lead / Staff

7-12 years

Responsibility: Managing multiple teams. Building processes. Budgeting. Strategic planning. Developing tech leads.

Key skills:

Architecture Decision Records (ADR) Need
Architecture Documentation: C4, arc42 Need
Architecture Fitness Functions Need
Capacity Planning Need
Diagramming: Mermaid, PlantUML, D2 Need
Disaster Recovery Design Need
Feature Flags Need
GraphQL Design Need
High Load Architecture Need
InnerSource Practices Need
OpenTelemetry Need
PostgreSQL Need
Prompt Engineering for Code Need
Redis Need
Runbook & Playbook Writing Need
Technology Radar Practice Need
Async Programming Need
API Documentation Need
Integration Testing Need
Multithreading Need
Network Fundamentals Need
Secure Coding Practices Need
Type Safety & Type Systems Need
Technical Debt Management Need

Principal

10+ years

Responsibility: Managing engineering department. Organizational design. Engineering culture. Hiring strategy. Board-level reporting.

Key skills:

Architecture Decision Records (ADR) Need
Architecture Documentation: C4, arc42 Need
Architecture Fitness Functions Need
Capacity Planning Need
Diagramming: Mermaid, PlantUML, D2 Need
Disaster Recovery Design Need
Feature Flags Need
GraphQL Design Need
High Load Architecture Need
InnerSource Practices Need
OpenTelemetry Need
PostgreSQL Need
Prompt Engineering for Code Need
Redis Need
Runbook & Playbook Writing Need
Technology Radar Practice Need
Async Programming Need
API Documentation Need
Integration Testing Need
Multithreading Need
Network Fundamentals Need
Secure Coding Practices Need
Type Safety & Type Systems Need
Technical Debt Management Need

Gap analysis: skills to develop

To reach the next level you'll need to develop:

Architecture Decision Records (ADR)

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.

Architecture Fitness Functions

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.

GraphQL Design

Makes decisions on GraphQL usage in team projects, evaluates schema complexity and performance. Defines GraphQL API design standards.

InnerSource Practices

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.

OpenTelemetry

Implements OpenTelemetry in team projects, defines instrumentation standards and monitoring metrics. Ensures proper configuration of traces, metrics, and logs.

PostgreSQL

Makes decisions on PostgreSQL usage in team projects, evaluates data schemas and indexes. Manages the migration process and ensures query performance.

Prompt Engineering for Code

Applies advanced prompt engineering techniques for automating routine management tasks — report preparation, metrics analysis, and planning. Trains the team on effective prompts.

Redis

Makes decisions on caching strategies in team projects, evaluates cache invalidation approaches and TTL policies. Controls Redis monitoring and performance.

Technology Radar Practice

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.

Async Programming

Makes decisions on applying asynchronous approaches in team projects, evaluates trade-offs between performance and code complexity. Reviews team's asynchronous code.

API Documentation

Establishes API documentation standards for the team, implements automatic generation and validation tools. Ensures API specification accuracy.

Integration Testing

Establishes integration testing standards for the team, ensures availability of test environments and infrastructure. Defines release readiness criteria.

Multithreading

Reviews team's multithreaded code, identifies potential race condition and deadlock issues. Makes decisions on selecting parallelism approaches for specific tasks.

Network Fundamentals

Makes decisions on team project network architecture, evaluates load balancing and security requirements. Coordinates network infrastructure setup with DevOps.

Secure Coding Practices

Implements secure coding practices into team processes, organizes security reviews and training. Ensures usage of static security analysis tools.

Type Safety & Type Systems

Establishes typing standards for team projects, defines TypeScript or other type system strictness. Ensures typing consistency through linters.

Technical Debt Management

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.