File Storage and Sharing Services

Google Drive is a file hosting system powered by Google. It offers cloud file storage and synchronization service, allowing users to store their data on remote servers. Besides storing the file on these servers, Google Drive will also synchronize their files across multiple devices that they use and share it with other users as requested. Dropbox, OneDrive and Google Photos are similar applications that handle file storage and sharing for massive amounts of files for millions of users.

Based on the design of Google Drive, let’s create a basic file storage and sharing service that can scale to millions of…


Designing Netflix

A video streaming service, such as Netflix or YouTube, is a platform where content creators can upload videos and viewers can search and play videos. Additionally, it’s also able to record video statistics, such as the number of views, number of likes/dislikes, number of minutes watched, etc.

While users pay a monthly subscription fee to enjoy the services of Netflix, YouTube is an advertisement-based service that users enjoy free of cost. Nevertheless, both are video streaming services with similar design basics. Let’s see how a basic video streaming service is designed.

System Requirements

YouTube and Netflix are among the biggest video streaming…


Ride-sharing app

With a few taps on the phone, you can make a ride available at your doorstep to take you wherever you want. This is possible with a ride-sharing service such as Uber or Grab. How does such a service handle each ride request? Moreover, how does it scale the service to millions of users. Designing Uber (or Grab or Lyft) is a common question you can encounter in the system design round in interviews. In this post you’ll learn how to design a ride-sharing app.

If you are preparing for tech interviews at FANGs, you may want to check out…


Photo-sharing apps

Instagram is one of the most popular photo-sharing app today, with around 1 billion monthly active users according to Statista. Similar services, such as Flickr, Picasa, Pinterest and Snapchat also have their fair share of following. The basic purpose of such apps is to upload and share pictures with other users but there are plenty of other features too, to keep the interests of the users alive.

If you were asked to design Instagram or a similar photo-sharing app in a system design interview, how will you go about it? …


Designing a Messaging Application

Almost everyone has at least one of the popular chat apps installed on their phones. Messaging services like Facebook Messenger, WhatsApp, Discord and Slack allow you to send and receive messages from other users. Different apps have different functions, but there are certain key features that are common in all of them.

Check out the course Coderust: Hacking the Coding Interview for Facebook and Google coding interviews.

Let’s design an instant messaging service that supports one-on-one chat between users through mobile and web interfaces. Depending on your requirements, you may design a system that supports group chats too.

How To Design A Messaging App

Designing a…


Designing a News Feed

System design interviewers at Big Tech, such as Facebook, Google, and Microsoft often ask the candidates to design Facebook’s News Feed. Twitter’s timeline, Quora’s News Feed and Instagram’s News Feed will have similar architecture.

A News Feed is a collection of the trending stories on the homepage of the web application. It can include status updates, posts, comments, likes, photos, and videos from the user’s followees on the application.

Check out the course Coderust: Hacking the Coding Interview for Twitter and Facebook coding interviews.

Basic Design Requirements

System design interview questions are almost always open ended, so there’s never a standard answer. Ask…


Data Consistency Models

There are several different consistency models in distributed systems. Each one is appropriate for different use cases and has its own pros and cons. For now, we are interested in the two most popular ones in use today: eventual consistency and strong consistency.

If you are preparing for tech interviews at FANGs, you may want to check out the course Grokking the System Design Interview by Educative.

An understanding about their distinguishing concepts, their benefits and drawbacks, and use cases where they would apply suitably will help you develop a practical model for your own distributed system.

Top YouTube Videos On Strongly Consistent VS Eventually Consistent Systems


Below are the most commonly asked system design interview questions at Big Tech such as Facebook, Microsoft, Google, Tesla, Salesforce etc.

Check out the course Grokking the System Design Interview from our sponsor Educative.

System Design

1. How To Design Twitter/ Facebook News Feed (or similar social networking service)

Key Features / Requirements

  • The user can register and delete an account, and recover its password.
  • The user can post within seconds, and it may contain text, images or videos.
  • The user should be able to see timelines, including a user timeline which shows his/her own posts, home timeline which includes posts from those he/she follows and search timelines via keywords.
  • The user should receive notifications through email or mobile…


URL Shortener

A popular set of system design interview questions are related to the design of a URL shortener. It’s important to build your concept on the fundamentals, design constraints, and trade-offs involved in URL shortening service that is real time scalable. Let’s design a URL shortener similar to bit.ly.

If you are preparing for tech interviews at FANGs, you may want to check out the course Grokking the System Design Interview by Educative.

What Does A URL Shortener Do?

The goal of a URL shortener is simple. It is a service, like bit.ly or tinyurl.com, that creates a short URL against the original long URL. …

SystemDesign

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store