Skip to content

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

Notifications You must be signed in to change notification settings

james-s-tayler/fullstack-developer-roadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 

Repository files navigation

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?

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published