Solve System Design Interview In Steps

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

Design Web Crawler

Reference:   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   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: 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   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   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 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