DSDoogal Simpsonindoogal.dev·4h ago · 5 min readHow Java HashMap Prevents Hash Collision DoS AttacksJava's HashMap mitigates Hash Collision Denial of Service (DoS) attacks by automatically converting congested linked list buckets into Red-Black trees once a bucket exceeds 8 entries and the total map00
DSDoogal Simpsonindoogal.dev·2d ago · 5 min readHow Structural Sharing Makes Immutability FastIf you need to update a single element in an immutable list containing one million items, you do not have to copy all one million elements. Instead, functional ecosystems like Scala, Clojure, and Immu00
ZZyVOPinblog.zyvop.com·Sep 27 · 11 min readBig-O Notation Explained: The Regex That Took Down Cloudflare for 27 MinutesAt 13:42 UTC on July 2, 2019, Cloudflare's network stopped answering requests. Not slow. Down. For 27 minutes, a huge slice of the web returned 502 errors instead of loading. The cause wasn't a DDoS a00
ZZyVOPinblog.zyvop.com·Sep 27 · 10 min readArrays Explained from Memory to Big O (With Real Benchmarks)This Loop Should Delete Three Items. It Deletes Two. scores = [45, 30, 88, 92, 15, 67] for score in scores: if score < 50: scores.remove(score) print(scores) Read that and guess the out00
ZZyVOPinblog.zyvop.com·Sep 23 · 6 min readBloom Filters: The Data Structure That's Allowed to Lie (A Little)Chrome checks every URL you visit against a list of millions of known malicious sites, before the page loads, without a network round trip for most of them, and without storing a multi-gigabyte blockl00
DSDoogal Simpsonindoogal.dev·Sep 20 · 5 min readHow Gap Buffers Optimize Text Editor PerformanceGap buffers optimize text editor performance by placing a dynamic, invisible block of empty space (a gap) directly at the cursor's location. Instead of shifting subsequent characters on every keystrok00
DSDoogal Simpsonindoogal.dev·Sep 19 · 5 min readHow Ring Buffers Work: Low-Latency Circular QueuesA ring buffer (or circular queue) prevents media stuttering by managing data streams inside a fixed-size array using two pointers (read and write). By wrapping pointers back to the start when they rea00
DSDoogal Simpsonindoogal.dev·Sep 17 · 5 min readSkip Lists: The O(log n) Alternative to Balanced TreesTL;DR: A skip list is a probabilistic data structure that upgrades a standard linked list's O(n) search time to O(log n). By layering multiple sorted "express lane" linked lists on top of each other, 00
DSDoogal Simpsonindoogal.dev·Sep 5 · 5 min readBloom Filters: Prevent Expensive Database QueriesLet’s face it: querying a database or hitting a Redis cache just to check if an ID exists is a massive waste of resources when 99% of the time the answer is "no". If you do this millions of times a se30
DSDoogal Simpsonindoogal.dev·Sep 3 · 6 min readArray vs Linked List: Memory, Cache, and PerformanceAn array is like a bookshelf where you can grab any book instantly by its index. A linked list is a treasure hunt where every node only knows where the next one is. This makes searching a linked list 11L