Skip to main content

System Design for Interview Preparation

System Design is a systematic approach to solving a specific engineering problem with the main principle of designing Scalable systems that are :

  • Modular πŸ––πŸ»
  • Reusable 🀟🏻
  • Extensible πŸ€™πŸ»

High-Level System Design digs deep into the Architecture, Hardware/Software components, how the data will be stored and how to reduce the response time, how caching can be implemented and much more, including the type of database that should be considered and SQL or NoSQL etc. The following topic will take you from basic to advance concepts of system design and finally get you prepared for interviews.

Basic Overview of System Design [Do not Skip] πŸ‘ΆπŸ»β€‹

  1. Basic Topics
  2. Interview Guide
  3. Network Protocols
  4. Process management
  5. Caching
  6. Hashing
  7. Rate Limiting
  8. Latency
  9. Throughput
  10. Availability
  11. Web Sockets
  12. Server-Sent Events
  13. Long Polling
  14. Storage and Redundancy
  15. Load Balancer
  16. Distributed Systems

Advanced Concepts of System Design πŸ‘¦πŸ»β€‹

  1. Client-Server Model
  2. Load Balancing Algorithms
  3. Proxies
  4. Database Indexing
  5. Database Partitioning
  6. SQL vs NoSQL
  7. Choose Right Database
  8. CAP Theorem
  9. Key-Value Database
  10. Consistent Hashing
  11. Distributed Systems Workflow
  12. Peer-to-Peer Networks
  13. Leader Election
  14. MapReduce
  15. Pub-sub pattern
  16. Configurations

Basic Interview Questions πŸ‘¨πŸ»β€‹

  1. Design LRU Cache
  2. Design LFU Cache
  3. Design Bloom Filter
  4. Design Key-Value Store
  5. Design Pastebin
  6. Design Typeahead System
  7. Design TinyURL
  8. Design Notification Service
  9. Design QR Code Generator
  10. Design API Rate Limiter

Advanced Interview QuestionsπŸ§”πŸ»β€‹

  1. Design Recommender System
  2. Design Web Crawler
  3. Design Youtube
  4. Design WhatsApp
  5. Design Google Docs
  6. Design Dropbox
  7. Design Yelp
  8. Design Uber
  9. Design Instagram
  10. Design Twitter