Blog
System design, taken apart properly.
Long-form breakdowns of real systems — the architecture, the failure modes, and how to actually present them in an interview.
Firewall Explained: How It Actually Secures an Organisation
A firewall is not just a box that blocks ports. It is a policy engine that decides which traffic is trustworthy based on identity, state, behaviour and context. Here is how that decision is made.
Read the deep diveForward Deployed Engineer (FDE) Roadmap: The Role, The Loop, The Prep
Half product engineer, half consultant, entirely accountable for the customer's outcome. A practical roadmap for the fastest-growing engineering title in AI.
Read the deep diveEverything You Need to Know About an HTTP Request
An HTTP request is a plain text envelope on top of a very carefully engineered stack. Here is the whole journey — resolution, handshake, framing, headers, body, response, reuse.
Read the deep diveAll HTTP Methods Explained: GET, POST, PUT, PATCH, DELETE and the Rest
Methods are contracts, not labels. Safety and idempotency decide what a proxy may cache, what a client may retry, and what a crawler is allowed to touch.
Read the deep divePUT vs PATCH vs POST: Choosing the Right Write Method
They all write. They differ in who owns the resource identity, whether the payload is complete, and what happens when the client retries after a timeout.
Read the deep diveHTTP Status Codes and Headers: The Practical Guide
Returning 200 with an error inside the body is the most common API design mistake there is. Status codes are the machine-readable half of your contract.
Read the deep diveTypes of APIs Explained: REST, GraphQL, gRPC, WebSockets, Webhooks and More
There is no best API style. There is a request/response axis, a streaming axis, and a who-calls-whom axis — and most real systems use three of these at once.
Read the deep diveREST API Design: Constraints, Resources, Versioning and Pagination
REST is a set of architectural constraints, not a JSON-over-HTTP aesthetic. The constraints are what buy you caching, scalability and clients that do not break.
Read the deep diveGraphQL Explained: Schema, Resolvers, N+1 and When Not To Use It
One endpoint, a typed schema, and clients that ask for exactly what they need. The power is real; so are the N+1 queries, the lost HTTP caching and the DoS surface.
Read the deep divegRPC Explained: Protobuf, HTTP/2, Streaming and Deadlines
Contract-first RPC over HTTP/2 with binary payloads. Smaller, faster and strictly typed — at the cost of browser support and human readability.
Read the deep diveRealtime APIs: WebSockets vs SSE vs Long Polling vs Webhooks
Most teams reach for WebSockets when Server-Sent Events would do the job over ordinary HTTP with free reconnection. Here is how to tell the difference before you commit.
Read the deep dive10 Design Patterns You Need in the AI Era
Code generation got cheap. Reasoning about production failure modes did not. These ten patterns are the vocabulary senior engineers use to describe what breaks and why it stays contained.
Read the deep diveSaga Pattern: Transactions That Span Multiple Services
Payment succeeded, inventory failed, the customer is charged for stock you do not have. A saga is the disciplined answer to partial failure across service boundaries.
Read the deep diveCircuit Breaker: Stop One Slow Service From Taking Down Everything
Checkout did not break. It waited. Threads piled up behind a slow recommendation call until the pool was gone. A circuit breaker is how you refuse to wait.
Read the deep diveBulkhead Pattern: Containing the Blast Radius
Recommendations went slow and payments stopped. Not because they were related — because they shared a thread pool. Bulkheads make that impossible by construction.
Read the deep diveTransactional Outbox: When the Database Commits but Kafka Never Hears
The order exists. The event does not. Inventory never reserved, the warehouse never printed a label, and no error was logged anywhere. The dual-write problem, and its standard fix.
Read the deep diveIdempotency: Why the Same Request Twice Must Charge Once
The user tapped PAY NOW once. The network timed out, the SDK retried, and ₹5,000 left their account twice. Idempotency is the cheapest insurance in distributed systems.
Read the deep diveCQRS: When Reads and Writes Stop Wanting the Same Database
Your normalised order schema is perfect for writes and terrible for the six-join query powering search. CQRS stops pretending one model can be optimal for both.
Read the deep diveCache-Aside: The Default Caching Strategy and Its Sharp Edges
Your database should not answer the same query ten thousand times an hour. Caching is easy; invalidation, stampedes and staleness are the actual engineering.
Read the deep diveAPI Gateway: One Front Door for Many Services
Ten services, three clients, thirty integration points and auth implemented ten slightly different ways. The gateway collapses that into one edge you can actually reason about.
Read the deep diveStrangler Fig: Replacing a Monolith Without a Big-Bang Rewrite
Two years of parallel development, a frozen legacy system and a launch weekend nobody survives. Or: move /products this sprint, keep everything else running, and repeat.
Read the deep diveEvent-Driven Architecture: Loose Coupling and the Bill That Comes With It
Adding an analytics consumer should not require a pull request on the order service. That is the promise. The price is that 'done' no longer has a single moment in time.
Read the deep diveMulti-Agent Orchestration Patterns: Supervisor, Pipeline, Swarm and Hierarchy
Multi-agent is a topology decision, not a vibe. Pipeline, supervisor, hierarchy and swarm each fail differently — pick by coupling and failure containment, not by how impressive the diagram looks.
Read the deep diveEntity Resolution: The Hardest Part of Any Knowledge Graph
Every failed knowledge graph project I have seen failed here. Extraction is easy now; deciding that 'Acme Corp' and 'ACME Corporation Ltd' are one node is still genuinely hard engineering.
Read the deep diveGraphRAG vs Vector RAG: Which Retrieval Architecture Actually Fits
Vector search answers 'what does the corpus say about X'. It cannot answer 'which suppliers are two hops from a sanctioned entity'. Knowing which question you have is the whole architecture decision.
Read the deep diveBuild Agentic Workflows with Graph Engineering (LangGraph in Practice)
A prompt chain is a straight line. Real agents need loops, retries, human approval and resumability — and that is exactly what modelling the workflow as a graph gives you.
Read the deep diveBuild Your Own Knowledge Graph: A Practical End-to-End Guide
Most knowledge graph tutorials stop at 'here is a node and here is an edge'. This one walks the whole pipeline: ontology first, extraction second, entity resolution third, and only then the database.
Read the deep diveGraph Engineering in AI: Agentic Graphs vs Knowledge Graphs
One phrase, two disciplines. Agentic graph engineering shapes how an LLM application executes; knowledge graph engineering shapes what it knows. Confusing them is why so many AI architecture discussions go sideways.
Read the deep diveHow MCP Works: The Model Context Protocol, Explained by Design
MCP is not a product, it is a wire protocol. Once you see it as JSON-RPC plus a capability handshake plus two transports, the whole thing becomes obvious — and so do its failure modes.
Read the deep dive12 Free Tools That Make Developers' Lives Easier
Every tool here solves a specific daily problem: sketching architecture, decoding a JWT, testing an API, reading docs offline, or finding out what your image files are quietly carrying. All free, most open source.
Read the deep dive100+ Engineering Blogs Every Developer Should Read (2026 Edition)
Independent engineering blogs are where mental models come from; company blogs are where case studies come from. Here is the full map — 12 categories, 100+ links, plus the 20 that matter most if you only have time for a shortlist.
Read the deep diveHow Your Phone Knows You're Walking, Running or Driving
Your phone silently classifies you as still, walking, running, cycling or driving — all day, on a few milliwatts. Here is the actual pipeline: raw IMU signals, gravity separation, windowed features, a classifier, and a smoothing layer that hides its mistakes.
Read the deep diveEvery Part of a URL, Explained — Scheme, Host, Path, Query & Fragment
You read hundreds of URLs a day and probably can't name half their parts. Here's the full anatomy of a URL, with diagrams — and the rule for choosing path parameters over query parameters in API design.
Read the deep diveHow UPI Payments Actually Work — NPCI, System Design & the Interview Playbook
13+ billion transactions a month, ~7,000 TPS at peak, sub-second settlement, and near-zero tolerance for money loss. Here's how UPI is built — and how to design it on a whiteboard.
Read the deep dive