
Instructions to download:
1. Click on individual PDF files2. Enter password 3. Download
Course Overview
System design questions have increasingly become an integral part of software engineering interviews. For senior engineers, the discussion around system design is considered even more important than solving a coding question. In a system design interview, you can show your real design skills and show how they will work with designing complex systems. It is a given that a good performance in system design interviews will get you a senior position and result in higher salaries. This course presents the architectural review of famous distributed systems. The main goal is to extract out important design details that are relevant to system design interviews. The course also presents a list of system design patterns that constitute the common design problems and their solutions that different distributed systems have developed over time.Advanced System Design Interview -- Course Contents:
1. Introduction
2. Dynamo: How to Design a Key-value Store?
3. Cassandra: How to Design a Wide-column NoSQL Database?
4. Kafka: How to Design a Distributed Messaging System?
5. Chubby: How to Design a Distributed Locking Service?
6. GFS: How to Design a Distributed File Storage System?
7. HDFS: How to Design a Distributed File Storage System?
8. BigTable: How to Design a Wide-column Storage System?
9. System Design Patterns
10. Final Assessment
11. Appendix
System Design Interview -- Course Contents
1. System Design Problems
System Design Interviews: A step by step guide
Designing a URL Shortening service like TinyURL
Designing Pastebin
Designing Instagram
Designing Dropbox
Designing Facebook Messenger
Designing Twitter
Designing Youtube or Netflix
Designing Typeahead Suggestion
Designing an API Rate Limiter
Designing Twitter Search
Designing a Web Crawler
Designing Facebook’s Newsfeed
Designing Yelp or Nearby Friends
Designing Uber backend
Design Ticketmaster
Additional Resources
2. Glossary of System Design Basics3. Appendix