system-design-questions

[object Object]
Typeahead (Autocomplete) System Design

As users type their search query, the Typeahead search feature guesses the rest of a word and offers the top suggestions that begin with whatever they have written. Here frequency and recentness of a query are used to sort suggestions. Search autocomplete system is used by many search platforms like Facebook, Google, Instagram, etc.

[object Object]
Key-Value Store System Design

A key-value database is a non-relational database that stores data using a simple key-value mechanism. Data is stored in a key-value database to collect key-value pairs, with a key serving as a unique identifier. Both keys and values can be any object (simple or complex objects). This blog will focus on system design of key value store and discussion around various components.

[object Object]
Google Docs System Design

Google docs is an online word processor that is part of Google’s free, web-based Google docs editors package. It is a massive system with tons of features. If we think about how google docs works, we can realize that it is much more complex than it seems to be. This blog will focus on system design of google docs and discussion around various components.

[object Object]
Whatsapp System Design

Whatsapp is a social messenger platform, which allows users to send messages to each other. It is a messaging system that is widely used throughout the globe. Here in this blog, we’ll be discussing WhatsApp’s generic architecture and which could also be used as a base for designing any such chat application. So let’s get started by discussing the key requirements of our service.

[object Object]
Web Crawler System Design

A web crawler is a system for downloading, storing, and analyzing web pages. It is one of the main components of search engines that compile collections of web pages, index them, and allow users to issue index queries and find web pages that match queries. This blog will focus on system design of web crawler and discussion around various components.

[object Object]
Design Twitter: System Design Interview Question

Twitter is a social media platform where users can post and interact with tweets. Users can also subscribe to feeds of other users and receive tweet notifications from those they follow. Tweets are almost 140–280 characters communication. This blog will focus on system design of Twitter and discussion around various components.

[object Object]
Instagram System Design

Instagram is a photo and video-sharing social media platform that allows users to share their creations with others. The original poster can set the visibility of these posts (photos/videos) to private or public. Posts can be liked and commented on by users. Users can follow and see the news feeds of other users (a collection of posts from the users they are following).

[object Object]
LRU Cache Implementation

The least recently used (LRU) cache is one of the popular caching strategies, which defines the policy to discard the least recently used items first from the cache and make room for new elements when the cache is full. It is used to organize items in order of their use, which allows identifying items that have not been used for a long time.

[object Object]
Least Frequently Used (LFU) Cache Implementation

The least frequently used (LFU) is a cache algorithm used to manage memory within a computer. In this method, the system keeps track of the number of times a block is referenced in memory, and when the cache is full, our system removes the item with the lowest reference frequency. LFU cache get and put operation works in O(1) average time complexity.

[object Object]
Bloom Filter Introduction, Implementation and Application

Bloom filter is a space-efficient data structure that tells whether an element may be in a set (either a false positive or true positive) or definitely not present in a set (True negative). It will take O(1) space, regardless of the number of items inserted. However, their accuracy decreases as more elements are added.

[object Object]
API Rate Limiter System Design

Rate limiter restricts number of events a certain user or device can do in a given time range. In general, rate limiting helps us to restrict number of requests a sender can send in a given period of time and is implemented as a protective mechanism to restrict excessive use of services. Once the upper limit is reached, rate limiter blocks requests.

[object Object]
Youtube System Design

YouTube is a frequently used social networking platform for video sharing and advertising. It is a widely used service, our system should be cost-efficient, highly available, scalable, and reliable. It should offer low latency and high throughput. This blog will focus on system design of youtube and discussion around various components.

[object Object]
Dropbox System Design

Dropbox is a cloud storage service that allows users to store their data on remote servers. The remote servers store files durably and securely, which can be accessed from anywhere using the internet. These servers are maintained by cloud storage providers. In this blog, we will focus on system design of dropbox and discussion around various components.

[object Object]
Notification Service System Design

Notification services are widely used in almost every product. They are helpful if we want to be alerted of a price change or availability of a new product feature or if we want to be updated if a new job specification for a job search becomes available. This blog will focus on system design of notification service and discussion around various components.

[object Object]
Yelp (Nearby Friends Service) System Design

Design nearby friends service like yelp, where users can search for nearby places like restaurants, shopping malls, etc., and add/view reviews of places. Service should store location information so that it delivers a list of places near the user after a query is made. This blog will focus on system design of yelp and discussion around various components.

[object Object]
QR Code System Design

QR code payment is one of the contactless payment methods to transfer funds from the buyer’s wallet to the seller’s wallet or account. Here QR code is based on a matrix barcode, which can be read by any mobile device with a camera. This blog will focus on how to design QR code payemnt system and discussion around various components.

[object Object]
Design Uber: System Design Interview Question

Uber continues to improve its operations by deploying and developing new services to meet market demand, finding the most efficient routes, detecting any potential fraud, and monitoring data to provide the most efficient real-time services. This blog will focus on system design of uber and discussion around various components and functionalities.

[object Object]
Design Workflow in a Distributed System

How does 1-click-buy work on Amazon? How e-commerce platforms show the status of order? What happens when we cancel an order after placing an order or after item is shipped or delivered? How is all the activity related to an order tied to just one order Id? This blog will lay out key insights on designing a workflow for such distributed systems.

[object Object]
URL Shortener System Design

TinyURL is a URL-shortening system that creates shorter aliases for long URLs. Whenever a user visits the short URL, they will be redirected to the original URL. Our goal is to design a highly scalable service that could allow users to create shorter URLs from long URLs. This blog focus on TinyURL system design and discussions around various components.

Our weekly newsletter

Subscribe to get weekly content on data structure and algorithms, machine learning, system design and oops.

© 2022 Code Algorithms Pvt. Ltd.

All rights reserved.