The argument in one line.
Senior engineers are not paid for writing code but for the architectural decisions that make systems scale, stay available, and stay secure — and every one of those decisions follows a learnable set of trade-offs.
Read if. Skip if.
- A developer with 1-3 years of experience preparing for a system design interview at a mid-to-large company.
- A backend engineer who can implement features but freezes when asked to design something from scratch.
- Someone who wants a single fast-pass through load balancing, REST vs GraphQL, JWT, OAuth2, and RBAC without reading five separate blog posts.
- A developer targeting senior-level roles who needs to close the gap between coding skills and architectural thinking.
- You are already designing distributed systems daily — this course covers foundational to intermediate concepts, not advanced consistency models or consensus algorithms.
- You are looking for hands-on code labs; the course is diagram and concept-driven, not a coding tutorial.
- You need coverage of caching (Redis, CDNs) or big data processing — the course description lists those topics but the video covers only the first two parts (foundations through security).
The full version, fast.
Designing production systems is a skill, not an instinct — and this course maps the entire territory from a single server to horizontally scaled architectures with load balancers, health checks, and SPOF elimination. It then covers API design (REST, GraphQL, gRPC, WebSockets, AMQP), digs into RESTful patterns like filtering/pagination/versioning, and finishes with the full authentication and authorization stack: Basic Auth, session cookies, JWT, OAuth2, RBAC, ABAC, ACLs, and seven API security techniques. Every decision is framed as a trade-off, not a prescription.
Chat with this breakdown — free.
Sign in and you get 23 free chat messages on us — ask for the hook, quote a framework, find the exact transcript moment, generate a markdown action plan. Bring your own key when you want unlimited.
Create a free account →Where the time goes.

01 · Introduction
Course overview: what separates seniors from mid-levels, and a roadmap of all sections covered.

02 · Single Server Setup
How a basic single-server architecture handles DNS resolution, HTTP requests, and web vs mobile traffic. Foundation before adding complexity.

03 · Databases: SQL, NoSQL, Graph
Relational vs NoSQL trade-offs — ACID transactions, key-value stores, wide-column, document, and graph databases. When to use each.

04 · Vertical vs Horizontal Scaling
Why horizontal scaling wins at scale; separating web tier from data tier; stateless server design.

05 · Load Balancing
Round-robin, IP hash, least-connections, weighted algorithms, geographic routing, consistent hashing. Health checks and software vs hardware load balancers (NGINX, HAProxy, AWS ELB).

06 · Health Checks
How load balancers detect server failures and route around them automatically.

07 · Single Point of Failure (SPOF)
Identifying SPOFs in load balancers, databases, and APIs; self-healing system patterns.

08 · API Design
What an API is; REST vs GraphQL vs gRPC comparison; key design principles (consistency, simplicity, security, performance); design process from requirements to lifecycle management.

09 · API Protocols
Where HTTP, WebSockets, AMQP, and gRPC sit in the OSI stack; TCP vs UDP; when to use each protocol; choosing based on interaction pattern and client compatibility.

10 · RESTful APIs
Filtering, sorting, pagination; HTTP methods and CRUD mapping; status codes and error handling; versioning; REST API best practices and common design problems.

11 · GraphQL
Why Facebook built GraphQL; schema and type system; queries and mutations; error handling differences from REST (always 200); best practices.

12 · Authentication
Basic auth, digest auth, session cookies, JWT, access and refresh tokens; OAuth2 (delegated authorization, not authentication); OpenID Connect; SSO. What each actually is and where each fits.

13 · Authorization
RBAC, ABAC, ACLs; OAuth2 as delegated authorization; authentication vs authorization distinction. Common models and their trade-offs.

14 · API Security
Seven techniques: rate limiting, HTTPS/TLS, SQL injection prevention, firewalls, VPNs, CSRF tokens, XSS prevention. Outro pointing to full course channel.
Lines worth screenshotting.
- Companies pay 6-figure salaries for architectural decisions, not coding ability — most mid-level developers cannot design a system from scratch even after years on the job.
- A single server is the correct starting point for system design: build the simple version first, then identify exactly where it breaks under load.
- Horizontal scaling (adding servers) is almost always the right move over vertical scaling (bigger server) because it removes the single-machine ceiling.
- A load balancer that becomes a single point of failure just moves the problem upstream — redundant load balancers with health checks are required, not optional.
- IP hash load balancing is the right choice when servers hold session state; round-robin is correct only when servers are truly stateless.
- GraphQL exists because REST forces clients to either over-fetch data or make multiple round-trips for a single view — Facebook built it to solve exactly that pain.
- GraphQL always returns HTTP 200, even on errors — error state lives in the response body, not the status code, which breaks every REST-era monitoring assumption.
- OAuth2 is an authorization protocol, not an authentication protocol — the access token proves the app can access a resource, not that it knows who the user is.
- JWT is not an authentication method; it is a token format that can carry the output of an authentication step.
- RBAC assigns permissions to roles and roles to users; ABAC checks attributes at runtime — ABAC is more flexible but significantly harder to audit.
- Rate limiting should be applied per-endpoint, per-user, and overall — protecting only one layer leaves the other two open to abuse.
- SQL injection bypasses the entire application layer; parameterized queries are the only reliable defense, not input sanitization alone.
- CSRF tokens work because a malicious site cannot read a server-set token from a different origin — the browser enforces the domain boundary the attacker cannot cross.
- WebSockets require a single handshake and then keep a bidirectional channel open, eliminating the wasted polling requests that inflate latency in real-time apps.
- gRPC is most valuable between microservices, not between browser and server — most browsers do not support HTTP/2 streaming required for full gRPC.
Architecture is a set of learnable trade-offs.
Every architectural decision — from database choice to load balancing algorithm to authentication method — reduces to a trade-off between two forces, and seniors can name those forces on demand.
- Senior engineers are paid for architectural decisions, not implementation speed — the skill gap is in designing systems from rough requirements, not in writing code.
- Start every system design with the simplest working version: one server, one database, one API endpoint. Complexity is added only when you can name the specific bottleneck it solves.
- SQL wins when data is structured with clear relationships and transactional integrity matters. NoSQL wins for unstructured, massive-volume, or ultra-low-latency reads where schema flexibility outweighs ACID guarantees.
- Horizontal scaling requires stateless servers — if a server stores session data locally, IP hash load balancing is a band-aid, not a fix. Move session state to a shared store first.
- The load balancing algorithm choice depends on one question: does the server need to remember the client? If yes, IP hash. If no, round-robin or least-connections.
- Geographic routing is not just a performance optimization — directing users to the nearest region reduces latency enough to affect conversion on latency-sensitive operations.
- Health checks are what make redundancy real — a redundant server that nobody knows is down is not redundant. Every load balancer should fail fast and re-route automatically.
- Every component in a system is a SPOF candidate. The question is not whether a component can fail but whether the system routes around that failure automatically.
- REST is the default for public APIs; GraphQL is the answer when multiple clients with different data shapes hit the same backend; gRPC is the choice for server-to-server internal calls where you control both ends.
- Consistency in API design means other developers can predict the behavior of an endpoint they have never seen before — naming conventions, error shapes, and versioning should be boring and uniform.
- WebSockets are not a performance upgrade to HTTP polling — they are a different communication model. Use them only when the server needs to push data without a client request.
- gRPC requires HTTP/2 on both ends, which rules out direct browser clients. It is most valuable in server-to-server microservice communication where you control both ends.
- Filtering, sorting, and pagination are not features — they are requirements. An API that returns all records by default will eventually break every client that calls it.
- HTTP method semantics matter for caching and retry behavior: GET and PUT are idempotent (safe to retry), POST is not — clients and proxies behave differently based on this.
- GraphQL always returns HTTP 200 — monitoring, alerting, and error-handling logic written for REST will silently miss GraphQL errors unless you inspect the response body.
- OAuth2 gives an app permission to access a resource on a user's behalf. It does not tell you who the user is. If you need identity, add OpenID Connect on top.
- JWT is a format, not a security model. A JWT proves the token was signed by whoever holds the secret key — it says nothing about whether that token should be trusted for this operation.
- Access tokens should be short-lived (minutes to hours); refresh tokens should be long-lived but stored in httpOnly cookies, not localStorage, to prevent XSS theft.
- RBAC is simple to audit — every user has a role and every role has a permission list. ABAC is more flexible but the policy logic becomes a second codebase to maintain.
- Rate limiting at a single layer is not rate limiting — protect per endpoint (high-value routes get tighter limits), per user (burst protection), and overall (DDoS mitigation) independently.
- Parameterized queries eliminate SQL injection at the driver level, making the query structure unchangeable regardless of user input. Input sanitization alone is insufficient.
Terms worth knowing.
- Horizontal scaling
- Adding more server instances to a pool rather than upgrading a single machine. Enables near-linear capacity growth and eliminates single-machine ceilings.
- Load balancer
- A component that distributes incoming requests across a pool of servers using an algorithm (round-robin, IP hash, least-connections, etc.) and removes unhealthy servers via health checks.
- SPOF (Single Point of Failure)
- Any component whose failure brings the entire system down. Eliminated by adding redundancy — duplicate instances that take over automatically on failure.
- REST
- Representational State Transfer — an HTTP-based API style where resources are addressed by URL and manipulated with standard HTTP methods (GET, POST, PUT, PATCH, DELETE).
- GraphQL
- A query language for APIs, created by Facebook, where clients specify the exact shape of the data they need in a single request to a single endpoint, eliminating over-fetching and under-fetching.
- gRPC
- Google's high-performance RPC framework that uses Protocol Buffers over HTTP/2. Most commonly used for server-to-server communication where raw throughput matters more than browser compatibility.
- WebSocket
- A protocol that upgrades an HTTP connection to a persistent, bidirectional channel, allowing servers to push data to clients without polling. Required for real-time features.
- AMQP
- Advanced Message Queuing Protocol — an enterprise messaging protocol that decouples producers and consumers through a message broker, guaranteeing delivery and enabling async processing.
- JWT (JSON Web Token)
- A signed, self-contained token format that encodes claims as JSON. Not an authentication method itself — used to carry authentication or session state between parties without a database lookup.
- OAuth2
- A delegated authorization framework that lets a service access resources on another service on behalf of a user, using short-lived access tokens. It proves the app can access a resource, not that it knows who the user is.
- RBAC (Role-Based Access Control)
- An authorization model that assigns permissions to roles and then assigns roles to users. Simple to audit but inflexible for fine-grained or context-dependent rules.
- ABAC (Attribute-Based Access Control)
- An authorization model that evaluates access based on attributes of the user, resource, and environment at request time. More expressive than RBAC but harder to reason about and audit.
- CSRF (Cross-Site Request Forgery)
- An attack where a malicious site tricks a logged-in user's browser into sending authenticated requests to another site. Mitigated by requiring a secret token the attacker cannot read from a cross-origin page.
- SQL Injection
- An attack that embeds malicious SQL into user input to manipulate database queries. Prevented by parameterized queries, which separate code from data at the database driver level.
- Idempotent (HTTP method)
- A request that produces the same result whether executed once or many times. GET, PUT, and DELETE are idempotent; POST is not — important for safe retry behavior.
Things they pointed at.
Lines you could clip.
“Companies are not paying 6 figures for people who can just code or follow instructions, but they are paying for architectural decisions.”
“If you ask them to design something from the ground up, most of them usually will freeze.”
“These are the skills that I learned to get to senior level within the second year of my career.”
Word for word.
Don't just watch it. Burn it in.
See every word as it's spoken — crank it to 2× and still catch all of it. The same dual-channel trick behind Amazon's Kindle + Audible.
The bait, then the rug-pull.
The line between a mid-level developer and a senior engineer is not code quality — it is the ability to design a system from scratch when requirements are rough and the architecture does not yet exist. This course maps every decision point on that journey.
Named ideas worth stealing.
Scaling ladder (single server to horizontal)
- Single server
- Separate web + data tier
- Vertical scaling
- Horizontal scaling with load balancer
- Stateless servers + shared session store
Progression for scaling a system as user load increases, with each step unlocking the next.
Load balancing algorithm decision matrix
- Round robin (stateless equal servers)
- Weighted round robin (unequal server capacity)
- Least connections (long-lived requests)
- IP hash (session state on server)
- Geographic (global latency reduction)
- Consistent hashing (distributed caching)
Picks the right load balancing algorithm based on server state and traffic characteristics.
API style decision matrix
- REST — standard CRUD, broad client support
- GraphQL — complex data requirements, multiple clients with different needs
- gRPC — server-to-server, high throughput, internal microservices
Selects the right API style based on client type, data complexity, and performance requirements.
Authentication vs Authorization clarification
Authentication = verifying identity (WHO). Authorization = deciding what they can do (WHAT). OAuth2 is authorization-only; OpenID Connect adds identity on top. JWT is a token format, not a method.
7 API Security techniques
- Rate limiting (per endpoint, per user, overall)
- HTTPS/TLS encryption
- SQL and NoSQL injection prevention (parameterized queries)
- Firewalls (whitelist known IPs)
- VPN for internal-only APIs
- CSRF tokens (combined with session cookies)
- XSS prevention (sanitize inputs before storing)
Checklist of baseline API protection techniques every production API should implement.
How they asked for the click.
“I also have deep dives into databases, caching, CDNs and production infrastructure on my YouTube channel. Just search Hikesimonian on YouTube.”
Clean, honest — reveals this freeCodeCamp video is parts 1 and 2 of a longer paid course. Directs to channel for deeper content and full case studies (WhatsApp, Spotify, TinyURL).


































































