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.
- Stage 1Requirements
- Stage 2Actors and lifecycle
- Stage 3Numbers
- Stage 4High-level design
- Stage 5Deep dive and tradeoffs
Learn Go (Golang): 98 lessons in 15 sections
Start from nothing. Finish with a real API you could put online. Every lesson has examples you can run in the browser, and the coding-round lessons come with challenges checked by real tests.
- Getting started · 8
- Core language · 14
- Go for coding rounds · 16
- Concurrency · 5
- Generics and stdlib · 3
- Web services · 2
- Modules and packages · 3
- Databases · 2
- Practice projects · 4
- Project 1 — URL shortener · 7
- Project 2 — Expense tracker · 9
- Project 3 — Small shop · 8
- Production · 6
- Go comparisons · 5
- Interview preparation · 6
Most read
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.