Roadmap · Specialise
System design
Opens with creditsFor engineers who can build a service and want to reason about how systems behave at scale, under failure and across teams. By the end you can take a vague product requirement to a defensible architecture and explain every trade-off in it.
By the end, you will be able to
- Estimate traffic and storage for a product and turn the numbers into decisions about caching, databases and partitioning
- Choose a database, replication setup, shard key and cache for a workload, and say what goes stale and why that is acceptable
- Explain what a distributed system does under partitions, slow replicas and retries, using quorums, consensus and idempotency
- Specify timeouts, retries, circuit breakers, SLOs and tracing for a service so it degrades gracefully and failures are visible
- Design a feed, chat app or ride-hailing service end to end in 45 minutes: requirements, estimates, diagram, bottlenecks and trade-offs
The path
7 stages, in the order to learn them. Open one to start.
1Core concepts and building blocksThe vocabulary every design conversation uses and the components that sit in front of every system. Each concept here is a trade-off you will reach for in every later stage.10 topics · ~7 weeks
- 1Vertical vs horizontal scaling and stateless servicesThere are two ways to handle more traffic.
- 2Latency, throughput and percentilesLatency is how long one request takes.
- 3Availability, redundancy and SLOsAvailability is the share of time a system does its job.
- 4Back-of-the-envelope capacity estimatesRough numbers turn a vague requirement into design decisions.
- 5Load balancers and balancing algorithmsA load balancer spreads requests across a group of servers and gives clients one stable address.
- 6Reverse proxies and API gatewaysA reverse proxy sits in front of your servers and handles requests on their behalf.
- 7CDNs and edge cachingA content delivery network (CDN) keeps copies of your content in data centres close to users.
- 8Caching patterns, eviction and invalidationA cache keeps popular data in memory so most reads skip the slower database.
- 9CAP and PACELCSometimes the network breaks and splits the copies (replicas) of your data into groups that cannot talk.
- 10Bloom filtersA Bloom filter answers one question: "is this item possibly in the set?" It uses a row of bits (a bit array) and a few hash functions, which turn an item into…
10 in this stageOpen this stage2Data storage, partitioning and replicationWhere data lives and how it is modelled, indexed, split and copied across machines. Most scaling problems end up here, so give this stage the most care.10 topics · ~2 months
- 1SQL vs NoSQL and the NoSQL familiesRelational databases such as PostgreSQL and MySQL store data as rows in tables.
- 2Data modelling from access patternsData modelling means deciding your entities (users, posts, orders), their fields and how they relate.
- 3Indexes and query plansAn index is a sorted structure, usually a B-tree, that lets the database find rows without reading the whole table.
- 4ACID transactions and the write-ahead logA transaction groups several changes so they all succeed or all fail together.
- 5Isolation levels and concurrency anomaliesIsolation decides what transactions running at the same time can see of each other.
- 6Replication and read replicasReplication keeps copies of the same data on several machines.
- 7Partitioning and shardingWhen data or write traffic outgrows one machine, you split it.
- 8Choosing shard keys, hot spots and reshardingA good shard key has many different values, spreads load evenly and matches how data is read.
- 9Denormalisation for readsDenormalisation means storing the same data in more than one place so reads avoid joins or extra lookups.
- 10Object storage for large filesImages, videos, backups and uploads belong in object storage such as Amazon S3, Google Cloud Storage or Azure Blob Storage, not in database rows.
10 in this stageOpen this stage- Networking, APIs and messagingHow a request finds a server and how components talk to each other: DNS, protocols, API styles, real-time connections, and queues for work that can wait.9 topics · ~6 weeksOpens with credits
- Distributed systems fundamentalsWhat changes when data lives on many machines that fail independently: consistency models, quorums, consensus and the hashing that lets a cluster grow. This stage makes the boxes on a diagram honest.9 topics · ~2 monthsOpens with credits
- Architecture and resilience patternsHow to split a system into services and keep it standing when parts of it fail. Every pattern here solves one problem and creates another, so learn both sides.10 topics · ~2 monthsOpens with credits
- Performance, observability and safe releasesMake a system fast at the tail, see inside it in production and change it without an outage. This is what separates a diagram from a system someone is on call for.9 topics · ~7 weeksOpens with credits
- Designing real systems end to endPut every stage together on complete problems with one repeatable framework. Produce designs against the clock rather than reading them, then compare your choices with how real companies built theirs.9 topics · ~3 monthsOpens with credits
5 more stages, 46 more topics, free with an account.
You have seen the open stages of the System design roadmap. Every topic it covers is listed above, and an account opens the rest: what each topic means, a question to check yourself, the courses, the practice and Tauseef's advice for every stage. Early access is open: sign up and your account is active shortly after.
Everything here is free to learn from. A few things, like adding a roadmap, keeping a cheat sheet or asking Tauseef a question, use credits. You get 15 when you join, your first roadmap is free, and if you are learning seriously and run out, you can ask for more. Credits only make sure the platform goes to people who are actually learning.
Related on Sefism
Picked from the other libraries by shared topics.
Career questions
See all- How do I learn system design as a student or junior developer?Start with the building blocks you already touch: HTTP, databases, indexes, caching and queues. Then study how real systems are built through engineering blogs, and practise by redesigning your own projects for more users. Classic design problems come last, once the fundamentals make sense.
- How do I learn system design for AI applications?Learn classic system design first, because AI applications are still web systems with queues, caches and databases. Then add what is new: slow and costly model calls, retrieval pipelines, vector search, evaluation, guardrails and cost control. Practise by designing and building one AI feature end to end.
- How do I switch from a service-based company to a product-based company?Product companies hire for problem solving, clean code, system design and ownership. Audit what your experience already gives you, close the specific gaps with a plan you design yourself, reposition your CV around impact, and start talking to people at target companies early rather than after you feel ready.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
- 1:1 Mentorship
- Fresh Graduate Mentorship
- Career Guidance
Brand deals, promos and partnerships: tauseeffayyaz@gmail.com