Prepare yourself for system design interviews and leverage your knowledge in real-world scenarios with my comprehensive course. Gain the confidence and skills to excel in system design discussions, whether for job interviews or day-to-day work.
Prepare yourself for system design interviews and leverage your knowledge in real-world scenarios with my comprehensive course. Gain the confidence and skills to excel in system design discussions, whether for job interviews or day-to-day work.
In today's industry, designing new systems is a rare opportunity for most engineers. Architecture discussions often involve only a select few individuals within companies. However, when it comes to interviews, the expectation is that everyone is a system design master. My course bridges this gap by covering essential topics and providing effective approaches to common system design interview questions.
Additionally, this course offers senior engineers an alternative perspective on system design. I encourage open discussions and aim to remove the stigma around imperfect real-world designs.
Choose your preferred method of course consumption based on your availability. If you have ample time, follow the logical order of my videos for a step-by-step learning experience, gradually building your confidence.
Alternatively, if time is limited or you're not currently actively preparing for interviews, you can start with the design videos. If any unfamiliar topics arise, I provide supplementary videos or links to relevant articles.
System design interviews typically evaluate breadth of knowledge first and depth of knowledge second. Thus, I've kept the theoretical portion of each topic concise, aligning with interviewers' expectations.
Remember, there's no such thing as a perfect design. Every system involves trade-offs and compromises. Moreover, each design is unique, reflecting your areas of expertise. Approach my videos as a collection of ideas rather than the definitive way to design a system.
I value your input. If you have additional system design interview questions or topics you'd like me to address, please let me know. Your feedback shapes my content and ensures its relevance to your needs.
This video discusses how to represent different building blocks of your system and connections between them in a diagram.
This video covers how to structure your diagrams in an easy to follow manner.
In this video we'll discuss what numbers can you use when estimating latency, throughput and capacity of your system components.
This video will cover some of the most common caching strategies:
Cache Aside
Read Through
Write Through
Write Behind
This video covers LRU and LFU, two of the most important cache eviction policies.
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.
Discover the power of message queues in enhancing system scalability and reliability. Using a pizza restaurant system as an example, this video explains how queues facilitate asynchronous messaging and decoupling of components, resulting in faster order processing. Explore the benefits of buffering requests and storing messages for recovery, while acknowledging the complexities of asynchronous communication.
This video explains two main ways of using queues: message queues and publisher/subscriber (pub/sub). Using examples like a pizza service and payments service, learn how message queues ensure messages are delivered to a single recipient, while pub/sub queues allow notifications to be sent to multiple services. Understand the benefits and characteristics of each method, setting the stage for future discussions on specific technologies.
This video covers the most important topics about RabbitMQ that you may be asked during an interview:
Routing keys
Types of exchanges
Channels
Acknowledgements
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
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.
This video covers the UDP protocol and its benefits.
This video introduces HTTP protocol and discusses the structure of HTTP Request and HTTP Response.
This video covers the most common HTTP methods, and when you should use each one of them:
GET
POST
PUT
DELETE
PATCH
This video covers the the most common HTTP status codes and when should you use them.
This video discusses REST architecture and the problems it comes to solve.
In this video we'll see how to apply REST best practices when you design your APIs.
This video discussed WebSockets protocol, its benefits, and how it is different from HTTP.
Long Polling architectural pattern
Differences between Web Sockets and Long Polling
In this video we'll discuss the gRPC protocol, which is based on Protobufs and is a popular way to communicate between microservices.
This video attempts to provide you a simple framework how to pick the correct protocol for your use case.
In this video we'll learn about Consistent Hashing algorithm, that enables adding new shards without impacting the entire cluster.
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.
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.
Summarising the design of our taxi hailing app.
Let's see what is the most basic design we can provide for an auction.
This video discusses whether using DynamoDB is a valid solution for this system.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.