Designing Pastebin

Reference: https://www.educative.io/collection/page/5668639101419520/5649050225344512/5653164804014080 What is Pastebin? Pastebin like services enable users to store plain text or images over the network (typically the Internet) and generate unique URLs to access the uploaded data. Such services are also used to share data over the network quickly, as users would just need to pass the URL to let other … Continue reading Designing Pastebin

How to Design URL shortening service?

Reference: Grokking the System Design Interview http://blog.gainlo.co/index.php/2016/03/08/system-design-interview-question-create-tinyurl-system/ https://www.zhihu.com/question/29270034 https://puncsky.com/hacking-the-software-engineer-interview/?isAdmin=true#designing-a-url-shortener   URL shortening is used to create shorter aliases for long URLs. We call these shortened aliases “short links.” Users are redirected to the original URL when they hit these short links. Short links save a lot of space when displayed, printed, messaged or tweeted. Additionally, … Continue reading How to Design URL shortening service?

Leetcode Tree Summary

  Binary Tree   Traversal: preorder, inorder, post order   recursion template:   def traversal(root): # none or leaf if not root: # do sth # divide left = traversal(root.left) right = traversal(root.right) # Conquer res = # merge return res   iterative template:   Details see: https://www.jianshu.com/p/456af5480cee   preorder example: postorder   Recursion Type: … Continue reading Leetcode Tree Summary

Leetcode Dymanic Programming Problems Summary 动态规划总结

What is dynamic programming (DP) ?        Has optimal substructure: can be broken into subproblems and find solutions to subproblems      Subproblems are used multiple times : use memorization to compute only once and save time.      Subproblem solutions will not change   Top down:DFS + memorization Bottom up: DP Steps to Solve DP   Definition of … Continue reading Leetcode Dymanic Programming Problems Summary 动态规划总结

Useful Technology and Company Architecture

From https://github.com/donnemartin/system-design-primer   Don't focus on nitty gritty details for the following articles, instead: Identify shared principles, common technologies, and patterns within these articles Study what problems are solved by each component, where it works, where it doesn't Review the lessons learned Type System Reference(s) Data processing MapReduce - Distributed data processing from Google research.google.com Data processing … Continue reading Useful Technology and Company Architecture

System Design Problem List

Here are the system design problems I collected on the internet and each will be discussed in different posts.   1. Designing a URL Shortening service like TinyURL 2. Designing Pastebin 3. Designing Instagram 4. Designing Dropbox 5. Designing Facebook Messenger 6. Designing Twitter 7. Designing Youtube or Netflix 8. Designing Typeahead Suggestion 9. Designing … Continue reading System Design Problem List

System Design Basics

Notes from Grokking the System Design Interview   When designing systems, we need to consider: What architectural pieces are used How pieces work together how best utilized the pieces, right tradeoffs 1. Load Balancing Load balancer helps to spread the traffic across a cluster of servers to improve responsiveness and availability of applications, websites or databases. To … Continue reading System Design Basics