Blog
Thoughts, write-ups, and notes on building software, design, and everything in between.
Caching in System Design Interviews

Caching is a key system-design technique for improving performance and reducing database load by storing frequently accessed data in faster storage. These notes cover where caching fits in a system, common architectures such as cache-aside, write-through, write-behind, and read-through, eviction pol
Message Queues in System Design Interviews

Message queues are a fundamental building block in distributed systems and a common topic in system design interviews. They enable asynchronous communication between producers and consumers, helping applications reduce latency, handle traffic spikes, improve reliability, and scale services independe
Why LSTMs Work: The One Line That Makes Long-Range Memory Possible

Plain recurrent networks forget everything past about ten steps. LSTMs don't. The reason comes down to a single equation — and it's the same trick that makes ResNets and Transformers trainable.
API Gateway Deep Dive: Fundamentals, JWT Auth & Revocation Strategies

A comprehensive guide to how API Gateways work, how they validate JWTs, and the tradeoffs behind token revocation. Table of Contents Part 1: API Gateway Fundame...
Semantic Matching Without a Single Line of Training Data

How I designed an embeddingbased job–candidate matching service and why the interesting decisions were the ones I said "no" to. The setup I'm building a job pla...