Last updated 2/2023Course Language EnglishCourse Caption EnglishCourse Length 04:52:59 to be exact 17579 seconds!Number of Lectures 95
This course includes:
5 hours hours of on-demand video
Full lifetime access
Access on mobile and TV
Certificate of completion
17 additional resources
How to solve most popular FANG interview questions
Most important scalability concepts
Common communication protocols
Caching and Redis
Concurrency
Database design and PostgreSQL
Sharding strategies
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. 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.If there are more system design interview questions you'd like me to solve or additional topics you'd like me to cover, let me know!Who this course is for:Software engineers of all levels preparing for System Design interviewsSenior engineers that are looking to make the next step in their careerSoftware architects that are looking to broaden their knowledge
Course Content:
Sections are minimized for better readability, click the section title to view the course content
4 Lectures | 10:56
Introduction to Pragmatic System Design
03:49
Diagram building blocks
02:30
This video discusses how to represent different building blocks of your system and connections between them in a diagram.
Diagram flow
01:10
This video covers how to structure your diagrams in an easy to follow manner.
Making Estimates
03:27
In this video we'll discuss what numbers can you use when estimating latency, throughput and capacity of your system components.
2 Lectures | 10:09
Load Balancing
05:52
CDN
04:17
4 Lectures | 12:15
Introduction
01:45
Caching Strategies
03:11
This video will cover some of the most common caching strategies:
Cache Aside
Read Through
Write Through
Write Behind
Eviction Policies
03:22
This video covers LRU and LFU, two of the most important cache eviction policies.
Redis
03:57
Redis is the most popular solution on the market for distributed cache at the moment.
In this video we'll discuss basic usage of Redis, some of the supported data types, TTL on keys, how Redis persists the data, and in which cases Redis may not be the best option for you.
Caching
3 questions
4 Lectures | 16:03
Introduction
04:31
Messaging
02:28
RabbitMQ
05:08
This video covers the most important topics about RabbitMQ that you may be asked during an interview:
Routing keys
Types of exchanges
Channels
Acknowledgements
Kafka
03:56
This video covers the most important topics about Kafka, that you'll have to consider during an interview:
Topics
Events
Partitions
Consumer groups
Consumer offsets
Queues
4 questions
13 Lectures | 35:51
TCP
04:02
In this video we'll discuss the main protocols of the Internet, TCP.
This protocol has three main benefits. It's Reliable, Ordered and Error-checked.
We'll cover what each of those means in detail.
UDP
03:08
This video covers the UDP protocol and its benefits.
Summary: TCP vs UDP
00:55
HTTP
01:04
This video introduces HTTP protocol and discusses the structure of HTTP Request and HTTP Response.
HTTP - Methods
01:55
This video covers the most common HTTP methods, and when you should use each one of them:
GET
POST
PUT
DELETE
PATCH
HTTP - Status Codes
02:35
This video covers the the most common HTTP status codes and when should you use them.
REST
01:13
This video discusses REST architecture and the problems it comes to solve.
RESTfulness
03:29
In this video we'll see how to apply REST best practices when you design your APIs.
WebSockets
03:35
This video discussed WebSockets protocol, its benefits, and how it is different from HTTP.
Long Polling
02:53
Long Polling architectural pattern
Differences between Web Sockets and Long Polling
gRPC
04:12
In this video we'll discuss the gRPC protocol, which is based on Protobufs and is a popular way to communicate between microservices.
GraphQL
04:53
Summary
01:57
This video attempts to provide you a simple framework how to pick the correct protocol for your use case.
Protocols
5 questions
4 Lectures | 14:13
Concurrency vs Parallelism
02:28
Processes
06:39
Threads
03:51
Thread Pools
01:15
Concurrency
2 questions
6 Lectures | 41:25
Indexes
07:08
Sharding
10:24
Consistent Hashing
03:58
In this video we'll learn about Consistent Hashing algorithm, that enables adding new shards without impacting the entire cluster.
Partitioning
10:28
In this video we'll learn how to scale reads on a single table using partitioning.
This technique may also help us cleaning up stale data efficiently.
CAP Theorem
04:35
ACID transactions
04:52
Databases
2 questions
3 Lectures | 14:52
Web Sessions
05:34
Serialization
05:24
Request Serialization is an important technique to resolve data races in your system. Will discuss situations when it's useful to serialize requests, and the trade-offs of that solution.
CQRS
03:54
6 Lectures | 23:26
Problem Introduction - Design a Taxi Hailing App
05:33
Driver Locations
04:39
Storing Locations
03:53
Taxis Around You
05:05
Matching
03:28
Summary - Design a Taxi Hailing App
00:48
Summarising the design of our taxi hailing app.
6 Lectures | 12:50
Problem Introduction - Design a Chat
01:36
Basic Design - Chat
03:24
Scaling Reads
02:10
Sharding Chat Messages
01:59
Scaling chat using queues
02:17
Summary - Design a Chat
01:24
7 Lectures | 21:49
Problem Introduction - Design a Web Crawler
02:29
Basic Design - Web Crawler
02:12
Fetching Content
02:59
What's a "new" URL?
03:11
Uniqueness
04:13
Priorities
05:40
Summary - Design a Web Crawler
01:05
7 Lectures | 13:18
Problem Introduction - Design an Auction
01:46
Basic Design for an Auction
02:14
Let's see what is the most basic design we can provide for an auction.
Optimistic Locking of Bids
01:44
Serialisation of Bids
02:07
Event-Driven Approach for Bids
02:54
Scaling an Auction
01:41
Summary - Design an Auction
00:52
7 Lectures | 12:48
Problem Introduction - Design a URL Shortener
01:22
Basic Design for a URL Shortener
01:58
Short Identifiers
02:47
Scaling Reads
02:26
Extra: DynamoDB
01:05
This video discusses whether using DynamoDB is a valid solution for this system.
Caching
02:02
Summary - Design a URL Shortener
01:08
6 Lectures | 19:08
Problem Introduction
01:41
Basic Design
04:37
Concurrency
04:45
Scalability
04:53
Summary
01:00
Extra: Scaling Using Queues
02:12
8 Lectures | 17:37
Problem Introduction - News Feed
02:12
Basic Design - News Feed
02:04
Storage Calculations - News Feed
01:16
Scaling reads
03:47
Long Term Storage and Short Term Storage
02:22
Feed Optimisation
01:25
VIPs
03:13
Summary - News Feed
01:18
7 Lectures | 15:01
Problem Introduction - Ticketing System
01:56
Basic Design - Ticketing System
02:04
Checking Tickets Count
01:49
Handling payments
02:21
Scaling ticketing system
03:14
Conflict resolution
02:44
Summary - Ticketing System
00:53
1 Lectures | 01:18
Final words
01:18
A few personal recommendations from me on how to progress after completing the course.
4.63
(2970 course ratings)
1
21/2970
2
38/2970
3
293/2970
4
1149/2970
5
1469/2970
JOIN OUR WHATSAPP GROUP TO GET LATEST COUPON AS SOON AS UPDATED
If you like to get inspired by great web projects, you should check out Made with Javascript. If you have a project that you wish to share with the world, feel free to submit your project on Made with Javascript Club website.
Free Online Tools And Converters for your use
URL Encoder
Input a string of text or a URL and encode the entered string
From preparing for System Design interviews to Architecting Real World Systems
FAQ: Udemy Free course Most frequent questions and answers
Does Udemy offer Free Udemy coupons?
Yes, Udemy is the largest online education platform, with the broadest selection of video-on-demand courses and qualified instructors available to meet your needs. At theprogrammingbuddy.club we curate the latest udemy coupons, their expiry, and the number of uses left of these udemy coupons.
How to get free Udemy courses?
There are two ways to get free Udemy courses:
Go to udemy.com and search for your desired course category. Then select free from the filter options.
You can also get paid courses for free if you have a coupon. You can head to theprogrammingbuddy.club, where you can get a daily udemy paid course for free.
How to get Udemy Certificates for free?
Udemy offers certification on completion of each course. In order to receive a certificate of completion from Udemy, you need to complete your course 100%. There is a simple hack, you can open a video and jump on the timeline to complete a lecture.
To download the certificate from Udemy, you need to head over to your account on a desktop browser. Udemy certificates can't be accessed on the mobile app.
Do Udemy courses expire?
No, once you enroll, you will have lifetime access to the course. You can complete the course on your schedule.
Why are the Udemy instructors giving away free Udemy Coupons?
Every instructor has worked for hours on each of their courses. As new courses get launched, the instructors have no way to get their course in front of an audience to get some feedback. So, instructors share free coupons for their courses to get feedback from the students. We attheprogrammingbuddy.club work with these instructors to get their courses available to our buddies.
Is Udemy safe to use?
Yes, payments on Udemy are safe. It is no different than paying for other services on an application or website and inputting your payment information before receiving your goods. Just be sure to keep your account secure, do not share your udemy accounts.
Can Udemy courses get you a job?
Earning a skill is more valuable than earning a job these days. Skills are your most valuable asset. They can help you qualify for jobs you want and get promoted to more advanced positions within your organization. Unfortunately, it is difficult for many people to balance taking courses with work and family obligations. We have had many students, who have taken just Udemy courses, started a job as well as started freelancing with the skills they have learned.