Skip to content

Roadmap

Learning maps for each role on a software team, drawn from my own journey: frontend is what I do every day, the other roles are what I learned working next to teammates and digging in on my own.

Pick a role

Each bar is a role and each segment is a stage. Longer segments take more time.

  • Foundation
  • Core
  • Advanced

Frontend Engineer

My main role

Building web interfaces that stay fast, accessible and maintainable as products grow

10 stages, 51 topics, ~34 weeks

  • TypeScriptTypeScript
  • ReactReact
  • Next.jsNext.js
  • TanStackTanStack Query

Designs, builds and runs the APIs, data and services behind every product

10 stages, 52 topics, ~37 weeks

  • Node.jsNode.js
  • TypeScriptTypeScript
  • NestJSNestJS
  • PostgreSQLPostgreSQL

Build iOS and Android apps that feel smooth, work offline and ship safely

10 stages, 50 topics, ~34 weeks

  • ReactReact Native
  • ExpoExpo
  • TypeScriptTypeScript
  • SwiftSwift / SwiftUI

Find risk before users do and turn quality into something the team can measure

10 stages, 50 topics, ~36 weeks

  • PlaywrightPlaywright
  • TypeScriptTypeScript
  • Bruno
  • Pact

Builds infrastructure, pipelines and platforms so teams ship fast, safely and reliably

10 stages, 56 topics, ~42 weeks

  • LinuxLinux
  • DockerDocker
  • GitHubGitHub Actions
  • KubernetesKubernetes

Build products on top of LLMs: APIs, RAG, agents, evals and running it all in production

10 stages, 58 topics, ~31 weeks

  • TypeScriptTypeScript
  • VercelAI SDK
  • Model Context ProtocolMCP
  • pgvector

How I use a roadmap

  1. 1

    Read my take first

    Each role opens with what I wish I had known earlier. Use it to decide where to spend your effort.

  2. 2

    Follow the stages, not a checklist

    Each stage builds on the one before. Skip ahead if you must, and come back when you get stuck.

  3. 3

    Close every stage with a small project

    Each stage ends with a project that has clear acceptance criteria. Finish it before moving on.