- Complexity Analysis
- Sorting Algorithms
- Searching Algorithms
- Two Pointers (see problems below in this page)
- prefix sum (see problems below in this page)
- Graph Algorithms
- Dynamic programming (classical problems)
- Trie algorithm
- Sliding window
- Data Structures
- Object oriented Basics
- OO Analysis and Design
- What is UML?
- Use Case Diagrams
- Class Diagram
- Sequence diagram
- Activity Diagrams
- Design a Hotel Management System
- Design an Airline Management System
- Design an Amazon - Online Shopping System
- Design an ATM
- Design BlackJack and a Deck of Cards
- Design a Car Rental System
- Design Chess
- Design CricInfo
- Design Facebook - A Social Network
- Design a Library Management Service
- Design LinkedIn
- Design Movie Ticket Booking System
- Design Online Stock Brokerage System
- Design a Parking Lot
- Design a Restaurant Management System
- Design Stack Overflow
- System Design Basics
- Key Characteristics of Distributed Systems
- Load Balancing
- Caching
- Data Partitioning
- Indexes
- Proxies
- Redundancy and Replication
- SQL vs. NoSQL
- CAP Theorem
- Consistent Hashing
- Long-Polling vs WebSockets vs Server-Sent Events
- 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