0% found this document useful (0 votes)
16 views

Interviewready.io - System Design Simplified

Uploaded by

Ankur Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Interviewready.io - System Design Simplified

Uploaded by

Ankur Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

System Design Simplified

├── 0. Prerequisites
│ ├── 10. Anomaly Detection
│ │ └── 01. Anomaly Detection.mp4
│ ├── 10. Instagram Design
│ │ ├── 01. Requirements.mp4
│ │ ├── 02. Designing the Data Schema.mp4
│ │ ├── 03. Following Users.mp4
│ │ ├── 04. User Feed Service.mp4
│ │ └── 05. Scaling the Instagram news feed.mp4
│ ├── 11. Netflix Movie Onboarding
│ │ ├── 01. Video Processing.mp4
│ │ └── 02. ISP Synergy.mp4
│ ├── 12. Interview Tips
│ │ ├── 01. System Design Tips.mp4
│ │ └── 02. Dos and Don'ts.mp4
│ ├── 14. System Design of a Coding Judge like SPOJ
│ │ └── 01. Online Judge.mp4
│ ├── 1. Basics
│ │ ├── 01. Monoliths vs Microservices.mp4
│ │ ├── 02. Horizontal vs Vertical Scaling.mp4
│ │ ├── 03. Load Balancing.mp4
│ │ ├── 04. An introduction to distributed systems.mp4
│ │ ├── 06. Single Point of Failure.mp4
│ │ ├── 07. Sharding.mp4
│ │ ├── 09. Service discovery and Heartbeats.mp4
│ │ ├── 10. Capacity Planning and Estimation: How much data does YouTube store
daily?.mp4
│ │ └── 11. Content Delivery Networks.mp4
│ ├── 2. API Design
│ │ ├── 01. API Design Goals.mp4
│ │ └── 02. API Design in Practice.mp4
│ ├── 3. Messaging and Event Handling
│ │ ├── 01. The Message Queue: Problem Statement.mp4
│ │ ├── 02. Asynchronous processing: benefits.mp4
│ │ ├── 03. Publisher Subscriber Models.mp4
│ │ ├── 04. Event Driven Architectures.mp4
│ │ ├── 05. Event Driven Architectures - Advantages.mp4
│ │ └── 06. Event Driven Architectures - Disadvantages.mp4
│ ├── 4. Consistency vs. Availability
│ │ ├── 01. Distributed data consistency.mp4
│ │ ├── 02. Data Consistency across Continents.mp4
│ │ ├── 03. Leader-follower architectures.mp4
│ │ └── 04. Tradeoffs - 2 phase commit protocol.mp4
│ ├── 5. NoSQL databases
│ │ ├── 01. Difference between SQL and NoSQL.mp4
│ │ ├── 02. Cassandra Internals.mp4
│ │ ├── 03. Quorom.mp4
│ │ ├── 05. Write Heavy DB Design.mp4
│ │ ├── 06. Write Heavy DB Design - Merging Sorted String Tables.mp4
│ │ └── 07. Write Heavy DB Design - Query optimisations.mp4
│ ├── 6. Location Based Databases
│ │ ├── 01. Location Representation.mp4
│ │ ├── 02. Data Structure - Quad Tree.mp4
│ │ └── 03. Range Queries and Hilbert Curve.mp4
│ ├── 7. Monoliths to Microservices Migration
│ │ ├── 01. Motivation.mp4
│ │ ├── 02. Infrastructure Requirements.mp4
│ │ └── 03. Practical considerations.mp4
│ ├── 8. Containers
│ │ ├── 01. Containers: A friendly Introduction.mp4
│ │ └── 02. Containers: Usecases.mp4
│ ├── 8. WhatsApp System Design
│ │ ├── 01. System Requirements.mp4
│ │ ├── 02. One to one messaging.mp4
│ │ ├── 03. Last Seen Timestamps.mp4
│ │ └── 04. Group Messaging.mp4
│ └── 9. Tinder System Design
│ ├── 01. Requirements.mp4
│ ├── 02. Image Storage: Files vs. Database BLOB.mp4
│ ├── 04. Profile Creation and Authentication.mp4
│ ├── 05. One to One chat messaging.mp4
│ ├── 07. Matching right-swiped users.mp4
│ └── 08. Serving recommendations to users.mp4
├── 1. Course Walkthrough
│ └── 1. How do I use this course?
│ └── 01. What do we offer?.mp4
├── 2. Fundamentals
│ ├── 10. 10. System Design Tradeoffs
│ │ ├── 01. Introduction to design tradeoffs.mp4
│ │ ├── 02. Pull vs. Push Architectures.mp4
│ │ ├── 03. Memory vs. Latency.mp4
│ │ ├── 04. Throughput vs. Latency.mp4
│ │ ├── 05. Consistency vs. Availability.mp4
│ │ ├── 06. Latency vs. Accuracy.mp4
│ │ ├── 07. SQL vs. NoSQL databases.mp4
│ │ └── 08. Relations Between Tradeoffs.mp4
│ ├── 11. 11. Distributed Consensus with Paxos
│ │ ├── 01. The Problem of Distributed Consensus.mp4
│ │ ├── 02. Basic Algorithm.mp4
│ │ ├── 03. Improving the algorithm.mp4
│ │ ├── 04. Termination Conditions.mp4
│ │ └── 05. Practical Considerations.mp4
│ ├── 1. 1. Databases Deep Dive
│ │ ├── 01. What are Databases?.mp4
│ │ ├── 02. Storage and Retrieval.mp4
│ │ ├── 03. What is a NoSQL database?.mp4
│ │ ├── 04. Types of Databases: Graph, TimeSeries and Object.mp4
│ │ └── 05. What database should you choose?.mp4
│ ├── 12. 12. Observability in Distributed Systems
│ │ ├── 01. Introduction to Observability.mp4
│ │ ├── 02. Logging - Best Practices.mp4
│ │ ├── 03. Monitoring Metrics.mp4
│ │ ├── 04. Anomaly Detection: Holt-Winters Algorithm.mp4
│ │ ├── 05. Root Cause Analysis.mp4
│ │ └── 06. Conclusion to Observability.mp4
│ ├── 2. 2. Consistency in Distributed Systems
│ │ ├── 01. What is Data Consistency?.mp4
│ │ ├── 02. Linearizable Consistency.mp4
│ │ ├── 03. Eventual Consistency.mp4
│ │ ├── 04. Causal Consistency.mp4
│ │ ├── 05. Quorum.mp4
│ │ ├── 06. Data Consistency Levels Tradeoffs.mp4
│ │ ├── 08. Transaction Isolation Levels - Read Uncommitted Data.mp4
│ │ ├── 09. Read Committed.mp4
│ │ ├── 10. Repeatable Reads.mp4
│ │ ├── 11. Serializable Isolation Level.mp4
│ │ ├── 12. Transaction Level Implementations.mp4
│ │ └── 14. Conclusion - Transaction Isolation.mp4
│ ├── 3. 3. Caches Deep Dive
│ │ ├── 01. Caching: Basics.mp4
│ │ ├── 02. Caching: Global vs. Local Cache.mp4
│ │ ├── 03. Global Cache Internals.mp4
│ │ ├── 05. Write Policies: Write Back Policy.mp4
│ │ ├── 06. Write Through Policy.mp4
│ │ ├── 07. Write Around Policy.mp4
│ │ └── 08. Replacement Policies: LRU, LFU and Segmented LRU.mp4
│ ├── 4. 4. Networks Deep Dive
│ │ ├── 01. Breakdown: The physical layer.mp4
│ │ ├── 02. Breakdown: The Routing Layer.mp4
│ │ ├── 03. Breakdown: The behavioral layer.mp4
│ │ ├── 05. Connecting to the internet: ISPs, DNS and everything in between.mp4
│ │ ├── 06. Internal routing: MAC addresses and NAT.mp4
│ │ ├── 08. HTTP, WebSockets, TCP and UDP.mp4
│ │ ├── 09. Communication Standards: REST, GraphQL and GRPC.mp4
│ │ ├── 10. Head of line blocking.mp4
│ │ └── 12. Video transmission: WebRTC and HTTP-DASH.mp4
│ ├── 5. 5. Database Replication
│ │ ├── 01. Primary Replica Architectures.mp4
│ │ ├── 02. WAL and Change Data Capture.mp4
│ │ └── 03. Write Amplification and Split Brain.mp4
│ ├── 6. 6. Database Migrations
│ │ ├── 01. Database Migrations.mp4
│ │ ├── 02. Migrating the Database.mp4
│ │ └── 03. Migration Across Regions.mp4
│ ├── 7. 7. Distributed Rate Limiting
│ │ ├── 01. The Oracle and the Timer Wheel.mp4
│ │ └── 03. Partitioning and Real-life Optimisations.mp4
│ ├── 8. 8. Security in distributed systems
│ │ ├── 01. Security aspects in distributed systems.mp4
│ │ ├── 02. Token Based Auth.mp4
│ │ ├── 03. SSO and OAuth.mp4
│ │ ├── 04. Access Control Lists and Rule Engines.mp4
│ │ ├── 06. Attack Vectors - Hackers, Developers and Code.mp4
│ │ └── 07. How videos are protected inside CDNs.mp4
│ └── 9. 9. Design an Audio Search Engine like Shazam
│ └── 01. Design an algorithm for an Audio Search Engine.mp4
├── 3. High Level Design
│ ├── 1. 1. Design an Emailing service like Gmail
│ │ ├── 01. Scope and Requirement setting.mp4
│ │ ├── 03. Chapter #1: Service Registration and Proxies.mp4
│ │ ├── 06. Chapter #2: Authentication & Global Caching.mp4
│ │ ├── 09. Chapter #3: API contracts & Versioning.mp4
│ │ ├── 12. Chapter #4: Sending, Tagging & Searching Emails.mp4
│ │ └── 14. Chapter #5: Contacts & Groups.mp4
│ ├── 2. 2. Chess Design: Building a highly scalable turn-based gaming website
│ │ ├── 01. Requirements of a chess website.mp4
│ │ ├── 02. Handling connections at scale.mp4
│ │ ├── 04. Consistent Hashing vs. Sharding.mp4
│ │ ├── 06. Connection related thundering herds.mp4
│ │ └── 08. Request Batching and Conclusion.mp4
│ ├── 3. 3. Hotstar: Live Video Streaming Design
│ │ ├── 01. Live Streaming Requirement Breakdown.mp4
│ │ ├── 02. Video Ingestion and Transformation.mp4
│ │ ├── 04. Transferring processed videos to end users.mp4
│ │ └── 09. Virtual Advertising for live sports events.mp4
│ ├── 4. 4. Google Docs: Collaborative editor design
│ │ ├── 01. Google Docs Requirements.mp4
│ │ ├── 02. Document Schema.mp4
│ │ ├── 03. Storing Documents.mp4
│ │ ├── 04. Version History.mp4
│ │ ├── 05. Avoiding Thundering Herds in Crons.mp4
│ │ ├── 06. Compression and Caching.mp4
│ │ ├── 07. Concurrent Writes with Locks.mp4
│ │ ├── 08. Operational Transform Overview.mp4
│ │ └── 09. Permission Management.mp4
│ ├── 5. 5. Design a Cab Aggregator App like Uber
│ │ ├── 01. Requirements of a cab aggregator.mp4
│ │ ├── 02. Static Pricing of Rides.mp4
│ │ ├── 03. Ride Matching.mp4
│ │ ├── 04. Calculating Estimated Time of Arrival.mp4
│ │ └── 05. Matching Drivers with Live Rides.mp4
│ ├── 6. 6. Design a Location Based Service like Google Maps
│ │ ├── 01. Requirements of a Map application.mp4
│ │ ├── 02. Routing Challenges in Maps.mp4
│ │ ├── 03. Partitioning Algorithm: Splitting the graph into regions.mp4
│ │ ├── 04. Finding the shortest path - A* search.mp4
│ │ ├── 05. GeoHash and other proximity filters.mp4
│ │ ├── 06. Detecting traffic jams and broadcasting updates.mp4
│ │ └── 07. Calculating an accurate and efficient estimated time of arrival.mp4
│ ├── 7. 7. WhatsApp Calling App
│ │ ├── 02. Calling App Design.mp4
│ │ ├── 03. Concept #1: Breaking calls into dialogs.mp4
│ │ ├── 04. Concept #2: The state machine.mp4
│ │ ├── 06. Concept #3: Charging Users.mp4
│ │ └── 07. Concept #4: Consistent Hashing for caching call state.mp4
│ └── 8. 8. Map Reduce and Stream Processing
│ ├── 01. Converting data sources to a lake.mp4
│ ├── 04. The Map Reduce Architecture.mp4
│ ├── 06. Fault tolerance and engineering optimizations.mp4
│ ├── 09. Real time analytics.mp4
│ └── 11. Ranking restaurants in real time and batch.mp4
├── 4. Low Level Design
│ ├── 11. 10. The Strategy Design Pattern
│ │ ├── 01. Unit Tests and Object Pools.mp4
│ │ ├── 02. Setting Timed Test Cases.mp4
│ │ ├── 03. Fixing bugs in Game Logic and Factories.mp4
│ │ └── 04. Strategy Design Pattern: Implementation and Benefits.mp4
│ ├── 1. 1. Building a game engine
│ │ ├── 01. Introduction to Low Level Design Series.mp4
│ │ ├── 02. The need for good coding practices.mp4
│ │ ├── 03. Setting Requirements and Objects.mp4
│ │ ├── 04. API and Package Structuring.mp4
│ │ ├── 05. Parent vs. Base class functions.mp4
│ │ ├── 06. Setting the main method.mp4
│ │ └── 07. Debugging the code.mp4
│ ├── 2. 2. Single Responsibility Principle
│ │ ├── 07. Defining responsibilities of AI and Game classes.mp4
│ │ ├── 08. Unit Tests.mp4
│ │ └── 09. Benefits of Single Responsibility Principle.mp4
│ ├── 3. 3. Exploring Moves for the AI
│ │ ├── 10. Looking for a Smart AI.mp4
│ │ ├── 11. The need for stateless move exploration.mp4
│ │ └── 12. Prototype Design Pattern.mp4
│ ├── 4. 4. Dont Repeat Yourself
│ │ ├── 13. DRY: Dont Repeat Yourself.mp4
│ │ ├── 14. Iterator Design Pattern.mp4
│ │ └── 15. DRY: Extracting Common Pieces.mp4
│ ├── 5. 5. Open-Closed Principle
│ │ ├── 16. New feature request: Find Forks!.mp4
│ │ ├── 17. Building a Rule Engine.mp4
│ │ ├── 18. Builder Design Pattern.mp4
│ │ └── 19. Summary: Open-Closed Principle.mp4
│ ├── 6. 6. Liskov Substitution Principle
│ │ ├── 20. New feature request: Timers!.mp4
│ │ ├── 21. Encapsulating responsibilities in objects.mp4
│ │ └── 22. Extracting Nested Objects.mp4
│ ├── 7. 7. Interface Segregation and Dependency Inversion
│ │ ├── 23. Having Multiple AI personalities.mp4
│ │ ├── 24. Singleton and Null Object Design Pattern.mp4
│ │ ├── 25. Chain of Responsibility Pattern.mp4
│ │ ├── 26. Interface Segregation Principle.mp4
│ │ └── 27. Dependency Inversion Principle.mp4
│ ├── 8. 8. Memory and Code Optimizations
│ │ ├── 28. New feature request: Undo Moves with Momento!.mp4
│ │ ├── 29. Proxy and Flyweight Design Pattern.mp4
│ │ └── 30. The Labyrinth: Five Level Deep For-Loops!.mp4
│ └── 9. 9. Test Driven Changes
│ ├── 31. State and Strategy Design Pattern.mp4
│ ├── 32. Writing Tests for Timed Games.mp4
│ └── 33. Factory Design Pattern.mp4
├── 5. Machine Coding
│ ├── 1. 1. Low Level Design: Payment Tracking App like Splitwise
│ │ ├── 01. Problem Statement.mp4
│ │ ├── 02. Defining objects states and behaviors.mp4
│ │ ├── 03. Simplified Balances algorithm.mp4
│ │ ├── 06. APIs and coding requirements.mp4
│ │ ├── 08. Low Level Design.mp4
│ │ ├── 09. Coding: Building the service skeleton and defining objects.mp4
│ │ ├── 10. Coding: Algorithm.mp4
│ │ ├── 11. Coding: Test cases.mp4
│ │ └── 12. Conclusion and Tips.mp4
│ ├── 2. 2. Machine Coding a Cache
│ │ ├── 02. #1: Caching: Engineering requirements.mp4
│ │ ├── 03. #2: Read your own writes.mp4
│ │ ├── 04. #3: Defining the core requirements.mp4
│ │ ├── 05. #4: Asynchronous processing: Keeping threads available.mp4
│ │ ├── 06. #5: View Consistency through thread assignment.mp4
│ │ ├── 08. Code #1: Code skeleton for 'Get' and 'Set'.mp4
│ │ ├── 09. Code #2: Setting up fast evictions.mp4
│ │ ├── 10. Code #3: Thread Assignment and updating GET + SET.mp4
│ │ └── 11. Code #4: Hot loading and Request Collapsing.mp4
│ ├── 3. 3. Machine Coding an Event Bus
│ │ ├── 01. What is an event bus?.mp4
│ │ ├── 02. Breaking down engineering requirements.mp4
│ │ ├── 03. The mechanics of the bus.mp4
│ │ ├── 04. Why use threads?.mp4
│ │ ├── 07. Code Skeleton and using an extensible Retry Algorithm.mp4
│ │ ├── 08. The Keyed Executor.mp4
│ │ ├── 09. Pull and Push Subscribers.mp4
│ │ ├── 10. Defining the data structures in the bus.mp4
│ │ ├── 11. Wrapper Classes.mp4
│ │ ├── 13. Coding the tests.mp4
│ │ └── 14. Conclusion.mp4
│ └── 4. 4. Machine Coding a Rate Limiter
│ ├── 01. What will you learn.mp4
│ ├── 02. Rate Limiter Overview.mp4
│ ├── 03. Implementation Details.mp4
│ ├── 04. API Breakdown.mp4
│ ├── 05. Models, Controllers, Packages and ThreadPools.mp4
│ ├── 06. Reading and Writing Data.mp4
│ ├── 07. RateLimiter Client Setup.mp4
│ ├── 09. Sliding Window Algorithm Setup.mp4
│ ├── 10. Dependency Inversion.mp4
│ ├── 11. Sliding Window with Backpressure.mp4
│ └── 12. Clearing Stale Entries in Sliding Window.mp4
└── 6. Meeting Recordings
└── 1. Zoom Meets
├── 01. January 2022: Datastores and their Tradeoffs .mp4
├── 02. March 2022: Threads and Request Collapsing.mp4
├── 03. April 2022: Chess Low Level Design.mp4
├── 04. May 2022: Message Queues.mp4
├── 05. June - Design a Payment System.mp4
├── 06. July - Caching, Paxos and Zookeeper.mp4
├── 07. Data Corruption and Alerts Monitoring.mp4
├── 08. Caching: Doubts and Clarifications.mp4
├── 09. August - Database Doubts.mp4
├── 10. Design a subscription manager.mp4
├── 11. Rule Engines.mp4
├── 12. October - Kafka Internals.mp4
├── 13. October 2022 - Implementing a File System.mp4
├── 14. Pessimistic and Optimistic Locking.mp4
├── 15. Producers and Consumers: November Meet.mp4
├── 16. IRCTC Algorithm: December.mp4
├── 17. Google Docs and Chess Design Queries.mp4
├── 18. Jan 2023: DNS, CDNs, and everything in between.mp4
├── 19. Jan 2023: API design and other discussions.mp4
├── 20. Feb 2023: Permission Management System.mp4
├── 21. March 2023: Eventual Consistency Levels.mp4
├── 22. March 2023: Fetch top K hits in a distributed system.mp4
├── 23. April 2023: Distributed Consensus and Load Balancing.mp4
├── 24. April 2023: Graph Databases with Facebook TAO.mp4
├── 25. May 2023: The SideCar Pattern.mp4
├── 26. May 2023: Permission Management.mp4
├── 27. June 2023: Clients, Comments and APIs.mp4
├── 28. July 2023: Design an Event Handler.mp4
├── 29. July 2023: Highly Scalable Concurrent Booking Systems.mp4
├── 30. August 2023 - Google Calendar Low-Level Design.mp4
├── 31. August 2023 - Designing IRCTC.mp4
├── 32. September - Design Judge Launch.mp4
├── 33. September - Tech in a startup.mp4
├── 34. October - Live Watch Party Design.mp4
├── 35. November - Memcached Reading.mp4
├── 36. November - Memcached Revision.mp4
├── 37. December: Memcached Paper Reading - 2.mp4
├── 38. Jan: Google Interview Question - Top 10 Songs.mp4
├── 39. Feb: Google Zanzibar - Part 1.mp4
└── 40. Feb: Google Zanzibar - Part 2.mp4

58 directories, 288 files

You might also like