CSCaching and CDNs: why the second load is instantHow Cache-Control headers control browser caching, what a CDN actually does, and why cache invalidation is one of the two hard problems in computing.Aug 29, 2026·6 min
CSProject: trace a real request end to endUse dig, curl -v, and openssl s_client to trace a real HTTPS request through every layer this series covered: DNS, TCP, TLS, and the HTTP exchange.Aug 29, 2026·6 min
CSCookies and how sites remember youHTTP has no memory between requests. Cookies fix that: how Set-Cookie works, session tokens vs stored data, and the flags that keep cookies secure.Aug 28, 2026·5 min
CSCORS: why the browser blocked your requestWhy the browser, not the server, blocks cross-origin requests by default, what a preflight request checks, and how to actually fix a CORS error.Aug 28, 2026·6 min
CSWhy HTTP got rewritten twiceHTTP/1.1's head-of-line blocking problem, how HTTP/2 fixed it with multiplexing, and why HTTP/3 had to leave TCP behind entirely to fix it again.Aug 27, 2026·5 min
CSHTTPS and TLS: how the padlock worksHow TLS encrypts a connection, why TLS 1.3 needs one round trip instead of two, and what the browser padlock does and doesn't protect.Aug 27, 2026·6 min
CSHTTP: the request and response contractThe anatomy of an HTTP request and response: methods, headers, bodies, and status codes. Inspect real request/response pairs interactively.Aug 26, 2026·5 min
CSStatus codes and headers that actually matterThe HTTP status codes worth memorizing (200, 201, 204, 400, 401, 404, 409, 500) and the headers that control caching, content, and auth.Aug 26, 2026·6 min
CSDNS: how names become addressesHow DNS resolves a domain name to an IP address, step by step: stub resolvers, recursive resolvers, root servers, and why caching makes the second lookup free.Aug 25, 2026·6 min
CSTCP vs UDP: reliable or fast, pick oneHow TCP's three-way handshake builds a reliable connection, what UDP skips to go faster, and why video calls and web pages make opposite trade-offs.Aug 25, 2026·6 min
CSIP addresses and packets: how data finds youWhat an IP address actually is, why data travels in packets instead of one stream, and how routers pass them along. The layer under DNS and TCP.Aug 24, 2026·7 min
CSWhat happens when you type a URL and hit enterThe full journey from keystroke to rendered page: DNS, TCP, TLS, HTTP, and rendering. The map this whole networking series fills in, piece by piece.Aug 24, 2026·7 min
CSProject: Build an LRU CacheCombine a hash map with an ordering structure to build an LRU cache with O(1) get and put that evicts the least-recently-used item, with live visualizers.Aug 18, 2026·6 min
CSIntro to Dynamic Programming: MemoizationWhy naive recursive Fibonacci is exponential, how overlapping subproblems cause it, and how memoization makes it linear, with a live call-stack visualizer.Aug 18, 2026·6 min
CSBinary Search Trees: Ordered in O(log n)How the BST rule (left < node < right) gives O(log n) search, why inorder traversal comes out sorted, and the skewed worst case, with a live tree visualizer.Aug 17, 2026·7 min
CSGraphs & Traversal: BFS and DFSGraphs, adjacency lists, and the two ways to visit every node: BFS with a queue for shortest hops, and DFS with recursion to go deep, shown with live visualizers.Aug 17, 2026·6 min
CSLinked Lists: Pointers, Nodes & Trade-offsLinked lists chain nodes with next pointers for O(1) inserts but O(n) indexing. See the trade-offs vs arrays with an interactive visualizer and runnable Python.Aug 16, 2026·5 min
CSTrees & Binary Trees: TraversalsTrees model hierarchies with roots, children, and leaves. Learn binary trees and the four traversals (in/pre/post-order and BFS) with visualizers and Python.Aug 16, 2026·6 min
CSBinary Search: Halving the HaystackSearch a sorted array in O(log n) by halving it every step. Watch lo, mid, and hi close in on the target with an interactive visualizer and runnable Python.Aug 15, 2026·5 min
CSStacks & Queues: LIFO vs FIFO, ExplainedStacks (LIFO) and queues (FIFO) drive undo, the call stack, and task processing. See their core ops with interactive visualizers and runnable Python.Aug 15, 2026·5 min
CSSorting II: Merge Sort & QuicksortDivide and conquer sorting: merge sort's stable O(n log n) and quicksort's partitioning, average O(n log n) and worst O(n²), with a live visualizer and runnable Python.Aug 14, 2026·6 min
CSSorting I: Bubble, Selection & InsertionThe three quadratic sorts explained: how bubble, selection, and insertion sort each work, why they're O(n²), with a live visualizer and runnable Python.Aug 14, 2026·5 min
CSRecursion & the Call StackHow recursion actually works: base case vs recursive case, and how the call stack grows and unwinds, visualized step by step with runnable Python you can edit.Aug 13, 2026·5 min
CSTwo Pointers & the Sliding WindowTwo interview-favorite patterns that turn O(n²) brute force into O(n): two pointers and the sliding window, shown live and in runnable Python you can edit.Aug 13, 2026·5 min
CSArrays & Strings: The Workhorse Data StructureHow arrays use contiguous memory for O(1) indexing but O(n) search and insert, and why strings are immutable arrays of characters, with a live two-pointer scan and Python.Aug 12, 2026·6 min
CSHash Maps & Sets: O(1) Lookups ExplainedHow hashing maps a key to a bucket for average O(1) lookups, what collisions and chaining are, and why order isn't guaranteed, with a live visualizer and runnable Python.Aug 12, 2026·6 min
CSBig-O Notation: Measuring How Code ScalesBig-O is the language of growth: constant, linear, quadratic, log and linearithmic explained. Drop the constants, read any snippet's cost, with a live chart and Python.Aug 11, 2026·6 min
CSWhy Data Structures & Algorithms (and How to Think About Speed)What DSA really is, why 'it works' and 'it works at scale' are different problems, and how to reason about cost, with a live growth chart and runnable Python.Aug 11, 2026·6 min