Skip to content

A curated index of system design videos covering fundamentals and real-world design problems, to help engineers prepare for interviews and improve software architecture skills.

License

Notifications You must be signed in to change notification settings

engineeringmeddium/System-Design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

System design

em banner System design is a vital aspect of preparing for software engineering role interviews—not just at MAANG companies, but across startups and other tech-driven organizations. It helps demonstrate your ability to architect scalable, reliable, and maintainable systems—skills that are increasingly expected from engineers at all levels. Even outside the interview context, learning system design sharpens your understanding of software architecture, trade-offs, and real-world problem solving. This repository indexes my YouTube videos to help you systematically build and strengthen your system design skills.

Fundamentals of system design

This series covers the essential building blocks every beginner should understand before diving into full system design problems. It lays the groundwork by explaining key concepts such as request flow in web systems, scaling strategies, load balancers, CDNs, caching, databases, message queues, and more. Understanding these fundamentals is crucial for making informed design decisions and building scalable, high-performance systems. Each topic is explained in a beginner-friendly way to help you develop a strong foundation in system design.

Topic name Video link
Basic flow of request in web system LINK
Horizontal and vertical scaling LINK
Load balancer LINK
Content delivery network LINK
Proxy servers: forward and reverse LINK
Message queues LINK
Caching mechanisms: write through and write back LINK
Databases LINK
Sharding LINK
Consistent hashing LINK
Non functional requirements LINK
CAP theorem LINK

System design interview preparation

This series dives into real-world system design questions commonly asked in technical interviews. Each video focuses on designing a specific large-scale system or distributed component—such as distributed queues, job schedulers, caching systems, and popular services like TinyURL and YouTube. These examples help you apply core design principles in practical scenarios, understand trade-offs, and structure your answers effectively. More videos will be added over time to expand the coverage of different system types and architectures.

Topic name Video link
Distributed message queues LINK
Distributed job scheduler LINK
Distributed caching (Redis, Memcached) LINK
URL shortening service (TinyURL, Bit.ly) LINK
Video streaming service (Youtube, Netflix) LINK

License

This repository is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

You are free to view and share the content with proper attribution, but modification, commercial use, or forking is not permitted.

Releases

No releases published

Packages

No packages published