Watch Intro Video

System Design Course

Course curriculum

  • 1

    Gmail Design

    • Scope and Requirement setting

      FREE PREVIEW
    • Requirements List

    • Chapter #1: Service Registration and Proxies

    • Architecture Diagram 1

    • Quiz #1

    • Chapter #2: Authentication & Global Caching

    • Architecture Diagram 2

    • Quiz #2

    • Chapter #3: API contracts & Versioning

    • Architecture Diagram 3

    • Quiz #3

    • Chapter #4: Sending, Tagging & Searching Emails

    • Architecture Diagram 4

    • Quiz #4

    • Chapter #5: Contacts & Groups

    • Architecture Diagram 5

    • Quiz #5

    • Capacity Estimations

    • API Contracts

    • Lesson Feedback

    • FAQs

  • 2

    Distributed Rate Limiting

    • The Oracle and the Timer Wheel

    • Quiz #1

    • Partitioning and Real-life Optimisations

    • Architecture Diagram

    • Quiz #2

    • Capacity Estimations

    • API Contracts

    • Lesson Feedback

    • Code Link

    • FAQs

  • 3

    Audio Search Engine

    • Design an algorithm for an Audio Search Engine

    • Quiz

    • Capacity Estimation

    • Lesson Feedback

    • FAQs

  • 4

    Calling App Design

    • Requirements List

    • Calling App Design

    • Quiz #1

    • Capacity Estimation

    • Architecture Diagram

    • API Contracts

    • FAQs

    • Concept #1: Breaking calls into dialogs

    • Concept #2: The state machine

    • Concept #3: Charging Users

    • Concept #4: Consistent Hashing for caching call state

    • Quiz #2

    • Lesson Feedback

    • FAQs #2

  • 5

    Low Level Design: Payment Tracking App

    • Problem Statement

    • Defining objects states and behaviors

    • Simplified Balances algorithm

    • Quiz 1

    • APIs and coding requirements

    • Low Level Design

    • Quiz 2

    • Coding: Building the service skeleton and defining objects

    • Coding: Algorithm

    • Coding: Test cases

    • Conclusion and Tips

    • FAQs

    • Code Link and Diagrams

  • 6

    Machine Coding: Cache

    • Machine Coding Round Intro

    • #1: Caching: Engineering requirements

    • #2: Read your own writes

    • #3: Defining the core requirements

    • #4: Asynchronous processing: Keeping threads available

    • #5: View Consistency through thread assignment

    • Code #1: Code skeleton for 'Get' and 'Set'

    • Code #2: Setting up fast evictions

    • Code #3: Thread Assignment and updating GET + SET

    • Code #4: Hot loading and Request Collapsing

    • [on the way] Code #5: Testing concurrent data structures

    • Code Link and Diagrams

  • 7

    Machine Coding an Event Bus

    • What is an event bus?

    • Breaking down engineering requirements

    • The mechanics of the bus

    • Why use threads?

    • Quiz #1

    • Code Download

    • Code Skeleton and using an extensible Retry Algorithm

    • The Keyed Executor

    • Pull and Push Subscribers

    • Defining the data structures in the bus

    • Wrapper Classes

    • Quiz #2

    • Coding the tests

    • Quiz #3

    • Conclusion

    • LLD Diagram

    • Chapter Feedback

Testimonials

Ashish Vasava

Product Manager at Cognistx AI, Pittsburgh

This course is awesome! It helped me understand how large scale systems work. Definitely worth it if your looking to prepare for interviews or even in general :)

Shalin Shah

Software Engineer at Grab, Singapore

Overall, an informative course with interesting topics and in-depth explanation in a short amount of time.

Jignesh Jain

SDE II at Uber, Hyderabad

Great work! Must buy course to prepare for an interview.

Get started!

Buy