OOP organizes computer code into objects. This is different from conventional programming, where programs are just a sequence of tasks.

If a function can call other functions, then it can call itself. This is called recursion.

It is, quite literally, the language we use to express efficiency. Big O will allow you to understand the tradeoff of different features.

How to judge a Distributed System based on its Scalability, Reliability, Availability, Efficiency, and Manageability.


Let’s design a file hosting service like Dropbox or Google Drive to enable users to store their data on remote servers.

Why Cloud Storage?

Let’s design an instant messaging service like Facebook Messenger, where users can send text messages to each other.

What is Facebook Messenger?

Requirements and Goals of the System

Functional Requirements:

  1. Messenger should support one-on-one conversations between users.
  2. Messenger should keep track of the…

Both of them differ in how they were built, the kind of information they store, and how they store it.

Why do we even need Consistent Hashing and how does it work?

index = hash_function(key)

Ajax Polling, Long-Polling, WebSockets, and Server-Sent Events are popular communication protocols between clients like web browsers and web servers.

  1. The client opens a connection and requests data from the server.
  2. The server calculates the response.
  3. The server sends the response back to the client on…


Understand the technical Details behind all your favorite products. We help you put your best foot forward so you can get through the FANG door.

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