In this technical handbook on system design, we've compiled resources shared during our study group sessions and community channel discussions in the Leopard community. Through this compilation, we aim to share the collective wisdom we've gathered on system design, hoping it will help you ace your technical interview process.
Online Whiteboard Tools
Excalidraw: Super simple and great for working together.
Miro: Packed with cool features for when you need to get fancy or work as a team.
Canva: online whiteboarding tool for easy visual collaboration and brainstorming.
Whimsical: A dynamic, collaborative workspace offering tools like mind maps, flowcharts, and wireframes to streamline team innovation and productivity.
Most Common System Design Interview Questions
Design a URL shortener (e.g. Bitly)
Design a social media website (e.g. Twitter)
Design a photo sharing app (e.g. Instagram)
Design a chatting service (e.g. Telegram, Slack, Discord)
Design a Collaborative Spreadsheet (e.g. Google Spreadsheet)
The RADIO Method for Tackling Problems
Requirements Exploration: Understand the problem thoroughly and determine the scope by asking a number of clarifying questions.
Architecture/High-level Design: Identify the key components of the product and how they are related to each other.
Data Model: Describe the various data entities, the fields they contain, and which component(s) they belong to.
Interface Definition (API): Define the interface (API) between components in the product, the functionality of each API, their parameters, and responses.
Optimizations and Deep Dive: Discuss about possible optimization opportunities and specific areas of interest when building the product.
Useful Study Materials
Books
System Design Interview - An Insider's Guide by Alex Xu (Suggested by Frances Jurek): A book recommended for understanding the nuances of system design interviews, offering strategies and examples.
Links
Grokking the System Design Interview (Suggested by Chidimma Onwuegbule): Suggested for those who want to master system design interview questions with structured learning.
System Design Interview An Insider’s Guide (Suggested by Chidimma Onwuegbule): a PDF of "System Design Interview - An Insider’s Guide" by Alex Xu on GitHub
Domain-Driven Design (Suggested by Chidimma Onwuegbule): Recommended for learning how to approach software development by connecting the implementation to a model based on the business domain.
The RADIO Framework (Suggested by Gonz Maldonado): A strategy for solving system design problems, focusing on reading, asking questions, designing, identifying bottlenecks, and optimizing.
How to study System Design Interviews by @elg0nz (Suggested by Gonz Maldonado): Advice on preparing for system design interviews with a focus on effective learning strategies.
Stop Parroting YouTube solutions in System Design Interviews (Suggested by Flavia Bastos): Encourages candidates to develop original solutions instead of repeating common ones found online.
A cheat sheet for system design: Provides a quick reference for key concepts in system design.
System Design Cheatsheet (Suggested by Noemie Lachman): Another quick-reference guide highlighting essential system design information.
My System Design Template - Leetcode: A template to help structure answers to system design questions in interviews.
A Senior Engineer's Guide to the System Design Interview: Offers advice tailored to senior engineers on navigating system design interviews.
System Design Interview Questions: A collection of questions to practice for system design interviews.
16 System Design Concepts I Wish I Knew Before the Interview: Shares crucial system design concepts valuable for interview preparation.
Frontend System Design Interview Overview: Focuses on system design from a front-end development perspective.
Front End System Design Guidebook by GreatFrontEnd: A comprehensive guide for front-end developers on system design.
System Design in a Hurry (Suggested by Austyn T.): a focused guide for rapid preparation in system design interviews, ideal for those looking to grasp essential concepts and strategies efficiently
My System Design Template - Leetcode: provides a comprehensive blueprint for system design interviews, detailing step-by-step processes from initial feature analysis to deep technical justifications
Websites
Interviewing.io (Suggested by Tiffany Williams): A platform for practicing technical interviews with engineers from top companies, offering anonymous and free sessions.
Videos
URL shortener system design (Suggested by Alexandra Dobkin): A video explaining how to design a URL shortening service like Bitly.
System Design Fight Club (Suggested by Nicole Epp): A series where different system design approaches are debated and assessed.
TinyURL System Design | URL Shortner System Design Interview Question (Suggested by Alexandra Dobkin): Walks through the process of designing a URL shortening service for interview scenarios.
System Design Interview Prep by Exponent (Suggested by Wai Chung Hon): a mock interview focusing on the system design of a Reddit-like platform, providing insights into the thought process and techniques used in technical interviews
Asking for Help from the Community on System Design Interviews
When you're prepping for system design interviews, remember that you're not alone! The Leopard community is here to help. Here’s how you can tap into the collective knowledge and support:
Ask: If you’ve got a question, don’t hesitate to ask in our community channels. A lot of the community members are ready to jump in with answers.
Share Your Work: Got a system design you’re puzzling through? Share it and ask for feedback from the community.
Join Study Sessions: We have study group sessions every Wednesday at 4:00 PM PST. It’s a great way to learn together and meet other community members.
Find a Study Buddy: Look for a study buddy in our study buddy thread to help you out!
Share Your Experience: Share how your interview went— the good, the bad, and everything in between. We’re all here to support each other and share tips for next time.