Systems Design Foundations - A Step-By-Step Approach [2023]
What you'll learn
- System Design Components - What tools do you need to design your system?
- System Design Components Choice - Which database to use when?
- System Design Framework - How do you standardize a framework that you can use to design any system?
- Case Study - WhatsApp
- Scale & Capacity Estimation
Requirements
- No specific requirements or prerequisites
Description
This course aims to provide you with a simplified overview of System Design Foundations and a design framework that helps you solidify your concepts. In this course we will cover the process you will follow for systems that need significantly high availability, high security, and low latency.
Imagine you are a chef of a well-known restaurant. You will need to master the art of selecting the right tools and ingredients. This selection process in itself should be well organized so you can make better decisions every day and deliver simple yet nourishing recipes to your guests. The process of system design is similar in a way and requires you to continuously master the art of understanding the problem statement, selecting the right components, and delivering a system to your customer that meets their requirements.
This is the first version of this course and more real-life use cases will soon be added to this course. My goal is to ensure people from all over the world are able to learn the fundamentals of system design and apply the same in their journey. There is no right or wrong design, it's just how we build one and the corresponding framework we use to cohesively connect all the pieces together.
You will benefit from this course if:
You have a genuine interest in improving your system design skills
You are preparing for an upcoming system design interview (TPM PM, Engineer, Architects)
You need to solidify your system design concepts
You are building a new system from scratch and you are looking for guidance
Below is an overview of the system design framework you will learn through this course:
System Design Goals
Functional Requirements (Features)
Non-Functional Requirements (Scale, Latency, Availability, Security, Reliability)
Traffic & Capacity Estimates
Choice of Database
High-Level Design
Bottlenecks & tradeoffs
Product Metrics (HEART)
WhatsApp Case Study
Hope you will enjoy this course!
Who this course is for:
- Those looking to hone their system design skills (All Levels)
Instructor
My name is Prathamesh and I’m a technologist & educator with a rich background in public safety technologies, robotics, computer networks & AI. I received my Master’s in Electrical Engineering from the University of Southern California and a Bachelor's in Electronics & Telecommunication Engineering from the University of Mumbai.
I have designed public safety technology solutions for both government and private organizations during my time at Motorola Solutions & Silicon Valley Startup, Cobalt Robotics. Some of my clients include governments of the US & UK, Dutch Telecom Giant KPN, Slack, General Motors, and the largest e-commerce company in the world.
My vision is to leverage my 8+ years of corporate and startup experience in the public safety systems engineering domain to foster innovation and create better tools and frameworks to help future technologists to become all-rounded engineers. And, by bringing real-life experience into academia, I hope to spark more fires in the hearts of young tech enthusiasts and empower them to solve the emerging social challenges through the power of technology.