Last Updated: January 12, 2026
Welcome to a course on System Design Fundamentals. I'm delighted to have you here.
This course exists because I remember what it feels like to start from zero. In 2019, when I first decided to learn system design, I was completely stuck. Where do you begin? Which topics actually matter? How deep is deep enough?
Most resources I found fell into one of two buckets: either they were too shallow (just enough to get through an interview) or too academic (heavy on theory, light on real-world context). And the biggest gap was the “why”. Concepts were introduced, but rarely explained in a way that made them click.
So I built the course I wish I had.
My goal is to help you develop a strong, practical understanding of system design fundamentals and core distributed systems concepts, all in one structured place.
I have 8+ years of experience as a software engineer across full stack, backend, data engineering, and AI/ML. I’ve cleared system design interviews and worked at multiple big tech companies, including Amazon.
I got good at system by repeatedly interviewing, reading engineering blogs, and studying how scalable, data-intensive systems actually work in practice.
Over the last couple of years, I’ve published 400+ articles on system design and related topics across my newsletter and this website.
This course is a distilled, organized version of everything I’ve learned, designed to take you from beginner to advanced.
I’ve kept a significant portion of this course free so it can help the wider community. If you like the style and want to go deeper, or if you simply want to support my work, you can upgrade for full access.
Currently, the course is interactive and text-based. Over 2026, I plan to add videos for all the most important topics.
We’re improving the content every day. If you spot an issue or have feedback, let us know.
If you want to prepare for system design interviews and you’re short on time, checkout my new System Design Interview course.
It's a comprehensive interview-focused course covering 55 problems, 20 technology deep dives, and 20 common patterns that show up across multiple questions.
If your goal is to learn system design fundamentals (and not specifically prepare for interviews), I recommend starting with the current course first.
Lets go!