system design interview is a happy show-off of our knowledge on technologies and their trade offs. Ideally, keep talking what the interviewer expect throughout the interview, before they even have to ask. 7 Steps for system design interview: Step 1: Requirements clarifications Step 2: System interface definition Step 3: Back-of-the-envelope estimation Step 4: Defining … Continue reading Solve System Design Interview In Steps
Category: system design
Design Web Crawler
Reference: https://www.educative.io/collection/page/5668639101419520/5649050225344512/5718998062727168 http://massivetechinterview.blogspot.com/2016/07/web-crawler.html https://github.com/donnemartin/system-design-primer/tree/master/solutions/system_design/web_crawler Requirements: Scalability: Our service needs to be scalable such that it can crawl the entire Web and can be used to fetch hundreds of millions of Web documents. Extensibility: Our service should be designed in a modular way with the expectation that new functionality will be added to it. There could be … Continue reading Design Web Crawler
Designing Instagram (Photo Sharing)
Reference: Grokking the System Design Interview http://blog.gainlo.co/index.php/2016/03/01/system-design-interview-question-create-a-photo-sharing-app/ Let's design a photo-sharing service like Instagram, where users can upload photos to share them with other users. Functional Requirements Users should be able to upload/download/view photos. Users can perform searches based on photo/video titles. Users can follow other users. The system should be able to generate … Continue reading Designing Instagram (Photo Sharing)
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?
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