Systems Design Foundations

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!

Tutorial Bar
Logo