System design kata practice for people who learn by doing
Practice system design by designing systems from business requirements, then seeing the consequences.
Build system design skills with our katas
Every kata is a sandbox: read a brief, adjust the diagram, and see feedback on what strengthens or weakens the system. Look for the bottleneck, then try one change and re-run.
Four steps to practice system design
Choose a kata, keep your diagram light, and let the simulator show you what happens. You can always rewind and try another idea.
Pick a small, welcoming kata brief that matches the kind of system you want to practice.
Drop in components, sketch the flow, and keep it light—you can always change it.
See how your design handles the traffic and constraints. Feedback stays focused and specific.
Tweak the diagram, compare options, and watch how small changes ripple through the system.
Pick a kata and have a go.
Every kata is a short, focused exercise with clear goals and built-in feedback. You can open one in minutes and start experimenting without fear of breaking anything real.
Serve a sudden surge of reads when thousands of users open the same notification at once.
Build confidence before the high-stakes reviews.
Practicing in the simulator makes trade-offs and system behaviour visible so you can explain your choices calmly.
Confidence
Rehearse system design conversations in a low-stress space so you feel ready for real reviews.
Trade-offs
See how latency, resilience, and cost respond as you adjust the diagram. Talk through the why, not just the what.
Thinking in systems
Watch how data and traffic move, where pressure builds, and how small tweaks ripple across the design.
Skills you can take back to work.
Each kata connects to the way you ship systems: making considered trade-offs, explaining impact, and iterating with feedback.
- Spot bottlenecks and resilience gaps before they turn into incidents.
- Practice explaining design choices using clear trade-offs and system behaviour.
- Build a habit of iterating quickly: change a component, rerun, compare.
- Gain confidence leading system design discussions with clear, evidence-backed reasoning.
Pick any scenario, make a few changes, and see feedback immediately. You can always reset and try again.