Chapters (26)
- 0:00What is System Design
- 2:27Design Patterns
- 4:07Live Streaming System Design
- 7:42Fault Tolerance
- 8:32Extensibility
- 9:49Testing
- 10:32Summarizing the requirements
- 11:27Core requirement - Streaming video
- 14:52Diagramming the approaches
- 17:12API Design
- 20:02Database Design
- 22:32Network Protocols
- 29:07Choosing a Datastore
- 32:57Uploading Raw Video Footage
- 34:37Map Reduce for Video Transformation
- 39:24WebRTC vs. MPEG DASH vs. HLS
- 41:55Content Delivery Networks
- 42:27High-Level Summary
- 44:48Introduction to Low-Level Design
- 47:00Video Player Design
- 49:17Engineering requirements
- 50:32Use case UML diagram
- 1:02:32Class UML Diagram
- 1:06:27Sequence UML Diagram
- 1:11:49Coding the Server
- 1:24:23Resources for System Design
Show the creator's full description
This course is a detailed introduction to system design for software developers and engineers.
Building large-scale distributed systems like Google, Facebook, Amazon, and Twitter requires an in-depth understanding of computer science principles. This allows systems to handle millions of users concurrently despite hardware failures.
We discuss the fundamental concepts of system design in this course like requirement selection, API design, Database Design, Network protocols, Fault-tolerance, design trade-offs, solution tradeoffs, and low-level design.
Gaurav Sen created this course. Check out his channel: @gkcs
You can learn about distributed systems and system design using the following resources:
Designing Data-Intensive Applications by Martin Kleppmann: https://amzn.to/3SyNAOy
System Design Simplified: https://interviewready.io
Let us know your thoughts and suggestions in the comments!
⭐️ Contents ⭐️
⌨️ (0:00:00) What is System Design
⌨️ (0:02:27) Design Patterns
⌨️ (0:04:07) Live Streaming System Design
⌨️ (0:07:42) Fault Tolerance
⌨️ (0:08:32) Extensibility
⌨️ (0:09:49) Testing
⌨️ (0:10:32) Summarizing the requirements
⌨️ (0:11:27) Core requirement - Streaming video
⌨️ (0:14:52) Diagramming the approaches
⌨️ (0:17:12) API Design
⌨️ (0:20:02) Database Design
⌨️ (0:22:32) Network Protocols
⌨️ (0:29:07) Choosing a Datastore
⌨️ (0:32:57) Uploading Raw Video Footage
⌨️ (0:34:37) Map Reduce for Video Transformation
⌨️ (0:39:24) WebRTC vs. MPEG DASH vs. HLS
⌨️ (0:41:55) Content Delivery Networks
⌨️ (0:42:27) High-Level Summary
⌨️ (0:44:48) Introduction to Low-Level Design
⌨️ (0:47:00) Video Player Design
⌨️ (0:49:17) Engineering requirements
⌨️ (0:50:32) Use case UML diagram
⌨️ (1:02:32) Class UML Diagram
⌨️ (1:06:27) Sequence UML Diagram
⌨️ (1:11:49) Coding the Server
⌨️ (1:24:23) Resources for System Design
🎉 Thanks to our Champion and Sponsor supporters:
👾 Nattira Maneerat
👾 Heather Wcislo
👾 Serhiy Kalinets
👾 Erdeniz Unvan
👾 Justin Hual
👾 Agustín Kussrow
👾 Otis Morgan
--
Learn to code for free and get a developer job: https://www.freecodecamp.org
Read hundreds of articles on programming: https://freecodecamp.org/news
❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp
Description and video by freeCodeCamp.org. This page is an independent companion view; the video is embedded from YouTube.