└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Full-Stack Developer Roadmap 2 | 3 | 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. 4 | 5 | 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. 6 | 7 | This list is aimed at developers working on B2B or B2C 'Line of Business' (CRUD) applications and assumes a SaaS model with global presence. 8 | 9 | # Backend 10 | - A backend language 11 | - Backend language VM/interpreter internals (JVM, CLR etc) 12 | - A scripting language 13 | - A web-app framework 14 | - A data access library/framework 15 | - Data access library/framework internals 16 | - A unit testing framework 17 | - An integration testing framework 18 | - A logging / distributed tracing framework 19 | - A specific authentication mechanism 20 | - A specific application server internals (iis, kestrel) 21 | - SQL/NoSQL/NewSql 22 | - Query tuning 23 | - Transactions 24 | - Database internals for a specifc vendor's database (SQL Server, PostgreSQL, Oracle etc) 25 | - MVC framework internals 26 | - Concurrency primitives 27 | - Thread safety 28 | - Caching 29 | - Queues / Message Bus 30 | - Strategies for handling backpressure 31 | - control the producer 32 | - buffer messages 33 | - drop messages 34 | - A specific cloud vendor's main services 35 | - VPC 36 | - Compute 37 | - Storage 38 | - Database 39 | - Caching 40 | - Messaging 41 | - Queues 42 | - Functions 43 | - API Gateway 44 | - A specific container technology 45 | - TCP / IP 46 | - HTTP / HTTP2 47 | - CORS 48 | 49 | # Frontend 50 | - HTML 51 | - JavaScript / TypeScript (ES6, Promises etc) 52 | - CSS (Flexbox, Grid etc) 53 | - A CSS Architecture (BEM, SMACCS etc) 54 | - A CSS framework (bulma, tailwind, bootstrap etc) 55 | - Responsive layouts 56 | - A frontend framework (react, vue, angular, svelte etc) 57 | - frontend framework internals 58 | - A component library 59 | - State management framework/library 60 | - Unit testing framework/library 61 | - Service workers 62 | - Browser APIs 63 | - Browser internals 64 | - JavaScript VM internals 65 | - HTTP / HTTP2 66 | - CORS 67 | 68 | # System Design 69 | - Common architectural patterns 70 | - N-tier (monolith) 71 | - CQRS 72 | - EventSourcing 73 | - Microservices 74 | - Multi-tenancy patterns 75 | - Silo 76 | - Bridge 77 | - Pool 78 | - Domain driven design 79 | - Design patterns (GoF) 80 | - Enterprise integration patterns 81 | - CAP / PACELC Theorem 82 | - High availability / multi-region architectures 83 | 84 | # Bonus points 85 | - VCS internals (git, mercurial etc) 86 | - How a specific OS file system works 87 | - How a specific OS does thread scheduling 88 | - How a specific OS does virtual memory management 89 | - How a specific OS networking stack works 90 | - How a specific OS does inter-process-communication 91 | - Multi-paradigm challenge 1: learn one static & one dynamic backend language 92 | - Multi-paradigm challenge 2: learn one object-oriented & one functional language 93 | - Multi-paradigm challenge 3: learn what the assembly (or bytecode) for your main language compiles down to 94 | - Multi-paradigm challenge 4: learn an esoteric language 95 | --------------------------------------------------------------------------------