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
-