← All videos

46:04 · 22 October 2026

System Design Interview Full Course: API Design, Caching, Scalability, Databases (Mid to Senior)

Chapters 24 sections

  1. 0:00Designing LinkedIn's job search
  2. 0:45How to structure a system design interview
  3. 1:31Functional requirements
  4. 2:48Non-functional requirements

Key concepts in this video:

1. Non-functional requirements

Non-functional requirements describe how the system should behave: how fast it loads, how much traffic it supports, when traffic peaks and where users are based. Use these questions to understand how scalable the system needs to be.

Hear it at 2:48 →

2. Back-of-the-envelope estimates

Break daily activity down into requests per second and compare reads with writes. In this example, the job-view read-to-write ratio is 500 to 1—a number that helps guide later scaling decisions.

Hear it at 4:26 →

3. REST API design

Start with a simple REST API and write out an endpoint fully. For job search, Bogdan uses a GET request to the jobs endpoint, with the URL naming the entity rather than adding an action like search.

Hear it at 7:53 →

Transcript

So, today we are building the LinkedIn job search page and our final system design will look like this. So, we will have things like API gateways, load balancing, we will touch on scalability, API design, what kind of database to choose, when to use caching and load balancing, and even more in-depth topics like database indexing, using Elastic Search to scale your search, and then scaling the whole architecture by moving towards an event-driven approach. The reason why I chose this specific system is because number one, it's a real system that one of the engineers that we mentored as a senior dev got, and number two, because it really touches on all the essentials that you need to know to pass a senior system design interview.