Dev Skills

Learn System Design and Go (Golang) by writing your own answer first

Every track here works the same way: a short explanation in plain English, then you write your own answer or code before you see ours. The gap between the two is where the learning happens. Free, no sign-in needed, and your progress is saved as you go.

For system design interviews in particular: most material is a catalogue of components. You finish it knowing more words and still freeze when someone says “design a ride-hailing app”. What is usually missing is not the components. It is the order you make decisions in, and the habit of saying what each one costs. That is what this site drills.

Where do you want to start?

The method, five stages, every time

Stages 1 to 3 take about a third of your time, and they are what make everything after them defensible. Every problem on this site is worked in this order.

  1. Stage 1
    Requirements
  2. Stage 2
    Actors and lifecycle
  3. Stage 3
    Numbers
  4. Stage 4
    High-level design
  5. Stage 5
    Deep dive and tradeoffs

How to use it

Every topic and every problem asks you to write your own answer before it shows you ours. That gap, between what you wrote and what you read, is where the learning happens. If you are stuck, take a hint: each one is a question to ask yourself, never the answer, and you can take every hint and still have to write something yourself. The 6 foundation lessons and 44 topics are ordered as a dependency chain (caching before CDNs, replication before partitioning), so reading top to bottom never asks you to assume something you have not met. To revise, the system design cheat sheet puts every concept on one page, and the worked solutions answer each interview problem end to end.

Loading your progress…