<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Irfan Bhat. Blog</title>
    <link>https://irfanbaht.in/blog/</link>
    <description>Notes on servers, development, performance and AI engineering.</description>
    <language>en</language>
    <lastBuildDate>Tue, 11 Aug 2026 09:00:00 GMT</lastBuildDate>
    <atom:link href="https://irfanbaht.in/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Laravel queues in production: supervision, retries and the failures you never see</title>
      <link>https://irfanbaht.in/blog/laravel-queues-in-production/</link>
      <guid isPermaLink="true">https://irfanbaht.in/blog/laravel-queues-in-production/</guid>
      <pubDate>Tue, 11 Aug 2026 09:00:00 GMT</pubDate>
      <description>Queues are the part of a Laravel app most likely to be silently broken in production, because when they fail, nothing visibly breaks.</description>
      <dc:creator>Irfan Bhat</dc:creator>
      <category>Laravel</category>
      <category>PHP</category>
      <category>Queues</category>
      <category>Redis</category>
      <category>Supervisor</category>
      <category>DevOps</category>
    </item>
    <item>
      <title>Building AI agents that cannot run away: caps, scopes and audit logs</title>
      <link>https://irfanbaht.in/blog/ai-agents-that-cannot-run-away/</link>
      <guid isPermaLink="true">https://irfanbaht.in/blog/ai-agents-that-cannot-run-away/</guid>
      <pubDate>Wed, 29 Jul 2026 09:00:00 GMT</pubDate>
      <description>The gap between an agent demo and something you can put in front of your business is not model quality. It is the constraints around the loop.</description>
      <dc:creator>Irfan Bhat</dc:creator>
      <category>AI Agents</category>
      <category>Claude API</category>
      <category>Automation</category>
      <category>Architecture</category>
      <category>Safety</category>
    </item>
    <item>
      <title>Making a React site rank: prerendering, Core Web Vitals and structured data</title>
      <link>https://irfanbaht.in/blog/make-react-site-rank-in-google/</link>
      <guid isPermaLink="true">https://irfanbaht.in/blog/make-react-site-rank-in-google/</guid>
      <pubDate>Wed, 15 Jul 2026 09:00:00 GMT</pubDate>
      <description>React does not prevent a site from ranking. Shipping an empty div and hoping the crawler renders it does. The fix is straightforward and largely a build-time concern.</description>
      <dc:creator>Irfan Bhat</dc:creator>
      <category>React</category>
      <category>SEO</category>
      <category>Core Web Vitals</category>
      <category>Prerendering</category>
      <category>Structured Data</category>
    </item>
    <item>
      <title>Migrating a website without downtime: the pre-flight checklist</title>
      <link>https://irfanbaht.in/blog/website-migration-without-downtime/</link>
      <guid isPermaLink="true">https://irfanbaht.in/blog/website-migration-without-downtime/</guid>
      <pubDate>Wed, 24 Jun 2026 09:00:00 GMT</pubDate>
      <description>Migrations fail in predictable ways, and every one of them is preventable at the planning stage. Here is the checklist I work through before anything moves.</description>
      <dc:creator>Irfan Bhat</dc:creator>
      <category>Migration</category>
      <category>DNS</category>
      <category>cPanel</category>
      <category>Email</category>
      <category>Hosting</category>
    </item>
    <item>
      <title>PHP-FPM pool sizing: the real reason your server runs out of memory</title>
      <link>https://irfanbaht.in/blog/php-fpm-pool-sizing-memory/</link>
      <guid isPermaLink="true">https://irfanbaht.in/blog/php-fpm-pool-sizing-memory/</guid>
      <pubDate>Wed, 03 Jun 2026 09:00:00 GMT</pubDate>
      <description>A server that grinds to a halt under moderate traffic usually is not short of RAM. It has been told it may use several times more than it has.</description>
      <dc:creator>Irfan Bhat</dc:creator>
      <category>PHP-FPM</category>
      <category>Linux</category>
      <category>Performance</category>
      <category>nginx</category>
      <category>Server Management</category>
    </item>
    <item>
      <title>Why your cPanel emails go to spam, and the four checks that fix it</title>
      <link>https://irfanbaht.in/blog/why-cpanel-emails-go-to-spam/</link>
      <guid isPermaLink="true">https://irfanbaht.in/blog/why-cpanel-emails-go-to-spam/</guid>
      <pubDate>Tue, 12 May 2026 09:00:00 GMT</pubDate>
      <description>Mail from your own server landing in the junk folder is almost never mysterious. It is nearly always one of four checks, and all four take about ten minutes.</description>
      <dc:creator>Irfan Bhat</dc:creator>
      <category>cPanel</category>
      <category>Email Deliverability</category>
      <category>SPF</category>
      <category>DKIM</category>
      <category>DMARC</category>
      <category>DNS</category>
    </item>
  </channel>
</rss>
