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
Author: Daniel Cai
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
Microservices Learning Notes
collection of great microservices publications
The Journey Begins
A journey of a thousand miles begins with a single step. — Lao Tzu One of the career paths for a software developer is climbing the technical ladder and eventually becoming an architect. Even if one does not become an architect or grows into management roles, deep understandings of technology is always a valuable asset. … Continue reading The Journey Begins