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: Building simple features from UI to API. Working with React/Vue + Node.js/Python. Writing basic tests. Fixing bugs on both sides.
Key skills:
Middle
2-5 years
Responsibility: Independent end-to-end feature development. Designing APIs and UIs. Setting up CI/CD. Working with databases. Performance optimization.
Key skills:
Senior
5-8 years
Responsibility: Application architecture (frontend + backend). Technology selection. UX and performance optimization. Mentoring. Data model design.
Key skills:
Lead / Staff
7-12 years
Responsibility: Technical leadership of fullstack team. Architectural decisions. Frontend and backend standards. Coordination with design and product.
Key skills:
Principal
10+ years
Responsibility: Product engineering strategy. Choosing technology stack for the company. Architecture for fast time-to-market.
Key skills:
Gap analysis: skills to develop
To reach the next level you'll need to develop:
Independently implements complex UI components with Core Web Vitals optimization. Optimizes rendering performance. Writes tests. Applies for state management.
Implements data fetching patterns with React Query/SWR on the frontend and REST/GraphQL APIs on the backend. Optimizes caching, deduplication, and loading states across the full stack.
Independently implements complex UI components with Next.js. Optimizes rendering performance. Writes tests. Applies for state management.
Independently implements complex UI components with React Core. Optimizes rendering performance. Writes tests. Applies for state management.
Independently implements complex UI components with SSR/SSG/ISR patterns. Optimizes rendering performance. Writes tests. Applies for state management.
Independently implements complex UI components with State Management. Optimizes rendering performance. Writes tests. Applies for state management.
Independently implements complex UI components with Tailwind CSS. Optimizes rendering performance. Writes tests. Applies for state management.
Independently implements complex UI components with Vite and modern bundlers. Optimizes rendering performance. Writes tests. Applies for state management.
Independently applies algorithmic thinking across the stack: selects efficient query algorithms on backend, understands virtual scrolling and pagination algorithms on frontend, evaluates data processing trade-offs between client and server. Analyzes end-to-end complexity of feature implementations.
Independently applies async programming across the stack: server-side async request handling, client-side async data fetching, WebSocket/SSE for real-time updates. Understands trade-offs between different async patterns on frontend and backend.
Ensures accessibility on both sides: implements server-side rendered accessible HTML with SSR frameworks, configures API responses for accessibility (alt text in image API, structured error messages). Tests with axe-core and verifies keyboard navigation.
Independently applies code quality practices across frontend and backend. Writes consistent code with shared type definitions and clear API boundaries. Understands trade-offs between DRY code sharing and independent deployability. Reviews full-stack features for proper error propagation and data validation consistency.
Independently implements complex UI components with component testing. Optimizes rendering performance. Writes tests. Applies for state management.
Works with micro-frontends in fullstack context: implements BFF layer for each micro-frontend, configures API composition for data aggregation, applies Module Federation for frontend integration. Ensures end-to-end type safety through shared TypeScript types between frontend and backend.
Independently implements complex UI components with bundle optimization. Optimizes rendering performance. Writes tests. Applies for state management.
Analyzes slow queries through EXPLAIN. Eliminates N+1 problems in ORM (eager loading, select_related). Optimizes JOINs (order, types). Uses window functions (ROW_NUMBER, LAG/LEAD). Understands the difference between correlated and non-correlated subqueries.
Applies networking knowledge in fullstack development: CORS configuration for API, SSL/TLS certificates, HTTP/2 multiplexing. Understands CDN architecture for static assets, DNS configuration for domains and diagnoses latency issues between frontend and backend.
Independently applies design patterns across full stack: repository pattern for backend data access, strategy for interchangeable service implementations, observer for frontend reactivity, adapter for API integration layers. Explains pattern trade-offs for full-stack architecture coherence.
Independently applies OOP/SOLID across frontend and backend: proper service abstractions shared between layers, interface-based API contracts, single responsibility in both UI components and server handlers. Understands trade-offs between OOP and functional patterns across the full stack.
Independently implements complex UI components with design system development. Optimizes rendering performance. Writes tests. Applies for state management.
Independently implements complex UI components with modern CSS. Optimizes rendering performance. Writes tests. Applies for state management.
Independently selects appropriate data structures across the stack: normalized database schemas, API response DTOs, client-side state trees for UI. Understands trade-offs between data format choices for efficient serialization between frontend and backend.
Independently applies type safety across frontend and backend — TypeScript strict mode for shared type definitions, API contract types with tRPC/GraphQL codegen, and end-to-end type-safe data flow. Understands trade-offs between runtime validation and compile-time guarantees across system boundaries. Applies type-safe patterns in code reviews.