<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Mohit Gauniyal — Blog</title>
        <link>https://mohitgauniyal.com/blog</link>
        <description>Software Engineer, Consultant &amp; Educator focused on designing and shipping scalable, maintainable software systems.</description>
        <language>en</language>
        <lastBuildDate>Thu, 07 May 2026 00:00:00 GMT</lastBuildDate>
        <atom:link href="https://mohitgauniyal.com/rss.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title>A Behind-the-Scenes Look at the Architecture of a Large Scale Society Platform</title>
            <link>https://mohitgauniyal.com/blog/society-platform-architecture</link>
            <guid isPermaLink="true">https://mohitgauniyal.com/blog/society-platform-architecture</guid>
            <description>When you build software that maps to physical real estate, the naive approach usually fails. A look at the core system design, the tough architectural decisions, and why these decisions were made.</description>
            <category>Engineering Decisions</category>
            <pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title>The shortest path already exists. Nobody&apos;s using it.</title>
            <link>https://mohitgauniyal.com/blog/the-shortest-path-already-exists</link>
            <guid isPermaLink="true">https://mohitgauniyal.com/blog/the-shortest-path-already-exists</guid>
            <description>Everything travels to the cloud and back, even when it&apos;s just two metres away. I&apos;m exploring why we stopped questioning this &apos;world tour&apos; for local data and how the shortest path already exists, but we&apos;re just not using it.</description>
            <category>From the Trenches</category>
            <pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title>The Rate Limiter That Framed CORS</title>
            <link>https://mohitgauniyal.com/blog/the-rate-limiter-that-framed-cors</link>
            <guid isPermaLink="true">https://mohitgauniyal.com/blog/the-rate-limiter-that-framed-cors</guid>
            <description>A dashboard outage that looked like a CORS issue, but was actually a rate limiting + polling spiral problem—and how fixing middleware order, switching to per-user buckets, and moving to Socket.IO cut traffic by 95%.</description>
            <category>Debugging &amp; Incidents</category>
            <pubDate>Sat, 31 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title>If Request B Doesn&apos;t Need A, Stop Waiting</title>
            <link>https://mohitgauniyal.com/blog/if-request-b-doesnt-need-a-stop-waiting</link>
            <guid isPermaLink="true">https://mohitgauniyal.com/blog/if-request-b-doesnt-need-a-stop-waiting</guid>
            <description>Ship only what’s visible, parallelize what you can, mitigate first, and make “fast” feel progressive, not perfect.</description>
            <category>From the Trenches</category>
            <pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title>Anticipation Is Not Optimization</title>
            <link>https://mohitgauniyal.com/blog/anticipation-is-not-optimization</link>
            <guid isPermaLink="true">https://mohitgauniyal.com/blog/anticipation-is-not-optimization</guid>
            <description>A real-world case of how pre-computing, aggressive caching, and waterfall-style flows created unnecessary system load—and how delaying work made the system simpler and more predictable.</description>
            <category>Engineering Decisions</category>
            <pubDate>Tue, 07 Oct 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title>Don&apos;t Cache on Timers. Cache on Events.</title>
            <link>https://mohitgauniyal.com/blog/dont-cache-on-timers-cache-on-events</link>
            <guid isPermaLink="true">https://mohitgauniyal.com/blog/dont-cache-on-timers-cache-on-events</guid>
            <description>Your cache is fast. Your database is correct. But your UI still shows stale data for 60 seconds. This is the story of ghost states, O(N) pain at scale, and why event-aware invalidation beats timer-based caching every single time.</description>
            <category>From the Trenches</category>
            <pubDate>Sat, 21 Jun 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title>Machine Learning Through First Principles, Not Buzzwords</title>
            <link>https://mohitgauniyal.com/blog/machine-learning-through-first-principles-not-buzzwords</link>
            <guid isPermaLink="true">https://mohitgauniyal.com/blog/machine-learning-through-first-principles-not-buzzwords</guid>
            <description>Machine Learning isn’t magic. It’s just pattern finding and thing labelling. First you see clean examples like mango pricing, then real life messy data comes in and you learn to draw a line that approximates best. That’s ML — give examples, not instructions, and the algo somehow stitches the recipe.</description>
            <category>How I’d Explain It</category>
            <pubDate>Fri, 02 May 2025 00:00:00 GMT</pubDate>
        </item>
    </channel>
</rss>
