Engineering notes and building things.
Mostly backend, systems, and things I misunderstood at first.
This is a collection of notes I write while learning backend systems. Written for clarity, not completeness.
Recent Posts
Mostly backend, systems, and things I misunderstood at first.
This is a collection of notes I write while learning backend systems. Written for clarity, not completeness.
Recent Posts
Recent Posts
Scalability and performance are not the same thing. This post builds a practical mental model for latency, throughput, and capacity, explains vertical vs horizontal scaling, and shows why most production design decisions are trade-offs between speed, cost, and reliability.
A CDN (Content Delivery Network) is a globally distributed reverse proxy + cache that sits between users and your origin. This post builds a practical mental model for how CDNs cache content, how cache keys and HTTP headers control behaviour, what happens on a cache miss, how invalidation really works, and the common production gotchas (cookies, Vary, query strings, auth, and stale content).
DNS turns names like api.example.com into IP addresses. But it’s not a single database—it’s a distributed hierarchy with caching, timeouts, and trade-offs. This post builds a practical mental model of how DNS resolution works, what common record types mean, how TTL and propagation really behave, and how to debug the weird failures you meet in production.
A reverse proxy sits in front of your app servers and acts like the system’s front desk: it terminates TLS, routes requests by host/path, serves static assets, and applies traffic rules. This post builds the mental model, explains how it differs from a load balancer, and covers the practical gotchas you meet in production.
One server works… until traffic arrives in bursts. A load balancer gives you one stable front door and many interchangeable app replicas, spreading requests using policies like round robin, least connections, or IP hash. This post also covers common load balancer types, health checks, and why stateless services matter.
A beginner-friendly guide to software architecture. Understand monolith, layered architecture, microservices, and event-driven design with practical examples and decision tips. What happens when your database goes down, or your app gets hit with a million requests? In this entry, we strip away the intimidating jargon and break down the 4 specific questions you should ask every time you look at a new backend system to understand its architecture.