Are you preparing for a System Design interview? Do you want to learn the best practices and techniques for designing scalable and distributed systems? Look no further.
Are you preparing for a System Design interview? Do you want to learn the best practices and techniques for designing scalable and distributed systems? Look no further.
Our course on System Design is designed to give you a comprehensive understanding of key concepts and frameworks to help you ace your interview and excel in your career.
You should go through this course in five scenarios:
If you have a System Design interview coming up and want a quick crash course.
To learn about Software Architecture, Data modeling, Distributed systems, Databases, Microservices based architecture, and Cloud architecture.
If you are designing a new system at work, and want to make sure you get it right.
If you want to look at some case studies of how some of FAANGs and other companies have built their systems.
Look at solutions to some of the most common Interview questions
As part of this course, we'll go through some of the conceptual things, some do's and don'ts, and most importantly we'll be looking at some of the biggest systems out there and how you could design those. There is a good probability that your next interview has one of these questions either exactly, or with some small variation.
Instructor Profile:
The Instructor of this course currently works at Facebook and consults various startups for their System Design requirements. He has in the past worked with some of the biggest companies in the world, and has himself designed some of the biggest systems out there.
With his experience of taking and giving more than 500 System Design Interviews, he knows exactly how to crack a System Design interview. If you have an upcoming interview, this course is a goldmine of information to help to succeed.
Don't miss out on this opportunity to advance your skills and knowledge in System Design.
Enroll now and take your career to the next level.
In this course, we'll go over the most common system design interview questions and their solutions.
But most importantly, by the end of this course, you'll have a clear understanding of some key System Design concepts and a framework that helps you structure your interview and nail it.
Here, we'll look at which DB shall be used in what scenario.
We'll start off with simpler use-cases and towards the end, we'll look at some complex real-world scenarios that require a combination of multiple databases to be solved.
One of the most common System Design Interview questions. If you are interviewing at 5-6 companies, one of them is definitely going to ask you this.
So let's look at how to design a scalable URL Shortner service like TinyURL
Specifically somethings like:
How to make sure that it can scale up to billions of requests
It should give us unique short URLs with absolutely no collisions
Some mathematics on how to choose the right length of the short URL
And some more...
Another very common interview problem: how can you design a Hotel Booking system, like Airbnb / Booking.com
After watching this, you'll be able to answer some key questions like:
How does Airbnb handle millions of its hotels and users
What would you do if you have just one room and multiple users trying to book it
If you were building a hotel booking system, how can you go about building it
Can you put in dynamic pricing based on demand/supply
And many more...
In this video, we'll look at some key aspects of the System Design of an e-commerce application like Amazon, Walmart, Flipkart.
We'll try to answer some questions like:
How to scale it to millions of users
How does their recommendation engine work
Where do they store all the user data
How can you build a system of your own that scales up to Amazon's level
And many more...
We'll now look at how can you design a chat application, something like Whatsapp, telegram, etc.
Key aspects that we'll look at are:
How can we make it scale to billions of users
is it possible to do it without storing the chats on the servers?
How do you make it real-time or at minimal latency
Can there be race conditions in chat systems
How do you make it work for a group chat
And the list goes on...
Let's look at how can you build a scalable notification sending platform, that can be used to send notifications to billions of users.
This is usually always a part of your system design because usually, irrespective of what you are building, you'll end up having a system to notify your users about their orders, any messages they have received, their bill, or if their cab has arrived.
After watching this, you'll be able to answer some key questions like:
If your product has billions of users, and you need to send out billions of notifications, how to do that
How to make sure important notifications are always received
How to prioritise and choose which mode to use for sending notifications
How to make sure you are not bombarding your users
And many more...
Here, We'll look at how can you design a cab booking system, like Uber, Ola, Lyft, etc.
After watching this, you'll be able to answer some key questions like:
How do you find which is the best driver for a particular ride
How can we make it scale to billions of users and millions of drivers
How can you show the real-time location of a driver to a user
What's the most efficient way to store the cab location coordinates
And many more...
One of the most common System Design Interview questions. If you are interviewing at 5-6 companies, one of them is definitely going to ask you this.
Here, We'll look at how can you design a Social Network, like Twitter etc.
Key aspects that we'll look at are:
How can we make it scale to billions of users
How do you make sure that you can minimise the latency? People don't want to wait and see a loading sign, anymore.
What if someone posts objectionable content. How do you find it out
You have a massive number of tweets coming in every second, how do you handle that much data
How do you handle the images that people upload
How can you prioritise a user's view, and show them the tweets that they would like to see
And many more...
We'll now look at how can you design a Social Network, like Facebook / Instagram.
This is more of an extension of Twitter and this system can handle 10x more scale.
Key aspects that we'll look at are:
How can we scale the Twitter system even further
How can we do it without using so much of memory (Caching is expensive)
What kind of additional analytics can you do
How do you monitor your systems and make sure you have a great uptime
And many more...
We'll look at how can you design a Video Streaming application like YouTube, Netflix, Amazon Prime, Hotstar, etc.
Key aspects that we'll look at are:
How can we make it scale to billions of users
Where would you store the Exabytes of content
How do you serve video content to the users at minimal latency
How do you make it work on low-end devices
Can you make it work for people with low-quality internet
What if someone uploads objectionable / Pirated content. How do you find it out
And the list goes on...
Let's look at how can you design a video conferencing system
After watching this, you'll be able to answer some key questions like:
Which protocols do you want to use for building such a system(it's not just UDP)
How can you establish a Peer to peer connection between two users
Video data is huge in size, how do you transmit the terabytes of data that the users generate
How can you make it look real-time and avoid lags
How can you handle when multiple people are on a call
And many more...
The same design can be used to design any Video chatting platform like Whatsapp, FB messenger, Zoom, Skype, etc.
In this video, we'll look at how to design a Navigation app, like Google Maps, Apple maps.
We'll try to answer some questions like:
How to optimally calculate the route from Point A to Point B
How to store the enormous amount of data that's required to power such a system
How can you make it available to billions of users
How do you handle the ever-changing geographies, new areas, new roads, etc
How additional can you do with this data. Remember, location data is a goldmine of information
And many more...
This video covers some do's and dont's in a System Design interview.
In this practice test, we’ll answer a few questions based on some of the topics that we covered in the course to assess our grasp of them.
Some of the questions in this practice test would have multiple correct answers.
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.