Pragmatic System Design

4h 28m 50s
English
Paid

Course description

This course aims to prepare you for system design interviews, as well as discusses how you could apply this knowledge in your day to day job. In real world, most of the engineers don't get to design new systems often. Some don't get to design them at all. In many companies architecture is something only a few individuals do regularly. But when it comes to interviewing, we suddenly expect everyone to be master in system design.

Read more about the course

This course tries to cover some of the basic topics, as well as provide you with my approach to some of the most common system design interview questions.

Second purpose of this course is to provide senior engineers with an alternative view to system design. What I see in the industry is that we don't discuss design among ourselves much. It becomes a sensitive topic, because no real world design is perfect. And that's something I hope to change.

There are two ways I suggest to consume the course. If you have plenty of time, just watch it start to finish. I tried to construct it in a logical order, so you will accumulate more and more confidence as you go.

Alternatively, if you are short on time, or if you aren't preparing actively for interviews at the moment, you can start with the design videos, and if you aren't familiar with one of the topics I discuss, there should be either a video for that or a link to a relevant article.

The goal of system design interview is usually to cover multiple topics. It evaluates the breath of knowledge first, depth of knowledge second. For that reason, I tried to keep the theoretical part on each topic rather brief. That is - it's as deep as I expect as an interviewer from my candidates.

Finally, I will repeat myself and say that no design is perfect. There are always tradeoffs, there are always compromises that you must make. And each design is personal. It depends on what are your areas of expertise. When you watch my videos, please don't treat them as the ultimate way I would design a system, but more as a collection of ideas of how to approach the topic.


Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 85 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Pragmatic System Design

0:00
/
#1: Introduction to Pragmatic System Design

All Course Lessons (85)

#Lesson TitleDurationAccess
1
Introduction to Pragmatic System Design Demo
03:50
2
Diagram building blocks
02:31
3
Diagram flow
01:11
4
Making Estimates
03:28
5
Load Balancing
05:53
6
CDN
04:19
7
Introduction
01:46
8
Caching Strategies
03:12
9
Eviction Policies
03:23
10
Redis
03:58
11
Introduction
04:32
12
Messaging
02:29
13
RabbitMQ
05:09
14
Kafka
03:57
15
TCP
04:03
16
UDP
03:09
17
Summary: TCP vs UDP
00:56
18
HTTP
01:05
19
HTTP - Methods
01:56
20
HTTP - Status Codes
02:36
21
REST
01:14
22
RESTfulness
03:30
23
WebSockets
03:36
24
Long Polling
02:54
25
gRPC
04:13
26
GraphQL
04:54
27
Summary
01:58
28
Concurrency vs Parallelism
02:29
29
Processes
06:40
30
Threads
03:52
31
Thread Pools
01:17
32
Indexes
07:09
33
Sharding
10:25
34
Consistent Hashing
03:59
35
Partitioning
10:29
36
CAP Theorem
04:36
37
ACID transactions
04:53
38
Web Sessions
05:35
39
Problem Introduction - Design a Taxi Hailing App
05:34
40
Driver Locations
04:40
41
Storing Locations
03:54
42
Taxis Around You
05:06
43
Matching
03:29
44
Summary - Design a Taxi Hailing App
00:49
45
Problem Introduction - Design a Chat
01:37
46
Basic Design
03:25
47
Scaling Reads
02:11
48
Sharding Chat Messages
02:00
49
Scaling chat using queues
02:18
50
Summary - Design a Chat
01:25
51
Problem Introduction - Design a Web Crawler
02:30
52
Basic Design
02:13
53
Fetching Content
03:00
54
What's a "new" URL?
03:12
55
Uniqueness
04:14
56
Priorities
05:41
57
Summary - Design a Web Crawler
01:06
58
Problem Introduction - Design an Auction
01:47
59
Basic Design for an Auction
02:15
60
Optimistic Locking of Bids
01:45
61
Serialisation of Bids
02:08
62
Event-Driven Approach for Bids
02:55
63
Scaling an Auction
01:42
64
Summary - Design an Auction
00:53
65
Problem Introduction - Design a URL Shortener
01:23
66
Basic Design for a URL Shortener
01:59
67
Short Identifiers
02:48
68
Scaling Reads
02:27
69
Extra: DynamoDB
01:06
70
Caching
02:03
71
Summary - Design a URL Shortener
01:09
72
Problem Introduction
01:42
73
Basic Design
04:38
74
Concurrency
04:46
75
Scalability
04:54
76
Summary
01:01
77
Extra: Scaling Using Queues
02:13
78
Problem Introduction - News Feed
02:13
79
Basic Design - News Feed
02:05
80
Storage Calculations - News Feed
01:17
81
Scaling reads
03:48
82
Long Term Storage and Short Term Storage
02:23
83
Feed Optimisation
01:26
84
VIPs
03:15
85
Summary - News Feed
01:19

Unlock unlimited learning

Get instant access to all 84 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Crack the Frontend Interview with React

Crack the Frontend Interview with React

Sources: zerotomastery.io
Enhance your React skills with a project-based course that prepares you for frontend engineering interviews. Build a star rating component while mastering
1 hour 6 minutes 53 seconds
Java Puzzles to Eliminate Code Fear

Java Puzzles to Eliminate Code Fear

Sources: udemy
The motivation behind this course came from an article titled "Why Can't Programmers Program?" by Jeff Atwood. It talks about how poorly many candidates perform
7 hours 33 minutes 44 seconds
Master the Coding Interview: Big Tech (FAANG) Interviews

Master the Coding Interview: Big Tech (FAANG) Interviews

Sources: zerotomastery.io
Want to land a job at a great tech company like Google, Microsoft, Facebook, Netflix, Amazon, or other companies but you are intimidated by the interview proces
36 hours 33 minutes 29 seconds
System Design Course

System Design Course

Sources: get.interviewready.io (Gaurav Sen)
In this course, you’ll get a deep understanding of system design concepts. Full guide. Architectural schemes, capacity planning, API list, tests, Faq.
92 hours 26 minutes 21 seconds