Blog

Notes on data structures & algorithms, system design, and things I learn along the way.

Learning DSA? Follow the structured path — ordered articles from recursion to dynamic programming.→
July 13, 2026Database Indexing: Why Your Query Is Slow (and How B-Trees Fix It)10 min read

What an index physically is, how B-trees make lookups logarithmic, composite index ordering, covering and partial indexes, reading EXPLAIN ANALYZE, index types beyond the B-tree, adding indexes safely in production, and the query patterns that silently refuse to use your index.

#System Design
July 13, 2026ESM vs CommonJS: What Actually Differs (and Why It Still Bites)5 min read

require vs import isn't just syntax — it's dynamic vs static, copies vs live bindings, sync vs async. A field guide to the module systems and the interop errors between them.

#JavaScript
July 13, 2026Event Delegation: One Listener to Rule the List4 min read

How DOM events really travel — capture, target, bubble — and how delegation exploits bubbling to handle a thousand rows with a single listener.

#JavaScript
July 13, 2026JavaScript Memory Management: How the Garbage Collector Thinks5 min read

Reachability, generational GC, and the four leak patterns that survive garbage collection — timers, detached DOM nodes, growing caches, and forgotten listeners.

#JavaScript
July 13, 2026Load Balancing Strategies: From Round Robin to Consistent Hashing10 min read

How load balancers decide where each request goes — the classic algorithms, L4 vs L7, health checks, and the sticky-session problem that pushes state out of your servers.

#System Design
July 13, 2026Stacks and Queues: Two Rules That Run Your Whole Program5 min read

LIFO and FIFO look trivial until you notice they power your call stack, undo history, browser navigation, and every BFS. Plus the classic interview patterns for each.

#DSA
July 13, 2026Topological Sort: Putting Dependencies in Order5 min read

Build systems, package managers, and course schedulers all answer the same question: what order satisfies every dependency? Kahn's algorithm answers it — and detects impossible cycles.

#DSA
July 13, 2026Union-Find: Connectivity in (Almost) Constant Time5 min read

The disjoint set union structure answers 'are these two connected?' in near-O(1) — with two optimizations you can write in twenty lines. Includes Kruskal's MST and cycle detection.

#DSA
July 12, 2026Consistent Hashing: Scaling Without Reshuffling Everything10 min read

Why `hash % N` falls apart the moment you add a server, how consistent hashing moves only a fraction of your keys when the cluster changes, virtual nodes, replicas on the ring, bounded loads, rendezvous and jump hashing, and what Cassandra and Redis Cluster actually do.

#System Design
July 12, 2026Generators and Iterators: Functions That Pause4 min read

The protocol behind for...of, the spread operator, and async/await — plus generator functions, which can pause mid-execution and resume exactly where they left off.

#JavaScript

202 posts · page 18 of 21