Using CheatSheets To Apply Best Practices

CheatSheet: System Design For Job Interview

CheatSheet: System Design For Job Interview

1.2 Classic Design Problems – Design A Complex Product

Num Name Summary
1 Design A Technical Feature CheatSheet: Feature Design For Job Interview
2 Design: TinyURL – A URL Shorterner Service  
3 Design: Uber Backend  
4 Design twitter news feed link
5 Design web crawler  
6 Design K/V DB  
7 Design amazon shopping cart  
8 Design: Google Suggestion Service  
9 Design a payment processor  
10 Design slack  
11 Design google doc  
12 Design gmail  
13 Design instagram, a photo sharing app  
14 Design Yelp, a location-based system  
15 Design an API gateway  
16 Design amazon book recommendation system  
17 Google autocomplete  
18 Design Google PageRank  
19 Design messaging/notification system  
20 Design search post system  
21 Design memcache/redis  
22 Design typeahead  
23 Design Google Adsense fraud detection  
24 Design  
25 Design  
26 Design leetcode  
27 Design a voice conference system  
28 Design: An Elevator Service  

1.3 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

1.5 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.7 Typical Trade-Off

Num Name Summary
1 Performance vs Scalability  
2 Latency vs Throughput  
3 Availability vs Consistency Brewer’s CAP theorem

1.8 More Resources

Leave a Reply

Your email address will not be published. Required fields are marked *