Unlimited access to the system design interview course that will make a difference in your next interview.

The system design interview is considered to be the most complex and most difficult technical job interview by many. The questions are usually open-ended and unclear without a standard or correct answer. 

This course provides a step-by-step framework on how to tackle a system design question. We take the time. We go slow. We draw lots of diagrams and use a lot of examples.

Course curriculum

  • 1

    Forward

    • Welcome

  • 2

    Chapter 1: Scale From Zero to Millions of Users

    • Single server setup

    • Database

    • Vertical scaling vs horizontal scaling

    • Load balancer

    • Database replication

    • Cache

    • Content delivery network (CDN)

    • Stateless web tier

    • Data centers

    • Message queue

    • Logging, metrics, automation

    • Database scaling

    • Reference materials

  • 3

    Chapter 2: Back-of-the-envelope Estimation

    • Power of two

    • Latency numbers every programmer should know

    • Availability numbers

    • Example

    • Tips

    • Reference materials

  • 4

    Chapter 3: A Framework for System Design Interviews

    • A 4-step process for effective system design interview

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

  • 5

    Chapter 4: Design a Rate Limiter

    • Introduction

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

    • Reference materials

  • 6

    Chapter 5: Design Consistent Hashing

    • The rehashing problem

    • Hash space and hash ring

    • Hash servers

    • Hash keys

    • Server lookup

    • Add a server

    • Remove a server

    • Two issues in the basic approach

    • Virtual nodes

    • Find affected keys

    • Wrap up

    • Reference materials

  • 7

    Chapter 6: Design a Key-value Store

    • Understand the problem and establish design scope

    • Single server key-value store

    • Distributed key-value store

    • System components

    • Data partition

    • Data replication

    • Consistency

    • Handling failures

    • System architecture diagram

    • Write path

    • Read path

    • Summary

    • Reference materials

  • 8

    Chapter 7: Design a Unique Id Generator in Distributed Systems

    • Introduction

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

    • Reference materials

  • 9

    Chapter 8: Design a URL Shortener

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

    • Reference materials

  • 10

    Chapter 9: Design a Web Crawler

    • Introduction

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

    • Reference materials

  • 11

    Chapter 10: Design a Notification System

    • Introduction

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

    • Reference materials

  • 12

    Chapter 11: Design a News Feed System

    • Introduction

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

    • Reference materials

  • 13

    Chapter 12: Design a Chat System

    • Introduction

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

    • Reference materials

  • 14

    Chapter 13: Design a Search Autocomplete System

    • Introduction

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

    • Reference materials

  • 15

    Chapter 14: Design YouTube

    • Introduction

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

    • Reference materials

  • 16

    Chapter 15: Design Google Drive

    • Introduction

    • Step 1 - Understand the problem and establish design scope

    • Step 2 - Propose high-level design and get buy-in

    • Step 3 - Design deep dive

    • Step 4 - Wrap up

    • Reference materials

  • 17

    Chapter 16: The Learning Continues

    • Real-world systems

    • Company engineering blogs

  • 18

    Afterword

    • Congratulations

About the course

This text-based course makes your system design interview preparation easier. It is the perfect way to start your journey.

- Better than watching videos. Reading rich text is faster than watching videos.

- Easy to track progress. You can track progress easily in this course.

- Mobile friendly. You can easily read the content on mobile phones and tablets.

The same content is also available as eBook and paperback on Amazon (https://tinyurl.com/y7d3ltbc), but we highly recommend you take the course instead as the content will be updated here first.

Click the button below to read free chapters of the course.

Get Started

Get unlimited access to the course.

FAQ

  • Can I preview the course before I buy?

    The course has free preview chapters. In addition, you can view the course curriculum.

  • What payment methods do you support?

    We support all major credit and debit cards, as well as PayPal.

  • Is my payment secure?

    Yes, payment is handled directly by Stripe or PayPal. We do not store any payment data.

  • Where can I go for help?

    If you have any questions about the course, please send an email to systemdesigninsider@gmail.com

  • I own the system design interview book. Can I get this course for free?

    The book and the course are separate products, so we don't offer discounts or free offering.

  • Do I need to purchase the system design Interview book to take this course?

    No. This course and the book currently have the same content, but the course will be updated more frequently. Taking the course is preferred.