<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title><![CDATA[AI for SWE | Engineering-first newsletter on AI coding]]></title>
    <link>https://chris-hartwig.com/</link>
    <description><![CDATA[Engineering-first newsletter on AI-assisted software engineering: prototyping vs production, security, architecture, testing, maintenance, and real tradeoffs.]]></description>
    <language>en-us</language>
    <lastBuildDate>Mon, 02 Mar 2026 09:55:59 GMT</lastBuildDate>
    <generator>Astro</generator>
    <item>
      <title><![CDATA[The Good Hallucinations]]></title>
      <link>https://chris-hartwig.com//blog/you-want-hallucinated-code/</link>
      <guid isPermaLink="true">https://chris-hartwig.com//blog/you-want-hallucinated-code/</guid>
      <description><![CDATA[You can't avoid AI hallucinations. Learn to love them: they force better engineering, documentation, types, and tests. Build systems that catch bad ones automatically.]]></description>
      <pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate>
      <author>Chris Hartwig</author>
    </item>
    <item>
      <title><![CDATA[Are You Fighting Hallucinations?]]></title>
      <link>https://chris-hartwig.com//blog/are-you-fighting-hallucinations/</link>
      <guid isPermaLink="true">https://chris-hartwig.com//blog/are-you-fighting-hallucinations/</guid>
      <description><![CDATA[LLM hallucinations measure code unpredictability. If AI struggles with your code, it's a quality problem. The same improvements that help AI also help humans.]]></description>
      <pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate>
      <author>Chris Hartwig</author>
    </item>
    <item>
      <title><![CDATA[Refactoring Rust Without Knowing Rust: An AI-Assisted Workflow]]></title>
      <link>https://chris-hartwig.com//blog/refactoring-rust-without-knowing-rust/</link>
      <guid isPermaLink="true">https://chris-hartwig.com//blog/refactoring-rust-without-knowing-rust/</guid>
      <description><![CDATA[I recently needed to refactor a Rust codebase within a Tauri project but lacked the time to learn the language's intricacies deeply. I solved this by decoupling the software engineering principles from the syntax implementation, using an AI-driven workflow.]]></description>
      <pubDate>Tue, 23 Dec 2025 00:00:00 GMT</pubDate>
      <author>Chris Hartwig</author>
    </item>
    <item>
      <title><![CDATA[Here's How I'm Vibe Coding a Desktop Application]]></title>
      <link>https://chris-hartwig.com//blog/vibe-coding-a-desktop-app-with-tauri/</link>
      <guid isPermaLink="true">https://chris-hartwig.com//blog/vibe-coding-a-desktop-app-with-tauri/</guid>
      <description><![CDATA[I started vibe coding a desktop app with Tauri and Rust—a language I don't know. Here's the workflow that got me to 5000 lines of code in a single day.]]></description>
      <pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate>
      <author>Chris Hartwig</author>
    </item>
    <item>
      <title><![CDATA[AI Prototypes Are Just Prototypes]]></title>
      <link>https://chris-hartwig.com//blog/ai-prototypes-are-not-a-handoff-artifact/</link>
      <guid isPermaLink="true">https://chris-hartwig.com//blog/ai-prototypes-are-not-a-handoff-artifact/</guid>
      <description><![CDATA[A prototype is not a handoff artifact. Treating it as one is a category error. What should be handed over is not the prototype alone, but the intent.]]></description>
      <pubDate>Wed, 17 Dec 2025 00:00:00 GMT</pubDate>
      <author>Chris Hartwig</author>
    </item>
    <item>
      <title><![CDATA[React2Shell and AI Monoculture]]></title>
      <link>https://chris-hartwig.com//blog/cve-2025-55182-and-ai-monoculture/</link>
      <guid isPermaLink="true">https://chris-hartwig.com//blog/cve-2025-55182-and-ai-monoculture/</guid>
      <description><![CDATA[How AI coding tools create dangerous monocultures and why a single vulnerability can affect thousands of projects simultaneously.]]></description>
      <pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate>
      <author>Chris Hartwig</author>
    </item>
    <item>
      <title><![CDATA[Cheap Vibe coding matters]]></title>
      <link>https://chris-hartwig.com//blog/cheap-vibe-coding-matters/</link>
      <guid isPermaLink="true">https://chris-hartwig.com//blog/cheap-vibe-coding-matters/</guid>
      <description><![CDATA[Why using cost-effective AI models for coding can be more beneficial than always reaching for the most expensive options.]]></description>
      <pubDate>Wed, 26 Nov 2025 00:00:00 GMT</pubDate>
      <author>Chris Hartwig</author>
    </item>
    <item>
      <title><![CDATA[What's Vibe Coding, really]]></title>
      <link>https://chris-hartwig.com//blog/whats-vibe-coding-really/</link>
      <guid isPermaLink="true">https://chris-hartwig.com//blog/whats-vibe-coding-really/</guid>
      <description><![CDATA[Exploring the true meaning of 'vibe coding' as defined by Andrej Karpathy and how it differs from the current AI app generator trend.]]></description>
      <pubDate>Wed, 19 Nov 2025 00:00:00 GMT</pubDate>
      <author>Chris Hartwig</author>
    </item>
  </channel>
</rss>