How to use this site
This site is for engineers with roughly 1 to 8 years of experience who are preparing for SDE II to Senior interviews, or who want to understand design beyond memorized templates. It assumes you are comfortable in at least one of Java, Python or TypeScript.
How every page is built
Section titled “How every page is built”- Every decision states its tradeoff. Look for the orange Tradeoff boxes.
- Every worked problem starts from requirements. The step bar at the top of a problem shows the framework: requirements, estimates, API, data model, high level design, deep dives, bottlenecks, tradeoffs.
- Diagrams are explorable. Scroll or pinch to zoom, drag to pan, or open them fullscreen.
- Code follows your language. Pick Java or Python on any code block and every other block on the site follows.
Suggested path
Section titled “Suggested path”- Low Level Design foundations, then two or three patterns.
- One LLD worked problem, such as the parking lot.
- System design building blocks, starting with caching.
- One system design worked problem, such as the URL shortener.