<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Teemu Piirainen</title>
    <link>https://teemupiirainen.com/blog</link>
    <description>Notes from building with AI in practice: production AI applications, agentic development systems and how the developer's work changes.</description>
    <language>en</language>
    <atom:link href="https://teemupiirainen.com/rss.xml" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Thu, 15 Oct 2026 12:00:00 GMT</lastBuildDate>
    <item>
      <title>How to Audit Your Claude Code Instructions After a Model Upgrade</title>
      <link>https://teemupiirainen.com/blog/how-to-audit-claude-code-instructions-after-a-model-upgrade</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/how-to-audit-claude-code-instructions-after-a-model-upgrade</guid>
      <pubDate>Thu, 15 Oct 2026 12:00:00 GMT</pubDate>
      <description>After moving to Opus 5.5, my Claude Code instructions went 22k → 13k tokens. Run the prompt audit, review with Claude, then test what you removed.</description>
      <category>ai</category>
      <category>claude</category>
      <category>agents</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Claude Code Permissions and Hooks: Rules Your Prompt Can&apos;t Enforce</title>
      <link>https://teemupiirainen.com/blog/claude-code-permissions-and-hooks-in-settings-json</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/claude-code-permissions-and-hooks-in-settings-json</guid>
      <pubDate>Sun, 11 Oct 2026 12:00:00 GMT</pubDate>
      <description>&quot;Never push without asking&quot; belongs in settings.json, not only in the prompt. How to set up Claude Code permissions and hooks, with real examples.</description>
      <category>ai</category>
      <category>claude</category>
      <category>agents</category>
      <category>workflow</category>
    </item>
    <item>
      <title>AI Code Review Is Statistical: Why One Run Is Not Enough</title>
      <link>https://teemupiirainen.com/blog/ai-code-review-is-statistical-why-one-run-is-not-enough</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/ai-code-review-is-statistical-why-one-run-is-not-enough</guid>
      <pubDate>Tue, 06 Oct 2026 12:00:00 GMT</pubDate>
      <description>Run an AI code review twice on unchanged code and the findings can differ. How I&apos;d design for it: repeated runs, fresh context, tracking what each adds.</description>
      <category>ai</category>
      <category>code-review</category>
      <category>agents</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Graph Engineering for Coding Agents: A Simple First Workflow</title>
      <link>https://teemupiirainen.com/blog/graph-engineering-for-coding-agents-simple-first-workflow</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/graph-engineering-for-coding-agents-simple-first-workflow</guid>
      <pubDate>Sat, 03 Oct 2026 12:00:00 GMT</pubDate>
      <description>Graph engineering for coding agents sounds complicated. A simple first workflow in Claude Code: draw it, write three agents and one SKILL.md.</description>
      <category>ai</category>
      <category>claude</category>
      <category>agents</category>
      <category>workflow</category>
    </item>
    <item>
      <title>An Agent Marketplace Solves Distribution, Not Adoption</title>
      <link>https://teemupiirainen.com/blog/agent-marketplace-solves-distribution-not-adoption</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/agent-marketplace-solves-distribution-not-adoption</guid>
      <pubDate>Wed, 30 Sep 2026 12:00:00 GMT</pubDate>
      <description>A marketplace ships agents and skills to every developer. It does not make anyone use them. Six questions I&apos;d ask once the technical part works.</description>
      <category>ai</category>
      <category>agents</category>
      <category>adoption</category>
      <category>workflow</category>
    </item>
    <item>
      <title>One Source, Multiple Harnesses: Building a Portable Agent Marketplace</title>
      <link>https://teemupiirainen.com/blog/one-source-multiple-harnesses-building-a-portable-agent-marketplace</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/one-source-multiple-harnesses-building-a-portable-agent-marketplace</guid>
      <pubDate>Sun, 27 Sep 2026 12:00:00 GMT</pubDate>
      <description>I run the same agents in Claude Code, Copilot CLI and Codex from one source. How the build adapts packages, hooks and roles, and what broke on the way.</description>
      <category>ai</category>
      <category>agents</category>
      <category>claude</category>
      <category>codex</category>
      <category>workflow</category>
    </item>
    <item>
      <title>How to Build a Personal Agent Marketplace for Claude Code</title>
      <link>https://teemupiirainen.com/blog/how-to-build-a-personal-agent-marketplace-for-claude-code</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/how-to-build-a-personal-agent-marketplace-for-claude-code</guid>
      <pubDate>Thu, 17 Sep 2026 12:00:00 GMT</pubDate>
      <description>40+ agents and skills, five plugins in every project. How I package them as a Claude Code plugin marketplace, with my aw-review reviewer as the example.</description>
      <category>ai</category>
      <category>claude</category>
      <category>agents</category>
      <category>workflow</category>
    </item>
    <item>
      <title>What a software factory taught me about AI strategy for law firms</title>
      <link>https://teemupiirainen.com/blog/what-a-software-factory-taught-me-about-ai-strategy-for-law-firms</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/what-a-software-factory-taught-me-about-ai-strategy-for-law-firms</guid>
      <pubDate>Wed, 09 Sep 2026 12:00:00 GMT</pubDate>
      <description>I lived it in software: AI agents do the work and the advantage moves into the harness around the model. Now it is legal work. Nine AI strategy decisions.</description>
      <category>ai</category>
      <category>strategy</category>
      <category>legal</category>
      <category>adoption</category>
    </item>
    <item>
      <title>If AI Writes and Reviews the Code, What Is the Human Approving?</title>
      <link>https://teemupiirainen.com/blog/if-ai-writes-and-reviews-the-code-what-is-the-human-approving</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/if-ai-writes-and-reviews-the-code-what-is-the-human-approving</guid>
      <pubDate>Wed, 12 Aug 2026 12:00:00 GMT</pubDate>
      <description>AI agents write the code and independent AI code review gates it on evidence. What a PASS establishes about AI-generated code, and what a human approves.</description>
      <category>ai</category>
      <category>code-review</category>
      <category>codequality</category>
      <category>programming</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>What Oma Säästöpankki measured after four weeks of AI coaching</title>
      <link>https://teemupiirainen.com/blog/ai-coaching-program-oma-saastopankki</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/ai-coaching-program-oma-saastopankki</guid>
      <pubDate>Thu, 23 Jul 2026 12:00:00 GMT</pubDate>
      <description>A four-week AI Coaching Program at Oma Säästöpankki. The pilot lead reported 15–50% time savings; one regulatory task went from four hours to minutes.</description>
      <category>ai</category>
      <category>adoption</category>
      <category>finance</category>
      <category>risk-management</category>
      <category>compliance</category>
    </item>
    <item>
      <title>AI Optimized My Throughput. It Did Not Optimize Me.</title>
      <link>https://teemupiirainen.com/blog/ai-optimized-my-throughput-not-me</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/ai-optimized-my-throughput-not-me</guid>
      <pubDate>Wed, 22 Jul 2026 12:00:00 GMT</pubDate>
      <description>My AI agents raised my output more than 10x, and my workdays got heavier, not lighter. AI brain fry, decision fatigue, and becoming the bottleneck.</description>
      <category>ai</category>
      <category>agents</category>
      <category>workflow</category>
    </item>
    <item>
      <title>AI took my job. Twice in one year. I still have one.</title>
      <link>https://teemupiirainen.com/blog/ai-took-my-job-twice-in-one-year</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/ai-took-my-job-twice-in-one-year</guid>
      <pubDate>Tue, 07 Jul 2026 12:00:00 GMT</pubDate>
      <description>What a year of coding with AI did to my work, my role, and me. AI took over the writing, then the checking, and I had to relearn my role three times.</description>
      <category>ai</category>
      <category>learning</category>
    </item>
    <item>
      <title>5 months. 100% Claude Code. Zero architectural drift.</title>
      <link>https://teemupiirainen.com/blog/5-months-100-claude-code-zero-architectural-drift</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/5-months-100-claude-code-zero-architectural-drift</guid>
      <pubDate>Tue, 30 Jun 2026 12:00:00 GMT</pubDate>
      <description>Every line of code in a five-month web service project was written by Claude Code. Here is the system that kept the architecture from drifting.</description>
      <category>ai</category>
      <category>claude</category>
      <category>architecture</category>
    </item>
    <item>
      <title>AI Has Made Me a Text Parser. And I&apos;m Terrible at That.</title>
      <link>https://teemupiirainen.com/blog/ai-has-made-me-a-text-parser-and-im-terrible-at-that</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/ai-has-made-me-a-text-parser-and-im-terrible-at-that</guid>
      <pubDate>Tue, 02 Jun 2026 12:00:00 GMT</pubDate>
      <description>Claude writes a ten-page spec in a minute. Reading it takes me two hours. The fix was giving the human a ViewModel instead of a database dump.</description>
      <category>ai</category>
      <category>agents</category>
      <category>claude</category>
    </item>
    <item>
      <title>FOMO, FOMAT, FOMUT, and the Bottleneck That Turned Out to Be Me</title>
      <link>https://teemupiirainen.com/blog/fomo-fomat-fomut-and-the-bottleneck-that-turned-out-to-be-me</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/fomo-fomat-fomut-and-the-bottleneck-that-turned-out-to-be-me</guid>
      <pubDate>Mon, 11 May 2026 12:00:00 GMT</pubDate>
      <description>A year ago the AI agents were the bottleneck in my workflow. Now they run for hours unattended, and the bottleneck is me. Why that is a better problem.</description>
      <category>ai</category>
      <category>agents</category>
      <category>workflow</category>
    </item>
    <item>
      <title>How I Validate Quality When AI Agents Write My Code</title>
      <link>https://teemupiirainen.com/blog/how-i-validate-quality-when-ai-agents-write-my-code</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/how-i-validate-quality-when-ai-agents-write-my-code</guid>
      <pubDate>Mon, 16 Mar 2026 12:00:00 GMT</pubDate>
      <description>The eight-gate quality pipeline of tests, validator agents, reviews and deploy verification that turns AI-generated code into evidence.</description>
      <category>ai</category>
      <category>testing</category>
      <category>agents</category>
      <category>security</category>
    </item>
    <item>
      <title>I&apos;m not working with a tool anymore</title>
      <link>https://teemupiirainen.com/blog/im-not-working-with-a-tool-anymore</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/im-not-working-with-a-tool-anymore</guid>
      <pubDate>Sun, 01 Mar 2026 12:00:00 GMT</pubDate>
      <description>Eija Moisala asked me one question for her Ask a friend series: what have you been experimenting with, and what did it teach you?</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Your AI Coding Agents Are Slow Because Your Tools Talk Too Much</title>
      <link>https://teemupiirainen.com/blog/your-ai-coding-agents-are-slow-because-your-tools-talk-too-much</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/your-ai-coding-agents-are-slow-because-your-tools-talk-too-much</guid>
      <pubDate>Sat, 07 Feb 2026 12:00:00 GMT</pubDate>
      <description>A validator agent spent 6-9x longer reading test results than the tests took to run. The fix was not a better prompt. It was quieter tools.</description>
      <category>ai</category>
      <category>agents</category>
      <category>performance</category>
    </item>
    <item>
      <title>Four training sessions with the Nokia team in Oulu</title>
      <link>https://teemupiirainen.com/blog/half-a-year-with-the-nokia-team</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/half-a-year-with-the-nokia-team</guid>
      <pubDate>Thu, 20 Nov 2025 12:00:00 GMT</pubDate>
      <description>Back in Oulu with the same Nokia team: four sessions across half a year, and the one question that shows whether training actually stuck.</description>
      <category>training</category>
      <category>teams</category>
    </item>
    <item>
      <title>Turning AI into real results: what Elisa got right</title>
      <link>https://teemupiirainen.com/blog/turning-ai-into-real-results-elisa</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/turning-ai-into-real-results-elisa</guid>
      <pubDate>Mon, 03 Nov 2025 12:00:00 GMT</pubDate>
      <description>What Elisa and a team led by Eija Moisala got right about AI adoption: leadership, permission, and making learning part of everyday work, with results in weeks.</description>
      <category>ai</category>
      <category>training</category>
      <category>adoption</category>
    </item>
    <item>
      <title>Bringing AI to everyday work: speaking at Ilmarinen</title>
      <link>https://teemupiirainen.com/blog/bringing-ai-to-everyday-work-ilmarinen</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/bringing-ai-to-everyday-work-ilmarinen</guid>
      <pubDate>Mon, 20 Oct 2025 12:00:00 GMT</pubDate>
      <description>A recap of my talk at Ilmarinen on making AI a real teammate at work: moving past pilots, into everyday workflows, and a culture that keeps learning.</description>
      <category>ai</category>
      <category>training</category>
      <category>adoption</category>
    </item>
    <item>
      <title>AI training for employees: how to guide AI from pilot to practice</title>
      <link>https://teemupiirainen.com/blog/ai-training-from-pilot-to-practice</link>
      <guid isPermaLink="true">https://teemupiirainen.com/blog/ai-training-from-pilot-to-practice</guid>
      <pubDate>Tue, 07 Oct 2025 12:00:00 GMT</pubDate>
      <description>My Digiklinikka talk for the North Karelia Chamber of Commerce: why AI has to be guided, and how teams move it from small pilots to everyday practice.</description>
      <category>ai</category>
      <category>training</category>
      <category>adoption</category>
    </item>
  </channel>
</rss>
