Roles · Fullstack Developer · Mid-level

What a Mid-level } should know

23 core skills, 65 in total. Expectations per skill, and what changes at the next level.

This page lists what a Mid-level } is expected to know and do, skill by skill. Core skills are the ones a manager and peers assess in a review cycle; the rest count only in self-assessment. Main areas: Programming Fundamentals, Frontend Development, Database Management.

23core skills
42additional skills
4skill areas
0%at Advanced or Expert
Assess myself as Mid-level Full role matrix

Core skills for a Mid-level

Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.

Programming Fundamentals · 7

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.

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.

Data Structures Working

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.

Design Patterns Working

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 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.

Frontend Development · 14

Independently implements complex UI components with bundle optimization. Optimizes rendering performance. Writes tests. Applies for state management.

Independently implements complex UI components with component testing. Optimizes rendering performance. Writes tests. Applies for state management.

Core Web Vitals Working

Independently implements complex UI components with Core Web Vitals optimization. Optimizes rendering performance. Writes tests. Applies for state management.

Data Fetching Working

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 design system development. Optimizes rendering performance. Writes tests. Applies for state management.

Micro Frontends Working

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.

Modern CSS Working

Independently implements complex UI components with modern CSS. Optimizes rendering performance. Writes tests. Applies for state management.

Next.js Working

Independently implements complex UI components with Next.js. Optimizes rendering performance. Writes tests. Applies for state management.

React Core Working

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.

Tailwind CSS Working

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.

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.

Database Management · 1

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.

Cloud & Infrastructure · 1

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.

Additional skills

Not assessed by the team, but part of the self-assessment and the development plan.

Apache KafkaAPI DocumentationAPI Versioning StrategiesAWSChatGPT / ClaudeCode ReviewCursor IDEData Modeling & Schema DesignDatabase IndexingDatabase MigrationsDockerE2E TestingELK StackGit AdvancedGitHub Actions / GitLab CIGitHub CopilotGraphQL DesigngRPC & Protocol BuffersIntegration TestingJWT / OAuth2 / OIDCKubernetes CoreLatency OptimizationMemory ManagementMongoDBMultithreadingNode.js FrameworksOpenTelemetryOWASP & Application SecurityPostgreSQLPrometheus & GrafanaPrompt Engineering for CodePython Web FrameworksRedisREST API DesignSecure Coding PracticesSLI / SLO / SLAStructured LoggingSystem Design FundamentalsTDD & BDDTerraformUnit TestingWebSocket API Design

What changes at Senior

65 skills get a higher expectation or become core when moving from Mid-level to Senior. The biggest jumps first.

See the Senior page →
Run this with your whole team
Self-assessment plus manager and peer reviews against the same matrix, gap analysis and next-level readiness for every engineer. Team Pro is free for 14 days; individual tools stay free forever.
Start a team trial (14 days free) Send to my manager

} in the open competency matrix: 65 skills across 5 levels. The matrix is free for individuals and stays free.