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

Interviewready.io - System Design Simplified

Uploaded by

Ankur Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Interviewready.io - System Design Simplified

Uploaded by

Ankur Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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