// BLOG · PAGE 6 OF 7
All posts
ALL POSTS · 92
ALGORITHMSArrays vs Linked Lists: The Benchmark Textbooks Don't RunJune 2, 20224 minSYSTEMSRing Buffers: The Data Structure at Every Fast BoundaryApril 29, 20224 minMEMORYVirtual Memory: The Lie Every Process BelievesApril 3, 20224 minALGORITHMSWhat Your Language's sort() Actually RunsFebruary 27, 20224 minDATABASESBuffer Pools: Why Databases Don't Trust Your OSJanuary 31, 20224 minPERFORMANCECPU Caches: The Memory Hierarchy Your Code Lives InDecember 20, 20214 minMEMORYPage Tables and the TLB: The Cost of Every AddressNovember 27, 20214 minFUNDAMENTALSWhy 0.1 + 0.2 ≠ 0.3, and Why It's Worse Than You ThinkOctober 22, 20214 minEMBEDDEDMQTT: Why the IoT World Runs on a 1999 ProtocolSeptember 16, 20215 minNETWORKINGQUIC and HTTP/3: Rebuilding TCP in Userspace, on PurposeAugust 22, 20214 minLINUXfork() and Copy-on-Write: Duplicating a Process for FreeJuly 16, 20214 minSECURITYBuffer Overflows: From strcpy to Shell, and the Mitigations That Ended ItJune 22, 20215 minDISTRIBUTED-SYSTEMSConsistent Hashing: Surviving the ResizeMay 19, 20214 minFUNDAMENTALSUTF-8: The Encoding That Won by Being CleverApril 10, 20214 minSYSTEMSError Handling in C: In Defense of goto cleanupMarch 19, 20214 min