starsofchance / fullstack-developer-roadmap

What should you know if you want to master your craft as a full-stack developer?

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Full-Stack Developer Roadmap

The following roadmap represents an inventory of software engineering skills spanning junior, intermediate, senior and principal level skills and might take an entire 10 ~ 20 year career to achieve. Don't get imposter syndrome just yet, most developers will never know the entire list.

The entire inventory of skills should be present in aggregate across the engineering organization you work in. This roadmap is a useful guide to plug gaps in your own knowledge or find a niche in your organization that isn't well understood and cover it.

This list is aimed at developers working on B2B or B2C 'Line of Business' (CRUD) applications and assumes a SaaS model with global presence.

Backend

  • A backend language
  • Backend language VM/interpreter internals (JVM, CLR etc)
  • A scripting language
  • A web-app framework
  • A data access library/framework
  • Data access library/framework internals
  • A unit testing framework
  • An integration testing framework
  • A logging / distributed tracing framework
  • A specific authentication mechanism
  • A specific application server internals (iis, kestrel)
  • SQL/NoSQL/NewSql
  • Query tuning
  • Transactions
  • Database internals for a specifc vendor's database (SQL Server, PostgreSQL, Oracle etc)
  • MVC framework internals
  • Concurrency primitives
  • Thread safety
  • Caching
  • Queues / Message Bus
  • Strategies for handling backpressure
    • control the producer
    • buffer messages
    • drop messages
  • A specific cloud vendor's main services
    • VPC
    • Compute
    • Storage
    • Database
    • Caching
    • Messaging
    • Queues
    • Functions
    • API Gateway
  • A specific container technology
  • TCP / IP
  • HTTP / HTTP2
  • CORS

Frontend

  • HTML
  • JavaScript / TypeScript (ES6, Promises etc)
  • CSS (Flexbox, Grid etc)
  • A CSS Architecture (BEM, SMACCS etc)
  • A CSS framework (bulma, tailwind, bootstrap etc)
  • Responsive layouts
  • A frontend framework (react, vue, angular, svelte etc)
  • frontend framework internals
  • A component library
  • State management framework/library
  • Unit testing framework/library
  • Service workers
  • Browser APIs
  • Browser internals
  • JavaScript VM internals
  • HTTP / HTTP2
  • CORS

System Design

  • Common architectural patterns
    • N-tier (monolith)
    • CQRS
    • EventSourcing
    • Microservices
  • Multi-tenancy patterns
    • Silo
    • Bridge
    • Pool
  • Domain driven design
  • Design patterns (GoF)
  • Enterprise integration patterns
  • CAP / PACELC Theorem
  • High availability / multi-region architectures

Bonus points

  • VCS internals (git, mercurial etc)
  • How a specific OS file system works
  • How a specific OS does thread scheduling
  • How a specific OS does virtual memory management
  • How a specific OS networking stack works
  • How a specific OS does inter-process-communication
  • Multi-paradigm challenge 1: learn one static & one dynamic backend language
  • Multi-paradigm challenge 2: learn one object-oriented & one functional language
  • Multi-paradigm challenge 3: learn what the assembly (or bytecode) for your main language compiles down to
  • Multi-paradigm challenge 4: learn an esoteric language

About

What should you know if you want to master your craft as a full-stack developer?