System Design for Beginners Course
Offered By: freeCodeCamp
Course Description
Overview
Dive into a comprehensive course on system design fundamentals for software developers and engineers. Explore essential concepts like requirement selection, API design, database design, network protocols, fault tolerance, and design trade-offs. Learn how to build large-scale distributed systems capable of handling millions of concurrent users. Examine a live streaming system design case study, covering high-level architecture and low-level implementation details. Practice creating UML diagrams, designing video players, and coding server components. Gain insights into technologies like WebRTC, MPEG DASH, HLS, and content delivery networks. Access additional resources for further learning in distributed systems and system design.
Syllabus
⌨️ What is System Design
⌨️ Design Patterns
⌨️ Live Streaming System Design
⌨️ Fault Tolerance
⌨️ Extensibility
⌨️ Testing
⌨️ Summarizing the requirements
⌨️ Core requirement - Streaming video
⌨️ Diagramming the approaches
⌨️ API Design
⌨️ Database Design
⌨️ Network Protocols
⌨️ Choosing a Datastore
⌨️ Uploading Raw Video Footage
⌨️ Map Reduce for Video Transformation
⌨️ WebRTC vs. MPEG DASH vs. HLS
⌨️ Content Delivery Networks
⌨️ High-Level Summary
⌨️ Introduction to Low-Level Design
⌨️ Video Player Design
⌨️ Engineering requirements
⌨️ Use case UML diagram
⌨️ Class UML Diagram
⌨️ Sequence UML Diagram
⌨️ Coding the Server
⌨️ Resources for System Design
Taught by
freeCodeCamp.org
Related Courses
API Design and Fundamentals of Google Cloud's Apigee API PlatformGoogle Cloud via Coursera API Development on Google Cloud's Apigee API Platform
Google Cloud via Coursera SAP Cloud Platform API Management
SAP Learning Developing APIs with Google Cloud's Apigee API Platform
Google Cloud via Coursera Building Modern Nodejs Applications on AWS
Amazon Web Services via edX