100% found this document useful (2 votes)
992 views6 pages

Cheatsheet Systemdesign A4

This document provides a summary of system design topics and resources for job interviews. It includes sections on common system design problems categorized by domain, top product designs to know, the system design process, common mistakes, and key concepts. Reference materials include YouTube videos, papers, cheat sheets, and blogs from companies like Facebook, Google, and Netflix.

Uploaded by

Gaurav Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
992 views6 pages

Cheatsheet Systemdesign A4

This document provides a summary of system design topics and resources for job interviews. It includes sections on common system design problems categorized by domain, top product designs to know, the system design process, common mistakes, and key concepts. Reference materials include YouTube videos, papers, cheat sheets, and blogs from companies like Facebook, Google, and Netflix.

Uploaded by

Gaurav Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Blog URL: https://cheatsheet.dennyzhang.

com/cheatsheet-systemdesign-A4 Updated: February 24, 2020

1 CheatSheet: System Design For Job Interview Interview


• PDF Link: cheatsheet-systemdesign-A4.pdf, Category: interview
• Blog URL: https://cheatsheet.dennyzhang.com/cheatsheet-systemdesign-A4
• Related posts: CheatSheet: Leetcode For Code Interview, CheatSheet: Well-Known Papers For IT Industry,
#denny-cheatsheets

File me Issues or star this repo.

1.1 Reference

Name Summary
YouTube YouTube: Intro to Architecture and Systems Design Interviews, YouTube: System Design Interview
YouTube YouTube Channel: Success in Tech, YouTube: Scalability Harvard Web Development
Papers CheatSheet: Well-Known Papers For IT Industry, Github: papers-we-love
Github Github: system-design-primer, Github: puncsky/system-design-and-architecture
Website Website: hiredintech - System Design, Website: blog.gainlo.co
Website Website: interviewing.io, Website: interviewbit.com
Cheatsheet CheatSheet: Leetcode For Code Interview, CheatSheet: Common Code Problems & Follow-ups
Cheatsheet CheatSheet: System Design For Job Interview, CheatSheet: SRE/DevOps/Sysadmin
Cheatsheet CheatSheet: Behavior Questions For Coder Interview, Programming Language Implemenetations CheatSh
Cheatsheet CheatSheet: Concurrency & Parallel Programming
Coding Code problems for #oodesign
Company Tech Blog Website: Facebook Engineering, Website: Google Developers
Company Tech Blog Medium: Netflix Blog, Medium: Airbnb Engineering & Data Science
Company Tech Blog Shopify Engineering, Github Engineering
Individual Tech Blog Blog: All Things Distributed - Amazon CTO, Blog: highscalability
Reference Link: Facebook Engineering Interview, Link: The System Design Process

1.2 Design Problems Per Category

Num Name Summary


1 K/V DB store Design K/V DB; Design memcache/redis
2 Data synchronization Design dropbox client sync
3 Resource/Task scheduling Design web crawler; Delayed task queue; Design a distributed message queue
4 Design a distributed component Design a distributed hit counter, Design a distributed UUID generator
5 Design a SNS system Design Twitter News Feed
6 Design API Gateway Design An API Rate Limiter
7 Design a logging & metrics system Pull vs Push model
8 Design a gaming system Design: Leaderboard Ranking
9 Design a small scale MIS system Design: Flight booking service, Design a payment processor
10 Recommendation system Design amazon book recommendation system
11 Design a communication system Design a message chat room
12 Design an ads system

1.3 Top 30 Component Design

GitHub: https://github.com/dennyzhang/cheatsheet.dennyzhang.com/tree/master/cheatsheet-systemdesign-A4 1 of 6
Blog URL: https://cheatsheet.dennyzhang.com/cheatsheet-systemdesign-A4 Updated: February 24, 2020

Num Name Summary


1 Top K Frequent Elements in Recent X mins Github: link
2 Design An API Rate Limiter
3 Design: Leaderboard Ranking
4 Delayed task queue
5 Web crawler
6 Design online/offline status system
7 How to deployment 1GB binary to 10,000 servers Github: link
8 Merge big datasets across different servers Github: link
9 Design a monitoring system to check 10,000 nodes Github: link
10 Unique url hits
11 Design a distributed counter
12 Design a distributed message queue
13 Design a distributed cache service
14 Design a distributed Hashmap
15 Design a distributed UUID generator
16 Design: A Parking Lot Service
17 Design a distributed transaction
18 Design: A URL Redirecting Feature
19 Give three 1TB disks, how to store 2TB data with redundancy Github: link. XOR bit manipulation
20 How to support feature of "diff big1.bin big2.bin" #lcs - Longest Common Subsequence
21 How to support "rsync big1.bin ssh:/big2.bin" in a doggy network delta-transfer algorithm. Weak Hashing + Strong Ha
22 Avoid double payment in a distributed payment system Link: Avoiding Double Payments in a Distributed Pa

1.4 Concurrency Problems


• CheatSheet: Concurrency & Parallel Programming

GitHub: https://github.com/dennyzhang/cheatsheet.dennyzhang.com/tree/master/cheatsheet-systemdesign-A4 2 of 6
Blog URL: https://cheatsheet.dennyzhang.com/cheatsheet-systemdesign-A4 Updated: February 24, 2020

1.5 Top 30 Product Design


Num Name
1 Design: TinyURL - A URL Shorterner Service
2 Design Twitter News Feed
3 Design K/V DB
4 Design autocomplete/typeahead
5 Design a online contest system like leetcode.com
6 Design Google Calendar
7 Design a load balancer
8 Design: Flight booking service
9 Design: Uber Backend
10 Design: An Elevator Service
11 Design amazon shopping cart
12 Design: Google Suggestion Service
13 Design a payment processor
14 Design google doc
15 Design gmail
16 Design RSS news reader
17 Design a client-server API to build a rich document editor
18 Design instagram, a photo sharing app
19 Design Yelp, a location-based system
20 Design Pastebin.com
21 Design amazon book recommendation system
22 Design Google PageRank
23 Design messaging/notification system
24 Design memcache/redis
25 Design a voice conference system
26 Design an API gateway
27 Design slack
28 Design a service auto-discovery feature
29 Design a secrets management system
30 Design Google Adsense fraud detection
31 Design The Great Firewall

1.6 Process Of System Design

Num Name Summary


1 Outline use cases: List major and focus on some Show good sense. The questions you asked define your level
2 Estimate scale: Data + Traffic Back-of-the-envelope estimation
3 Defining data model It helps to clarify how data will flow among different components
4 Abstract design Sketch main components, explain workflow, avoid too deep for details
5 Detailed design + discussion with interviewers Explain trade-off of your proposal + on-demand deep dive
6 Identify and resolve Bottlenecks Key challenges + Trade-Offs. Usuaully no optimal solution(s)
7 Scale your design Availability, Resiliency, Scalability, Security, Serviceability, etc
8 Show your relevant experience and learning Industry best practice; You experience of scaling/trade-off/resiliency

1.7 Common Mistakes Of System Design


Num Name Summary
1 Run into an opinioned solutions before clarification Inexperienced; Hard to communicate
2 Not driving the conversation Inexperienced
3 General answers without your personal experience/thinking
4 Makes interviewers feeling you’re stubborn

GitHub: https://github.com/dennyzhang/cheatsheet.dennyzhang.com/tree/master/cheatsheet-systemdesign-A4 3 of 6
Blog URL: https://cheatsheet.dennyzhang.com/cheatsheet-systemdesign-A4 Updated: February 24, 2020

1.8 Top 30 Concepts For Feature/System Design


Num Name Summary
1 Caching Stores data so that future requests of data retrieval can be faster
2 Message Queue Provides an asynchronous communications protocol,
3 Data Partition & Sharding Break up a big data volume into many smaller parts
4 DB Indexing Create indexes on multiple columns to speed up table look up
5 DB replication Duplicate data to increase service availability
6 CAP: Consistency/Availability/Partition A distributed database system can only have 2 of the 3
7 DB: SQL & NoSQL Relational databases and non-relational databases
8 Concurrency & Communication
9 Pessimistic And Optimistic Locking
10 Consistency Module weak consistency, eventual consistency, strong consistency
11 Conflict resolution Quorum, vector lock, reconcile on read/write, CRDTs
12 B+ Tree
13 Networking: HTTP
14 Networking: TCP/UDP
15 Pull vs Push model
16 Garbage Collection
17 Memory Management
18 Heartbeats
19 Self Protection API Rate limit, Circuit breaker, bulkhead, throttling
20 Filesystem
21 API: RPC vs gRPC vs REST
22 Load balancer
23 Scale up vs Scale out Vertical scaling and Horizontal scaling
24 API Design
25 Session management
26 Networking: TCP vs UDP
27 Consistency patterns Weak consistency, Eventual consistency, Strong consistency
28 Availability patterns Fail-over vs Replication
29 CDN - Content Delivery Network Edge caching
30 Monitoring
31 Security
32 Networking: DNS
33 Linux signals

1.9 Top 15 Advanced Data Structure & Algorithms

Num Name Summary


1 Consistent Hash
2 Bloom filter A space-effcient query returns either "possibly in set" or "definitely not"
3 hyerloglog for count-distinct problem Estimation: the count of unique values with relatively high accuracy(98%
4 CRDTs (Conflict-Free Replicated Data Types)
5 SSTable (Sorted Strings Table)
6 LSM (Log Structured Merge Trees)
7 Gossip Propagate cluster status
8 Two-phase commit/Three-phase commit
9 Vector Clocks/Version Vectors
10 Paxos and raft protocol
11 Merkle Tree
12 Ring buffer
13 Frugal Streaming

https://raw.githubusercontent.com/dennyzhang/cheatsheet.dennyzhang.com/master/cheatsheet-systemdesign-A4/dynamo-
summary.png

GitHub: https://github.com/dennyzhang/cheatsheet.dennyzhang.com/tree/master/cheatsheet-systemdesign-A4 4 of 6
Blog URL: https://cheatsheet.dennyzhang.com/cheatsheet-systemdesign-A4 Updated: February 24, 2020

1.10 Explain workflow: What happens when XXX?

Num Name Summary


1 When happens when I search in google?
2 How loadbalancer works
3 Explain three phase commit model
4 Explain HTTP return code Link: Series of posts on HTTP status codes e.g, 401 vs 405, 500 vs 503 vs 504
5 Explain Mysql DB replication model
6 Explain gossip protocol
7 Explain CAP
8 Explain Hadoop file system
9 [Linux] Explain OS booting process

1.11 Explain tools: how XXX supports XXX?


Num Name Summary
1 How JDK implement hashmap?
2 Explain java garbage collection model
3 Explain raft/etcd
4 How OS supports XXX?

1.12 Cloud Design Principles


Num Name Summary
1 Fail fast
2 Design for failure
3 Immutable infrastructure
4 Cats vs Cattle Avoid snowflake servers
5 Auto healing
6 Async programming
7 GitOps operational model
8 Event-Driven Architectures

1.13 Cloud Design Patterns


Num Name Summary
1 Ambassador pattern Create helper service to send network requests, besides the main sevice
2 Cache-Aside pattern Load data on demand into a cache from a data store
3 Circuit Breaker pattern If a request takes too many reousrce, abort it
4 Bulkhead pattern Isolate elements into pools, so that one fire won’t burn all
5 Gateway Aggregation pattern Aggregate multiple individual requests into a single request
6 Priority Queue pattern Support different SLAs for different individual clients
7 Strangler pattern Incrementally migrate a legacy system piece by piece

1.14 Engineering Of Well-Known Products


Name Summary
Google Link: Google Architecture
Facebook Link: Facebook Live Streams
Twitter Link: Twitter Image Service, YouTube: Timelines at Scale
Uber Link: Lessons Learned From Scaling Uber
Tumblr Link: Tumblr Architecture
StackOverflow Link: Stack Overflow Architecture

GitHub: https://github.com/dennyzhang/cheatsheet.dennyzhang.com/tree/master/cheatsheet-systemdesign-A4 5 of 6
Blog URL: https://cheatsheet.dennyzhang.com/cheatsheet-systemdesign-A4 Updated: February 24, 2020

1.15 Grow Design Expertise In Daily Work


Num Name Summary
1 Keep the curiosity Thinking about interesting/weird questions helps
2 Deep dive into your daily work Unify and normalize problems from daily work
3 Learn the work of your coleagues Indirect working experience also help
4 Popular products under the hood Once you notice an interesting feature, think about how it’s supported?
5 Read engineering blogs Especially for big companies
6 Tools under the hood Common tools/frameworks
7 Try tools Use cases; Alternatives; Pros and Cons
8 Read papers Best practices in papers
9 Try new things Gain hands-on experience; evaluate alternatives
10 Datastore & OS Learn how databases and operating systems work
11 Language implementation Deep dive into one programming language. Java, Python, Golang, etc

1.16 More Resources


License: Code is licensed under MIT License.
https://github.com/binhnguyennus/awesome-scalability
https://github.com/donnemartin/system-design-primer
https://github.com/checkcheckzz/system-design-interview
https://github.com/binhnguyennus/awesome-scalability
https://docs.microsoft.com/en-us/azure/architecture/patterns/
https://github.com/sdmg15/Best-websites-a-programmer-should-visit

GitHub: https://github.com/dennyzhang/cheatsheet.dennyzhang.com/tree/master/cheatsheet-systemdesign-A4 6 of 6

You might also like