SDE Roadmap
A practical software development path from programming fundamentals to production systems and technical leadership.
Make this roadmap your plan
Sign in to save your routine, streaks, notes, and progress across devices.
Programming Foundations
Build reliable programming habits, debugging instincts, and engineering judgment.
Programming models and runtime behavior
beginner1hValues, control flow, memory, runtime behavior, and the mental models that make code predictable.
Complexity and performance reasoning
beginner1hUse asymptotic analysis, profiling, and measurement to explain time and space trade-offs.
Debugging and testing fundamentals
beginner1hReproduce failures, isolate causes, write focused tests, and make fixes that stay fixed.
Version control and collaboration
beginner1hUse branches, commits, pull requests, and reviews to collaborate without losing context.
Clean code and refactoring
beginner1hImprove names, boundaries, duplication, and complexity while preserving observable behavior.
Data Structures and Algorithms
Learn the structures and algorithms that make software efficient and explainable.
Arrays strings and hashing
beginner1hModel collections and lookup problems with arrays, strings, maps, and sets.
Linked lists stacks and queues
beginner1hChoose linked structures, stacks, and queues for ownership, ordering, and traversal problems.
Trees heaps and tries
beginner1hUse recursion, invariants, heaps, and tries to model hierarchical and priority data.
Graphs and traversal
beginner1hRepresent relationships with graphs and apply BFS, DFS, shortest paths, and dependency ordering.
Sorting searching and dynamic programming
beginner1hSelect sorting and search strategies, then recognize the recurrence patterns behind dynamic programming.
Software Design
Turn requirements into cohesive, testable, and maintainable designs.
Object-oriented design
intermediate1hDesign cohesive objects with clear responsibilities, stable interfaces, and replaceable dependencies.
Functional design and composition
intermediate1hUse pure functions, immutability, and composition to make behavior easy to reason about.
API contracts and validation
intermediate1hDefine explicit inputs, outputs, errors, and contracts before implementation begins.
Concurrency and asynchronous systems
intermediate1hCoordinate work with promises, events, workers, locks, and failure-aware asynchronous flows.
Design patterns and architecture
intermediate1hApply patterns as named trade-offs rather than ceremony, and choose architecture that fits the product.
Web and Backend Engineering
Understand the protocols, services, and persistence layers behind modern products.
HTTP and browser fundamentals
intermediate1hTrace a request through DNS, TLS, HTTP, the browser, and accessible UI boundaries.
Frontend application architecture
intermediate1hBuild frontend features with components, state, routing, data fetching, and testing.
Backend service design
intermediate1hStructure backend services around modules, validation, authorization, and resilient APIs.
Relational databases and SQL
intermediate1hModel data with constraints, indexes, transactions, migrations, and query plans.
Caching queues and background work
intermediate1hUse caches, queues, retries, idempotency, and scheduled work without hiding failure.
Production Engineering
Ship software safely with automation, observability, resilience, and security.
Linux containers and deployment
advanced1hOperate processes, images, networks, and environments from local development to production.
CI/CD and release engineering
advanced1hAutomate build, test, deploy, approval, rollback, and artifact promotion workflows.
Cloud infrastructure fundamentals
advanced1hUnderstand compute, storage, networking, identity, and cost across cloud platforms.
Observability and incident response
advanced1hUse metrics, logs, traces, SLOs, runbooks, and incident reviews to improve reliability.
Application security fundamentals
advanced1hProtect identities, inputs, dependencies, data, and secrets against common attack paths.
Career Readiness
Practice the communication and decision-making expected from professional engineers.
System design interviews
advanced45mDecompose ambiguous requirements into components, capacity assumptions, and deliberate trade-offs.
Technical communication and documentation
advanced45mWrite concise technical proposals, explain decisions, and make complexity legible to others.
Estimation prioritization and delivery
advanced45mBreak work into outcomes, sequence risk, estimate honestly, and keep delivery visible.
Code review and mentoring
advanced45mGive actionable feedback, review for correctness and maintainability, and grow teammates.
Building a portfolio and growth plan
advanced45mShow evidence of shipped work, reflect on gaps, and build a sustainable learning loop.