Case Studies for System Design Interviews
4.1 (14 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
2,467 students enrolled

Case Studies for System Design Interviews

Prepare for the system design interviews.
4.1 (14 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
2,467 students enrolled
Created by Erdem Salihoğlu
Last updated 5/2020
English
English
Current price: $13.99 Original price: $19.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 2.5 hours on-demand video
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Prepare for the system design interviews.
  • Practice with questions and answers on the design of sample software systems.
  • Get familiar with several fundamental system design techniques and concepts.
  • Develop your skills on designing software systems.
Course content
Expand all 37 lectures 02:15:54
+ Geofencing Solution
13 lectures 52:37
Effective and Battery Efficient Service
02:36
High Level Design
07:01
Traffic on Geofences and Notifications Services
02:51
Handle High Volume of Traffic
02:31
In-Process vs Distributed Cache
04:54
Keep Client Up to Date: Polling - Push
04:51
Integrations: API - Webhook
06:45
Webhook - Failed Requests
06:04
Deduplication of Events
01:49
Additional Feature
01:42
+ Instant Messaging Solution
12 lectures 42:02
Introduction
01:28
Interactions
03:28
High Level Design
02:53
Scalable Service Design
02:00
On Message History Data
05:23
Sharding - Time Ranges
04:29
Sharding - Hashing
06:25
Where to Implement Sharding Logic
02:18
Fault Tolerance of the Message History Database
01:33
Alternative Design for Message History
02:46
Message Delivery - Long Polling
05:51
Message Delivery - WebSocket
03:28
+ Mobile Push Notification Service
11 lectures 39:56
Introduction
02:36
Interactions
06:33
High Level Design
04:51
Size of Segmentation Data
02:33
Analyze Writes to Segmentation Data
02:42
Fast Data Retrieval
02:44
Manage Segmentation Data
04:47
Prevent Operators to Overload the System
02:30
Communication Between Notification and Delivery Subsystems
02:17
Delivery Subsystem - Push Provider
01:49
Propose Features for Push Provider API
06:34
Requirements
  • Background on software development.
Description

System design is part of the technical interview process in some companies. It is often a brainstorming session between the interviewer and the interviewee about the design of a software system.

Format of the Course

In this course, we study the design of a set of selected software systems with a top-down approach. In each case, we start by defining the requirements, then do a high level design of the system, and then design some of the subsystems.

The discussions are driven by questions. After each question, you can pause the video and give your own answer to practice for system design interviews. After each question, I give an answer based on my opinion. Since I intent to teach the concept being discussed, my answer might be longer than a regular answer given in an interview.

Design questions might be open-ended and might have more than one answer.

For the efficiency of the course, and not to talk about the same concept again and again, each case will include questions on selected concepts.

Concepts and Techniques

During this journey, you will encounter both domain specific questions and questions on several design techniques and concepts, such as:

  • High Level Design

  • Battery Efficiency

  • Request Traffic Analysis

  • Data Analysis

  • Stateless Services

  • Caching

  • Sharding

  • Fast Data Retrieval

  • Webhooks

  • Long Polling

  • WebSocket

  • Data Management

  • Preventing Overload

  • ...

Who this course is for:
  • Anyone preparing for system design interviews.