Photo by John Barkiple on Unsplash

How do you design a YouTube or a Netflix? Have you ever wondered how to build a system that handle long running task like uploading and processing videos to platform like YouTube or Netflix. Unlike most of the transactions you see in normal websites, these video process takes minutes to hours to finish. What software components you will need? What design pattern will you apply?

The problem

In terms of workload, it can be categorized as long running and short running. For those load that consumes little compute power and get the result soon, it is easy to provide nice user experience…

Recently Pi network apprears a lot in all kinds of social networks. It is a genuine effort by a team of Stanford graduates to give everyday people greater access to cryptocurrency. Many people treat it as a promising cryptocurrency. It has drawn lots of attention even when it still has no value at the moment. The FOMO drives people to mine before it becomes hard to mine. According to this tweet, it has more than 13 million pioneers mining Pi Coins in the network with their phones since launched. The current rate is 0.2π/h. …

Photo by Clint Adair on Unsplash

(This post is also available in my blog)

How do you design a YouTube or a Netflix? Have you ever wondered how to build a system that handle long running task like uploading and processing videos to platform like YouTube or Netflix. Unlike most of the transactions you see in normal websites, these video process takes minutes to hours to finish. What software components you will need? What design pattern will you apply?

The problem

In terms of workload, it can be categorized as long running and short running. For those load that consumes little compute power and get the result soon…

Photo by Joshua Sortino on Unsplash

(this post is also available in my blog)

Cache is a data store that serves data at a relatively fast speed. There are hardware and software caches. In system design interview, we will focus on software cache mostly. In many cases, cache are blocks of memory that store data. Since the speed of accessing memory is much faster than IO like disk and network, applications can put the data in memory to avoid accessing IO. As a result, throughput can be increased and latency can be decreased.

Not all data fits in cache

Cache is stored in memory, and it is usually much smaller than a…

Photo by Johanna Buguet on Unsplash

(this post is also available in my blog)

Clarification

System design interviews, like coding interviews, do not only test candidates’ technical skills, but also validate if candidates can solve a problem that’s not well defined. Questions are asked vaguely and generally. It’s candidates’ job to find out the requirements and come up with a proper design. It’s a common mistake for a candidate to jump into design right after the get the question. For a question like design at Twitter, you may need to find out what core features are needed to consider, registration? profile? text tweet? video/image tweet? Timeline? Other…

Photo by Taylor Vick on Unsplash

(This post is also available in my blog)

Many systems require permanent data store to store application data. With the rise of NoSQL databases in these years, it is critical to identify to different strengths of SQL and NoSQL databases, and pick the right database that fit your use case. When it comes to technical system design interview in those big tech companies, being able to compare the tradeoff of SQL and NoSQL can be a good indicator of a competent candidate.

Schemaless

The key difference, of course, is the structure of the data. As you know, in the world of…

Photo by Isaac Smith on Unsplash

(this post is also available in my blog)

System design is common in technical interview these days. If coding interview validate the ability to code, then system design interview validates the ability to build. It verifies whether a candidate can build a system that can perform at scale and tolerant faults. There are so many great resources, like Groking System Design or Designing Data-Intensive Applications which give you great examples and details about the best practice for system design. But after I talked to many people, I feel many of them tend to memorize the solutions for each example. Hence…

J Li

Share & like to support. Passionate in Tehnology, Investment. My YouTube Channel https://bit.ly/3bBOjtJ. Opinions are my own.

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