<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dariusz Walat</title><link>https://walat.eu/</link><description>Recent content on Dariusz Walat</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 10 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://walat.eu/index.xml" rel="self" type="application/rss+xml"/><item><title>Token Counting for Fun and Profit</title><link>https://walat.eu/series/ai-agents-in-practice/token-counting-for-fun-and-profit/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://walat.eu/series/ai-agents-in-practice/token-counting-for-fun-and-profit/</guid><description>&lt;p&gt;One skill invocation in a Claude Code session wrote 261,974 tokens into the prompt cache. The tokens replayed from cache on each subsequent request went from 93,786 to 355,760, and 93,786 + 261,974 = 355,760 exactly. Every turn after that point cost several times what the turns before it cost, for the rest of the session. That arithmetic is the mechanism confirming itself.&lt;/p&gt;
&lt;p&gt;Model choice and reasoning effort both change how fast a session burns through a subscription usage limit, and both are settings you pick deliberately. Two more are not settings at all. They accumulate from how you work, turn by turn, mostly unobserved: what you put into the context, and whether the cache is still warm when you come back. Those two are the subject here.&lt;/p&gt;</description></item><item><title>Why This Series Can Never Be Finished</title><link>https://walat.eu/series/ai-agents-in-practice/why-this-series-cannot-be-finished/</link><pubDate>Sun, 19 Oct 2025 00:00:00 +0000</pubDate><guid>https://walat.eu/series/ai-agents-in-practice/why-this-series-cannot-be-finished/</guid><description>&lt;h2 id="what-just-happened"&gt;What Just Happened&lt;/h2&gt;
&lt;p&gt;I was working on an article about AI agent nondeterminism. The core thesis: AI agents produce unpredictable outputs because they&amp;rsquo;re probabilistic systems.&lt;/p&gt;
&lt;p&gt;One of my examples:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When I ask Claude Code to run tests, I might get:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;uv run pytest&lt;/code&gt; (correct)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pytest&lt;/code&gt; (wrong, bypasses environment)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;python3 -m pytest&lt;/code&gt; (wrong, bypasses uv)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Same context. Same documentation. Same conversation history. Different command each time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hours after writing that section, I caught the problem:&lt;/p&gt;</description></item><item><title>AI Coding Agents Are Plausible Bullshit Generators</title><link>https://walat.eu/series/ai-agents-in-practice/plausible-bullshit/</link><pubDate>Sat, 18 Oct 2025 00:00:00 +0000</pubDate><guid>https://walat.eu/series/ai-agents-in-practice/plausible-bullshit/</guid><description>&lt;p&gt;The agent&amp;rsquo;s output was perfect—detailed verification reports, specific metrics, professional completion messages. Then I looked deeper. None of it was real.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been building personal projects using AI coding agents for the past several months—projects I&amp;rsquo;m developing to production standards because they&amp;rsquo;ll eventually handle consequential decisions in real-world use. Not as an experiment - as my primary development method. This means I&amp;rsquo;ve hit many of the critical failure modes, not in theory but in practice where mistakes cost real time and create real risk.&lt;/p&gt;</description></item><item><title>Contact</title><link>https://walat.eu/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://walat.eu/contact/</guid><description>&lt;p&gt;&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:dariusz@walat.eu"&gt;dariusz@walat.eu&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/dariusz-walat"&gt;linkedin.com/in/dariusz-walat&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Location:&lt;/strong&gt; Poland (EU Timezone)&lt;/p&gt;</description></item><item><title>CV — Dariusz Walat</title><link>https://walat.eu/cv/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://walat.eu/cv/</guid><description>&lt;p&gt;&lt;a href="https://walat.eu/dariusz_walat_cv.pdf"&gt;Download as PDF&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="senior-software-engineer--trustworthy-output-from-untrustworthy-data"&gt;Senior Software Engineer | Trustworthy Output from Untrustworthy Data&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:dariusz@walat.eu"&gt;dariusz@walat.eu&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/dariusz-walat"&gt;linkedin.com/in/dariusz-walat&lt;/a&gt; | &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/stakent"&gt;github.com/stakent&lt;/a&gt; | &lt;strong&gt;Articles:&lt;/strong&gt; &lt;a href="https://walat.eu"&gt;walat.eu&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Location:&lt;/strong&gt; Rzeszów, Poland (EU Timezone) | &lt;strong&gt;Remote only&lt;/strong&gt; (EU hours or async)&lt;/p&gt;
&lt;h2 id="professional-summary"&gt;PROFESSIONAL SUMMARY&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Senior Software Engineer with 20+ years building systems where silent failure is not an option&lt;/strong&gt; — from industrial control where downtime cost thousands per minute, to data pipelines that must stay correct when their inputs aren&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;I build systems that catch what&amp;rsquo;s silently wrong — a dead sensor nobody noticed, contradictory records, a garbled scan, a confidently-wrong model — so it surfaces as a flag today, not a six-month catastrophe.&lt;/p&gt;</description></item></channel></rss>