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.→Calendar conflicts, meeting rooms, and 'maximum non-overlapping tasks' are all interval problems that collapse into a single sort-then-scan pattern once you pick the right key to sort by.
A probabilistic data structure that answers set-membership queries in constant space by allowing false positives but never false negatives — and why Chrome, Cassandra, and CDNs all rely on that trade.
When an array changes and you still need fast range sum, min, or max queries, prefix sums stop working. Segment trees answer both range queries and point updates in logarithmic time.
One template solves permutations, subsets, N-Queens, and Sudoku. Learn the choose–explore–unchoose pattern and how pruning turns exponential search into something usable.
What Big-O actually measures, how to read a function's complexity straight from its shape, and why O(n log n) beats O(n²) long before n gets big.
What an index physically is, how B-trees make lookups logarithmic, composite index ordering, covering indexes, and the query patterns that silently refuse to use your index.
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.
How DOM events really travel — capture, target, bubble — and how delegation exploits bubbling to handle a thousand rows with a single listener.
Reachability, generational GC, and the four leak patterns that survive garbage collection — timers, detached DOM nodes, growing caches, and forgotten listeners.
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.
148 posts · page 12 of 15