<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
>
  <channel>
    <title>Kabir Murjani — Writing</title>
    <link>https://kabir.codes</link>
    <description>Technical essays on machine learning, optimization, combinatorial search, and intelligent systems by Kabir Murjani.</description>
    <language>en-us</language>
    <managingEditor>kabir.murjani@iimb.ac.in (Kabir Murjani)</managingEditor>
    <webMaster>kabir.murjani@iimb.ac.in (Kabir Murjani)</webMaster>
    <lastBuildDate>Fri, 05 Jun 2026 03:50:04 GMT</lastBuildDate>
    <atom:link href="https://kabir.codes/rss.xml" rel="self" type="application/rss+xml" />
    <image>
      <url>https://kabir.codes/Of_H.jpg</url>
      <title>Kabir Murjani — Writing</title>
      <link>https://kabir.codes</link>
    </image>

    <item>
      <title>Playing Chess in 57 Megabytes</title>
      <link>https://kabir.codes/writing/chessnano</link>
      <guid isPermaLink="true">https://kabir.codes/writing/chessnano</guid>
      <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
      <description>A transformer that sees only notation, compressed via polar-angle quantization into a file smaller than a photograph.</description>
      <content:encoded><![CDATA[
        <p><strong>Abstract:</strong> There is something philosophically uncomfortable about treating chess as a language modeling problem. Chess has geometry. It has material balance, pawn structure, king safety, tactical patterns that span a dozen moves. A language model has none of that built in. It operates on a flat sequence of tokens with no explicit notion of a board, a square, or a piece. And yet, if you train a transformer on the move sequences of strong players, it has no choice but to learn *something* about chess in order to predict those sequences well. The only interesting questions are how much, and whether that something is enough to make legal moves reliably.</p>
        <p><a href="https://kabir.codes/writing/chessnano">Read the full article →</a></p>
        <img src="https://kabir.codes/blog-1.jpg" alt="Playing Chess in 57 Megabytes" />
      ]]></content:encoded>
      <author>kabir.murjani@iimb.ac.in (Kabir Murjani)</author>
      <category>Machine Learning</category>
    </item>

    <item>
      <title>Dreaming in Proofs</title>
      <link>https://kabir.codes/writing/dreaming</link>
      <guid isPermaLink="true">https://kabir.codes/writing/dreaming</guid>
      <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
      <description>Novelty is not a better optimizer. It is a wild dreamer chained to a merciless judge.</description>
      <content:encoded><![CDATA[
        <p><strong>Abstract:</strong> Here is something I have come to believe after staring at search problems for too long: optimization cannot be creative. Not "is bad at being creative." *Cannot be.* It is the wrong kind of process.</p>
        <p><a href="https://kabir.codes/writing/dreaming">Read the full article →</a></p>
        <img src="https://kabir.codes/blog-2.jpg" alt="Dreaming in Proofs" />
      ]]></content:encoded>
      <author>kabir.murjani@iimb.ac.in (Kabir Murjani)</author>
      <category>Machine Learning</category>
    </item>

    <item>
      <title>Walls, Not Whispers</title>
      <link>https://kabir.codes/writing/whispers</link>
      <guid isPermaLink="true">https://kabir.codes/writing/whispers</guid>
      <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
      <description>A small case for communicating *geometry* instead of *rewards* in distributed search.</description>
      <content:encoded><![CDATA[
        <p><strong>Abstract:</strong> There is a quiet dishonesty in how most distributed reinforcement learning systems talk to each other about failure.</p>
        <p><a href="https://kabir.codes/writing/whispers">Read the full article →</a></p>
        <img src="https://kabir.codes/blog-3.jpg" alt="Walls, Not Whispers" />
      ]]></content:encoded>
      <author>kabir.murjani@iimb.ac.in (Kabir Murjani)</author>
      <category>Machine Learning</category>
    </item>

    <item>
      <title>Rational Amnesia</title>
      <link>https://kabir.codes/writing/amnesia</link>
      <guid isPermaLink="true">https://kabir.codes/writing/amnesia</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <description>Stop decaying your gradients. Start amputating your graphs.</description>
      <content:encoded><![CDATA[
        <p><strong>Abstract:</strong> Here is a failure mode I keep seeing, and I think it is more fundamental than people treat it as.</p>
        <p><a href="https://kabir.codes/writing/amnesia">Read the full article →</a></p>
        <img src="https://kabir.codes/blog-4.jpg" alt="Rational Amnesia" />
      ]]></content:encoded>
      <author>kabir.murjani@iimb.ac.in (Kabir Murjani)</author>
      <category>Machine Learning</category>
    </item>

    <item>
      <title>The Calculus of Laziness</title>
      <link>https://kabir.codes/writing/lazy</link>
      <guid isPermaLink="true">https://kabir.codes/writing/lazy</guid>
      <pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate>
      <description>Why procrastination is not a flaw, but an optimal compression algorithm.</description>
      <content:encoded><![CDATA[
        <p><strong>Abstract:</strong> Every intelligent computation in the universe, whether it is a biological neural network or a student at three in the morning, reduces to exactly two questions:</p>
        <p><a href="https://kabir.codes/writing/lazy">Read the full article →</a></p>
        <img src="https://kabir.codes/blog-5.jpg" alt="The Calculus of Laziness" />
      ]]></content:encoded>
      <author>kabir.murjani@iimb.ac.in (Kabir Murjani)</author>
      <category>Machine Learning</category>
    </item>

    <item>
      <title>Water Finds the Crack</title>
      <link>https://kabir.codes/writing/water</link>
      <guid isPermaLink="true">https://kabir.codes/writing/water</guid>
      <pubDate>Fri, 05 Jun 2026 03:50:04 GMT</pubDate>
      <description>Why your solver doesn't care about your game, and how to force it to play honest.</description>
      <content:encoded><![CDATA[
        <p><strong>Abstract:</strong> Last Tuesday I watched a reinforcement learning agent completely break a agent routing environment I had spent a week building.</p>
        <p><a href="https://kabir.codes/writing/water">Read the full article →</a></p>
        <img src="https://kabir.codes/blog-6.jpg" alt="Water Finds the Crack" />
      ]]></content:encoded>
      <author>kabir.murjani@iimb.ac.in (Kabir Murjani)</author>
      <category>Machine Learning</category>
    </item>
  </channel>
</rss>