<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mohak Chugh — Blog</title>
    <link>https://mohakchugh.is-a.dev/blog</link>
    <description>Engineering notes by Mohak Chugh, SDE 2 at Amazon.</description>
    <language>en</language>
    <atom:link href="https://mohakchugh.is-a.dev/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Iceberg v3 Deletion Vectors: Fixing Merge-on-Read With One Bitmap Per File</title>
      <link>https://mohakchugh.is-a.dev/blog/iceberg-v3-deletion-vectors</link>
      <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
      <description>Apache Iceberg v2 made row-level deletes possible with position delete files, and large deployments have regretted the details ever since. Format version 3 deprecates them in favor of deletion vectors, Roaring bitmaps stored in Puffin files with a hard invariant of at most one vector per data file. Here is what was broken, how the new binary format works down to the byte level, and why the length field is big-endian on purpose.</description>
    </item>
    <item>
      <title>EAGLE-3: Why the Best Draft Models Stopped Predicting Features</title>
      <link>https://mohakchugh.is-a.dev/blog/eagle-3-speculative-decoding-training-time-test</link>
      <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
      <description>EAGLE-3 gets up to 6.5x decoding speedup by abandoning the feature-prediction objective that defined its predecessors. The interesting part is why feature prediction became the bottleneck, and how a trick called training-time test fixes the train/inference mismatch it leaves behind.</description>
    </item>
    <item>
      <title>Native Sparse Attention: Why Trainable Sparsity Beats Post-Hoc Pruning</title>
      <link>https://mohakchugh.is-a.dev/blog/native-sparse-attention-hardware-aligned-long-context</link>
      <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
      <description>DeepSeek's NSA makes attention sparsity a first-class citizen of pretraining instead of an inference-time hack, and pairs it with a kernel design that actually turns theoretical FLOP savings into wall-clock speedups. A close read of the architecture and why most sparse attention schemes before it failed to deliver.</description>
    </item>
    <item>
      <title>RaBitQ: 32x Vector Compression With an Error Bound You Can Actually Prove</title>
      <link>https://mohakchugh.is-a.dev/blog/rabitq-binary-quantization-vector-search</link>
      <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
      <description>Product Quantization has powered billion-scale vector search for 15 years, but it can fail badly on real datasets and offers no theoretical guarantees. RaBitQ (SIGMOD 2024) compresses vectors to one bit per dimension, estimates distances with a popcount, and comes with a provable O(1/sqrt(D)) error bound. Here is how a random rotation makes that possible.</description>
    </item>
    <item>
      <title>How I Built This Portfolio (and Its Blogging Engine) in Angular 22</title>
      <link>https://mohakchugh.is-a.dev/blog/building-this-website</link>
      <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
      <description>A technical walkthrough of rebuilding my portfolio from Angular 9 to Angular 22 with spartan-ng, Tailwind v4, SSG prerendering, a WOW animation system, and a zero-backend blogging engine powered by markdown files.</description>
    </item>
    <item>
      <title>Deterministic Simulation Testing: Finding Distributed Systems Bugs Before They Exist</title>
      <link>https://mohakchugh.is-a.dev/blog/deterministic-simulation-testing</link>
      <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
      <description>FoundationDB shipped a distributed database with essentially zero customer-reported bugs by running its entire cluster inside a single-threaded simulation driven by one random seed. TigerBeetle and Antithesis have since pushed the idea further. Here is how deterministic simulation testing works, why a seed is worth a thousand log files, and where the technique's real limits are.</description>
    </item>
    <item>
      <title>Two Workloads in a Trench Coat: Prefill/Decode Disaggregation in LLM Serving</title>
      <link>https://mohakchugh.is-a.dev/blog/prefill-decode-disaggregation-llm-serving</link>
      <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
      <description>Prefill and decode have opposite hardware profiles, and serving them on the same GPUs wastes both. A practical tour of DistServe and Mooncake, the two papers behind the biggest architecture shift in LLM inference.</description>
    </item>
    <item>
      <title>SIEVE: The Cache Eviction Algorithm That Beats LRU by Doing Less</title>
      <link>https://mohakchugh.is-a.dev/blog/sieve-cache-eviction-simpler-than-lru</link>
      <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
      <description>A 2024 NSDI paper showed that a FIFO queue, one bit per object, and a lazy hand pointer can out-perform LRU, ARC, and friends on web workloads, while removing the lock that makes LRU a scalability bottleneck. Here is how SIEVE works and why its simplicity is the whole point.</description>
    </item>
  </channel>
</rss>
