Already know some System Design? Answer these 11 questions, about 6 minutes. Each topic you get fully right is marked Known on the System Design roadmap , so you can skip it. Each one you miss is listed for you to study.
Don’t guess. Pick “I don’t know yet” when you’re not sure: a lucky guess would mark a topic Known that you still need to learn.
The 10 topics it checks Client–server, HTTP and HTTPS DNS REST vs GraphQL vs gRPC Latency numbers worth knowing Vertical vs horizontal scaling Load balancers: L4 vs L7 and algorithms Caching: cache-aside, write-through, write-back, eviction, TTL SQL vs NoSQL CDNs Back-of-the-envelope estimates Question 1 of 11 · Multiple choice A signed-in user tries to delete someone else’s post. Which status code fits best? 401 Unauthorized 403 Forbidden 500 Internal Server Error 201 Created I don’t know yet
Question 2 of 11 · Multiple choice A page loads 30 files over HTTPS with a new connection for each. What helps most? Reusing one connection with HTTP/2 Turning off HTTPS A faster CPU on the server Smaller headers I don’t know yet
Question 3 of 11 · Multiple choice Your DNS record has a TTL of one day. You change the address at noon. When have all users seen it? At noon Within a minute Up to a day later Never I don’t know yet
Question 4 of 11 · Pick the pattern Calls between your own services, thousands a second, with typed contracts. Which style fits? REST with JSON GraphQL Email gRPC I don’t know yet
Question 5 of 11 · Multiple choice Which is closest to one round trip across the Atlantic? 100 ns 0.5 ms 80 ms 5 s I don’t know yet
Question 6 of 11 · Multiple choice You add a second app server, and users’ carts empty at random. Why? Carts are kept in each server’s memory The database is slow The load balancer is broken Too much traffic I don’t know yet
Question 7 of 11 · Multiple choice Request times vary from 10 ms to 30 s. Which algorithm spreads them best? Round robin Least connections Always server 1 hash(time) % n I don’t know yet
Question 8 of 11 · Spot the bug Prices are cached forever, with no TTL. What is wrong with this write? def set_price(product_id, price):
db.update_price(product_id, price)
It is too slow It should write the cache only Nothing It never deletes the cached price, so the old one is shown forever I don’t know yet
Question 9 of 11 · Pick the pattern Payments must move money all or nothing. Which store? A SQL database with transactions A key-value store A search index A CDN I don’t know yet
Question 10 of 11 · Multiple choice How do you ship a new version of app.js that is cached for a year, without anyone seeing the old one? Purge the CDN every hour Set max-age=0 Give it a new name with a content hash, and link that name Ask users to clear their cache I don’t know yet
Question 11 of 11 · Multiple choice 20 million uploads a day. About how many a second? 20 2,000 20,000 200 I don’t know yet
See my results Answered 0 of 11.