<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Raza Hussain on Medium]]></title>
        <description><![CDATA[Stories by Raza Hussain on Medium]]></description>
        <link>https://medium.com/@mrrazahussain?source=rss-70f28ee28047------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*WcOOLWveUz9Pb5NdqrbxJw.png</url>
            <title>Stories by Raza Hussain on Medium</title>
            <link>https://medium.com/@mrrazahussain?source=rss-70f28ee28047------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Wed, 04 Nov 2026 23:24:04 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@mrrazahussain/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Why an LLM API Cost Comparison by Token Price Misleads]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://generativeai.pub/why-an-llm-api-cost-comparison-by-token-price-misleads-614ac1ea4162?source=rss-70f28ee28047------2"><img src="https://cdn-images-1.medium.com/max/1672/1*5DmeLNjHOEMj5JGOjNXKww.png" width="1672"></a></p><p class="medium-feed-snippet">What is the best LLM for a Rails app? Price each model per successful request, not per token, and count the retries.</p><p class="medium-feed-link"><a href="https://generativeai.pub/why-an-llm-api-cost-comparison-by-token-price-misleads-614ac1ea4162?source=rss-70f28ee28047------2">Continue reading on Generative AI »</a></p></div>]]></description>
            <link>https://generativeai.pub/why-an-llm-api-cost-comparison-by-token-price-misleads-614ac1ea4162?source=rss-70f28ee28047------2</link>
            <guid isPermaLink="false">https://medium.com/p/614ac1ea4162</guid>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[ruby-on-rails]]></category>
            <dc:creator><![CDATA[Raza Hussain]]></dc:creator>
            <pubDate>Tue, 03 Nov 2026 11:29:51 GMT</pubDate>
            <atom:updated>2026-11-03T11:29:51.141Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[I Killed the Worker After the Charge. Nothing Retried.]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://levelup.gitconnected.com/i-killed-the-worker-after-the-charge-nothing-retried-fe29ab498634?source=rss-70f28ee28047------2"><img src="https://cdn-images-1.medium.com/max/1920/1*vDNz4p79pJdSBSumIeJ6yQ.png" width="1920"></a></p><p class="medium-feed-snippet">Why do Rails background job retries miss a crashed worker? Solid Queue marks it failed and Sidekiq OSS loses it.</p><p class="medium-feed-link"><a href="https://levelup.gitconnected.com/i-killed-the-worker-after-the-charge-nothing-retried-fe29ab498634?source=rss-70f28ee28047------2">Continue reading on Level Up Coding »</a></p></div>]]></description>
            <link>https://levelup.gitconnected.com/i-killed-the-worker-after-the-charge-nothing-retried-fe29ab498634?source=rss-70f28ee28047------2</link>
            <guid isPermaLink="false">https://medium.com/p/fe29ab498634</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[background-task]]></category>
            <category><![CDATA[ruby-on-rails]]></category>
            <category><![CDATA[idempotency]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Raza Hussain]]></dc:creator>
            <pubDate>Fri, 30 Oct 2026 14:32:36 GMT</pubDate>
            <atom:updated>2026-10-30T14:32:36.052Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Rails Zero-Downtime Database Migrations]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/rails-zero-downtime-database-migrations-c47e5d658988?source=rss-70f28ee28047------2"><img src="https://cdn-images-1.medium.com/max/1774/1*0I2PBD-aUp5SRjFHxzdKNA.png" width="1774"></a></p><p class="medium-feed-snippet">Why do Rails migrations cause downtime?</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/rails-zero-downtime-database-migrations-c47e5d658988?source=rss-70f28ee28047------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/rails-zero-downtime-database-migrations-c47e5d658988?source=rss-70f28ee28047------2</link>
            <guid isPermaLink="false">https://medium.com/p/c47e5d658988</guid>
            <category><![CDATA[postgresql]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[database]]></category>
            <category><![CDATA[ruby-on-rails]]></category>
            <dc:creator><![CDATA[Raza Hussain]]></dc:creator>
            <pubDate>Fri, 30 Oct 2026 13:56:27 GMT</pubDate>
            <atom:updated>2026-10-30T13:56:27.142Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[What Does the Agents on Rails AI Coding Agent Benchmark Measure?]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://generativeai.pub/what-does-the-agents-on-rails-ai-coding-agent-benchmark-measure-f877f5ba09ea?source=rss-70f28ee28047------2"><img src="https://cdn-images-1.medium.com/max/1672/1*Rrw9DoY4uogjlNwpogNINw.png" width="1672"></a></p><p class="medium-feed-snippet">How do you run an AI coding agent benchmark on your Rails app? Hidden tests, a restored test/ directory, and Brakeman.</p><p class="medium-feed-link"><a href="https://generativeai.pub/what-does-the-agents-on-rails-ai-coding-agent-benchmark-measure-f877f5ba09ea?source=rss-70f28ee28047------2">Continue reading on Generative AI »</a></p></div>]]></description>
            <link>https://generativeai.pub/what-does-the-agents-on-rails-ai-coding-agent-benchmark-measure-f877f5ba09ea?source=rss-70f28ee28047------2</link>
            <guid isPermaLink="false">https://medium.com/p/f877f5ba09ea</guid>
            <category><![CDATA[ai-coding-agent]]></category>
            <category><![CDATA[software-testing]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[vibe-coding]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Raza Hussain]]></dc:creator>
            <pubDate>Thu, 29 Oct 2026 08:00:19 GMT</pubDate>
            <atom:updated>2026-10-29T08:00:19.449Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Rails Structured Event Reporting: A Practical Observability Migration]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://levelup.gitconnected.com/rails-structured-event-reporting-a-practical-observability-migration-b28c23b0148c?source=rss-70f28ee28047------2"><img src="https://cdn-images-1.medium.com/max/1672/1*dH6lOgQU8txnGvur_ScA5A.png" width="1672"></a></p><p class="medium-feed-snippet">Why do plain Rails logs fall short for observability?</p><p class="medium-feed-link"><a href="https://levelup.gitconnected.com/rails-structured-event-reporting-a-practical-observability-migration-b28c23b0148c?source=rss-70f28ee28047------2">Continue reading on Level Up Coding »</a></p></div>]]></description>
            <link>https://levelup.gitconnected.com/rails-structured-event-reporting-a-practical-observability-migration-b28c23b0148c?source=rss-70f28ee28047------2</link>
            <guid isPermaLink="false">https://medium.com/p/b28c23b0148c</guid>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[ruby-on-rails]]></category>
            <category><![CDATA[rails-8]]></category>
            <category><![CDATA[structured-logging]]></category>
            <category><![CDATA[observability]]></category>
            <dc:creator><![CDATA[Raza Hussain]]></dc:creator>
            <pubDate>Wed, 28 Oct 2026 16:25:43 GMT</pubDate>
            <atom:updated>2026-10-28T16:25:43.411Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Claude Code Rails Testing: Verify AI Changes First]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/illumination/claude-code-rails-testing-verify-ai-changes-first-b1e58ee1d753?source=rss-70f28ee28047------2"><img src="https://cdn-images-1.medium.com/max/1672/1*DmvMZquqqdLhIGT4cKoyCA.png" width="1672"></a></p><p class="medium-feed-snippet">How does Claude Code Rails testing fail when the agent picks the tests?</p><p class="medium-feed-link"><a href="https://medium.com/illumination/claude-code-rails-testing-verify-ai-changes-first-b1e58ee1d753?source=rss-70f28ee28047------2">Continue reading on ILLUMINATION »</a></p></div>]]></description>
            <link>https://medium.com/illumination/claude-code-rails-testing-verify-ai-changes-first-b1e58ee1d753?source=rss-70f28ee28047------2</link>
            <guid isPermaLink="false">https://medium.com/p/b1e58ee1d753</guid>
            <category><![CDATA[vibe-coding]]></category>
            <category><![CDATA[claude-code]]></category>
            <category><![CDATA[ai-code-review]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[ruby-on-rails]]></category>
            <dc:creator><![CDATA[Raza Hussain]]></dc:creator>
            <pubDate>Mon, 26 Oct 2026 18:29:51 GMT</pubDate>
            <atom:updated>2026-10-26T18:29:51.623Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Your AI Agent Writes Safe SQL and Unsafe Everything Else]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://generativeai.pub/your-ai-agent-writes-safe-sql-and-unsafe-everything-else-c2d9454700ec?source=rss-70f28ee28047------2"><img src="https://cdn-images-1.medium.com/max/1672/1*9rdY-69EgWWwY68z9Lgjtg.png" width="1672"></a></p><p class="medium-feed-snippet">How do you verify AI-generated code before merging? Start with the checks your test suite cannot fail.</p><p class="medium-feed-link"><a href="https://generativeai.pub/your-ai-agent-writes-safe-sql-and-unsafe-everything-else-c2d9454700ec?source=rss-70f28ee28047------2">Continue reading on Generative AI »</a></p></div>]]></description>
            <link>https://generativeai.pub/your-ai-agent-writes-safe-sql-and-unsafe-everything-else-c2d9454700ec?source=rss-70f28ee28047------2</link>
            <guid isPermaLink="false">https://medium.com/p/c2d9454700ec</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[vibe-coding]]></category>
            <category><![CDATA[ruby-on-rails]]></category>
            <category><![CDATA[software-testing]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <dc:creator><![CDATA[Raza Hussain]]></dc:creator>
            <pubDate>Mon, 26 Oct 2026 06:34:50 GMT</pubDate>
            <atom:updated>2026-10-26T06:34:50.273Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Rails Background Jobs: Idempotency, Retries, and Duplicate Work]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/codetodeploy/rails-background-jobs-idempotency-retries-and-duplicate-work-8cafc6e377f9?source=rss-70f28ee28047------2"><img src="https://cdn-images-1.medium.com/max/1672/1*OlT70x2ANp6E3jyTNpogVA.png" width="1672"></a></p><p class="medium-feed-snippet">Why do Rails background jobs run more than once?</p><p class="medium-feed-link"><a href="https://medium.com/codetodeploy/rails-background-jobs-idempotency-retries-and-duplicate-work-8cafc6e377f9?source=rss-70f28ee28047------2">Continue reading on CodeToDeploy »</a></p></div>]]></description>
            <link>https://medium.com/codetodeploy/rails-background-jobs-idempotency-retries-and-duplicate-work-8cafc6e377f9?source=rss-70f28ee28047------2</link>
            <guid isPermaLink="false">https://medium.com/p/8cafc6e377f9</guid>
            <category><![CDATA[sidekiq]]></category>
            <category><![CDATA[ruby-on-rails]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[background-jobs]]></category>
            <dc:creator><![CDATA[Raza Hussain]]></dc:creator>
            <pubDate>Sat, 24 Oct 2026 16:23:28 GMT</pubDate>
            <atom:updated>2026-10-24T16:23:28.489Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[How to Prove a Postgres Index Actually Helps]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/beyond-localhost/how-to-prove-a-postgres-index-actually-helps-9653b51fc02f?source=rss-70f28ee28047------2"><img src="https://cdn-images-1.medium.com/max/1774/1*pPXP_KsVpEfcnYIZvCxoqQ.png" width="1774"></a></p><p class="medium-feed-snippet">Why does a faster page not prove PostgreSQL index performance improved?</p><p class="medium-feed-link"><a href="https://medium.com/beyond-localhost/how-to-prove-a-postgres-index-actually-helps-9653b51fc02f?source=rss-70f28ee28047------2">Continue reading on Beyond Localhost »</a></p></div>]]></description>
            <link>https://medium.com/beyond-localhost/how-to-prove-a-postgres-index-actually-helps-9653b51fc02f?source=rss-70f28ee28047------2</link>
            <guid isPermaLink="false">https://medium.com/p/9653b51fc02f</guid>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[postgresql]]></category>
            <category><![CDATA[query-optimization]]></category>
            <category><![CDATA[database]]></category>
            <category><![CDATA[ruby-on-rails]]></category>
            <dc:creator><![CDATA[Raza Hussain]]></dc:creator>
            <pubDate>Sat, 24 Oct 2026 13:01:02 GMT</pubDate>
            <atom:updated>2026-10-24T13:01:02.407Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[DHH Proved Rust Beats Rails. He Never Read the Winning Code.]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://levelup.gitconnected.com/dhh-proved-rust-beats-rails-he-never-read-the-winning-code-705868baeece?source=rss-70f28ee28047------2"><img src="https://cdn-images-1.medium.com/max/1672/1*1DZdTftmHujdNmxz0rWFJA.png" width="1672"></a></p><p class="medium-feed-snippet">What did the DHH Rust Rails benchmark actually measure?</p><p class="medium-feed-link"><a href="https://levelup.gitconnected.com/dhh-proved-rust-beats-rails-he-never-read-the-winning-code-705868baeece?source=rss-70f28ee28047------2">Continue reading on Level Up Coding »</a></p></div>]]></description>
            <link>https://levelup.gitconnected.com/dhh-proved-rust-beats-rails-he-never-read-the-winning-code-705868baeece?source=rss-70f28ee28047------2</link>
            <guid isPermaLink="false">https://medium.com/p/705868baeece</guid>
            <category><![CDATA[ruby-on-rails]]></category>
            <category><![CDATA[write-a-catalyst]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[vibe-coding]]></category>
            <dc:creator><![CDATA[Raza Hussain]]></dc:creator>
            <pubDate>Mon, 19 Oct 2026 15:36:52 GMT</pubDate>
            <atom:updated>2026-10-19T15:36:52.019Z</atom:updated>
        </item>
    </channel>
</rss>