Software Architecture & System Design Practical Case Studies
- Description
- Curriculum
- FAQ
- Reviews
Do you want to gain real-life experience in modern Software Architecture and the design of Large Scale Systems?
Are you preparing for a System Design Interview and want to guarantee your success?
You came to the right place!
This course is a unique collection of Large Scale System Design Case Studies similar to real systems run by companies like Google, Amazon, Netflix, Meta, Slack, etc.
In each case study, we will:
-
Start with an ambiguous, high-level requirement to design and architect a brand new, real-life system.
-
Follow a methodical, step-by-step system design process.
-
Apply Industry-Proven Software Architecture techniques and patterns successfully used by top tech companies.
-
Finish with software architecture diagrams, well-defined technical requirements, and API.
Throughout the course, you will practice how to design and architect complex, large-scale systems that scale to millions of users and handle petabytes of data daily.
All the case studies were carefully picked to practice a wide range of software architecture techniques and patterns, which you can later apply to your projects or System Design Interviews.
By the end of the course, you will:
-
Be fully prepared for an upcoming System Design Interview.
-
Gain real practical experience in designing modern, highly scalable, fault-tolerant, and performant systems.
-
Have full confidence in applying the system design process to tackle any system design problem in real life.
This course is perfect for you if:
-
You already know the fundamentals of Software Architecture and want real, practical experience in designing complex, large-scale systems from scratch
-
You want to become a Software Architect / Cloud Architect or a senior member of technical staff, such as a Senior / Principal Software Engineer or Technical Lead.
-
You are preparing for a System Design Interview and want to stun your interviewer with the depth of your software architecture knowledge and stand out from other candidates who memorized different tricks and watched a bunch of YouTube videos.
So what are you waiting for? 🙂
Let’s get started!
FAQ
– How is this course different from other System Design or Software Architecture courses?
Many courses teach the fundamental building blocks for system design and software architecture. However, just knowing those building blocks is not enough. Real-life large-scale systems are very complex, and designing them takes practice and experience. This course is all about practice and gaining that experience. So, when you are faced with a real project where you need to apply your software architecture and system design skills, you know exactly what to do and what process to follow.
– Does this course involve coding?
No! This course is on practical software architecture and system design, which is universal and is not tied to a specific programming language, cloud vendor, or technology stack. Throughout the course, you will master the important skill of thinking on a higher-level abstraction, which is critical for success in your company’s system design interviews and technical leadership.
– Is this course only for Software Architects?
No! This course is for software engineers on any level who aspire to accelerate their career growth and practice software architecture and system design. This course is also perfect for people with technical leadership positions, such as Senior/Principle/Staff Engineers, Technical Leads, Technical Engineering Managers, or Software Architects, to practice and improve their skills. DevOps engineers, SREs, and QA engineers will also gain a lot of value from this course.
– Will this course cover any Cloud Computing concepts or Cloud Technologies?
Since in this course, we design and architect modern, large-scale systems, we use many cloud computing and distributed computing principles and patterns. Also, while this course doesn’t cover any particular cloud vendor or technology, all the software architecture diagrams can easily be implemented and deployed on any cloud vendor, such as Amazon Web Services (AWS), Google Cloud Provider (GCP), Microsoft Azure, and so on. To help you with that, each section contains links and resources to the relevant cloud vendors’ services and cloud technologies to help you apply the design to the relevant technology stack. Links to open-source solutions are also provided.
-
1Introduction to Software Architecture & System Design Case Studies
Introduction to solving large-scale design problems in software architecture.
Highlights the key concepts necessary that any software architect needs to know to be successful at software architecture and system design
Lays out the step-by-step system design process.
-
2Download Course Workbook
-
3System Design of a Highly Scalable Image Sharing Platform - Part 1
Covers the first 3 steps of the system design process for a scalable image-sharing social media platform. The first step is to gather the system requirements and define the system's API. The lecture then defines the functional and non-functional requirements, including scalability, availability, and performance, before moving on to the API's definition using a sequence diagram.
-
4System Design of a Highly Scalable Image Sharing Platform - Part 2
This lecture discusses the design process for a large-scale image-sharing social media platform, focusing primarily on the functional aspects of the system. The lecture covers the 4th step in the system design process where we
Define the high-level software architecture diagram
Follow the microservices architecture and event-driven architecture to fulfill the functional requirements and the previously defined API
-
5System Design of a Highly Scalable Image Sharing Platform - Part 3
The lecture covers the last step of the system design process to address the scalability, high availability, and performance of the system. Augments the previously defined software architecture diagram with all the necessary software architecture components and building blocks.
-
6System Design of a Highly Scalable Image Sharing Platform - Quiz
-
7Highly Scalable Image Sharing Platform - Additional Resources
-
8Software Architecture & System Design of a VOD Streaming Service - Part 1
Covers the first 3 steps of the design of a highly scalable video streaming platform, which includes capturing the requirements, sequence diagram, and system's API. Using this data, we can later continue the system design process and define the software architecture of the system.
-
9Software Architecture & System Design of a VOD Streaming Service - Part 2
Covers important system design decisions for delivering video streaming services to millions of users on a global scale.
Defines the software architecture of the system, following several software architecture styles such as microservices and software architecture patterns.
-
10Software Architecture & System Design of a VOD Streaming Service - Part 3
Covers the last part of the system design process. In this step of the design, we address the scalability, fault tolerance, and performance of the system to arrive at the final software architecture for a video streaming platform.
-
11Software Architecture & System Design of a VOD Streaming Service - Quiz
-
12VOD Streaming Solutions & Links to Relevant AWS, Google Cloud & Azure Services
-
13Software Architecture & System Design of a Real-Time Instant Messaging - Part 1
This is the first phase of the Software Architecture and System Design of a Real-Time Instant Messaging platform. In this phase, we capture all the requirements and define the system's API.
-
14Software Architecture & System Design of a Real-Time Instant Messaging - Part 2
The lecture first focuses on making some important system design decisions. Then we proceed to design and architect the system using microservices architecture and finish with a software architecture diagram that fulfills the functional requirements.
-
15Software Architecture & System Design of a Real-Time Instant Messaging - Part 3
This lecture addresses the system's nonfunctional requirements, such as scalability, high availability, and performance.
Here we make some important optimizations and add additional software architectural components.
By the end of the lecture, we finish with an end-to-end software architecture diagram for a large-scale, real-time instant messaging platform.
-
16Software Architecture & System Design of a Real-Time Instant Messaging - Quiz
-
17Real-Time Instant Messaging - Additional Resources
-
18System Design a Highly Scalable Typeahead Service for a Search Engine - Part 1
-
19System Design a Highly Scalable Typeahead Service for a Search Engine - Part 2
Covers important concepts of big data processing for the software architecture of a typeahead service.
The lecture concludes with a fully functional design and software architecture diagram.
-
20System Design a Highly Scalable Typeahead Service for a Search Engine - Part 3
In this lecture, we make some key performance and scalability optimizations for the typeahead service.
-
21System Design a Highly Scalable Typeahead Service for a Search Engine - Quiz
-
22Typeahead - Additional Resources to Cloud Vendors & Open Source Technologies
-
23Software Architecture & Design of a Scalable Rideshare Service - Part 1
-
24Software Architecture & Design of a Scalable Rideshare Service - Part 2
-
25Software Architecture & Design of a Scalable Rideshare Service - Part 3
-
26Software Architecture & Design of a Scalable Rideshare Service - Part 4
-
27Software Architecture & Design of a Scalable Rideshare Service - Part 5
-
28Software Architecture & Design of a Scalable Rideshare Service - Quiz
-
29Scalable Rideshare Service - Additional Resources