Skip to content
Software Atlas
← All roadmaps
Roadmap · 6 stages · 34 topics

Staff / System Design

The trade-offs behind large systems: performance, data at scale, many machines working together, and architecture.

Best after the Backend Engineer track: it builds on networking, concurrency and testing, which aren't repeated here.

0%complete
0 of 34 topics done
~27 h 30 min of reading left

Follow it and the end of each topic suggests the next one on this track.

Stage 10/5 done

Performance intuition

Design reviews go better when you can estimate costs: how growing inputs, memory and CPU caches turn into milliseconds.

Code here comes in Go and JavaScript. New to Go? Start with the 90-second Go primer.

Optional side reads (not counted):
Stage 20/5 done

Data at scale

Every large system is a story about where data lives, how copies stay in sync, and what happens when one machine isn't enough.

Optional side reads (not counted):
Stage 30/6 done

Distributed systems

Networks fail, messages repeat and clocks disagree. These ideas let a system stay correct anyway.

Stage 40/6 done

Architecture

Where you draw boundaries decides how fast teams can change things later. Learn the options and when each one is overkill.

Stage 50/5 done

Operating at scale

Traffic spikes, overload and outages will happen. Design for them up front: spread and limit load, watch the right numbers, and roll out changes gradually.

Optional side reads (not counted):
Stage 60/7 done

Designing whole systems

Put it all together. Start from requirements and rough numbers, then work through classic systems, each one reusing the building blocks above and showing what breaks as traffic grows.