<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Writing — Bhupesh Roushan</title>
    <link>https://www.bhupesh.blog/writing</link>
    <description>Engineering decisions written up from the commits that record them.</description>
    <language>en</language>
    <atom:link href="https://www.bhupesh.blog/writing/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>470 students were told they failed a run that never happened</title>
      <link>https://www.bhupesh.blog/writing/atlas-false-failures</link>
      <guid isPermaLink="true">https://www.bhupesh.blog/writing/atlas-false-failures</guid>
      <pubDate>Wed, 01 Jul 2026 09:00:00 GMT</pubDate>
      <description>An absent record is not a failure record — and what a timed-out read actually tells you.</description>
      <category>Failure modes</category>
      <category>Fail closed</category>
      <category>Data integrity</category>
    </item>
    <item>
      <title>The safety net was breaking the grades</title>
      <link>https://www.bhupesh.blog/writing/atlas-constrained-decoding</link>
      <guid isPermaLink="true">https://www.bhupesh.blog/writing/atlas-constrained-decoding</guid>
      <pubDate>Wed, 01 Jul 2026 09:00:00 GMT</pubDate>
      <description>Why Atlas stopped forcing the model to emit valid JSON — and what it cost to find out.</description>
      <category>LLM evaluation</category>
      <category>Constrained decoding</category>
      <category>Failure modes</category>
    </item>
    <item>
      <title>The login that worked everywhere except production</title>
      <link>https://www.bhupesh.blog/writing/cloudwatch-cookie-origin</link>
      <guid isPermaLink="true">https://www.bhupesh.blog/writing/cloudwatch-cookie-origin</guid>
      <pubDate>Sun, 01 Feb 2026 09:00:00 GMT</pubDate>
      <description>Forty commits chasing a cross-subdomain auth cookie, and the reason none of them could have worked.</description>
      <category>Auth</category>
      <category>Cookies</category>
      <category>Serverless deploys</category>
    </item>
    <item>
      <title>The lecture videos that only played on my machine</title>
      <link>https://www.bhupesh.blog/writing/buildingblocks-mixed-content</link>
      <guid isPermaLink="true">https://www.bhupesh.blog/writing/buildingblocks-mixed-content</guid>
      <pubDate>Wed, 01 Jan 2025 09:00:00 GMT</pubDate>
      <description>Cloudinary hands back two URLs for every upload. Only one of them works on an HTTPS page.</description>
      <category>Mixed content</category>
      <category>Media pipeline</category>
      <category>Boundaries</category>
    </item>
  </channel>
</rss>
