<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Ken Ahrens</title><description>Ken Ahrens — co-founder and CEO of Speedscale. Open source, homelabs, and running AI locally.</description><link>https://kahrens.com/</link><item><title>Twenty years of Linux, and now I run my own AI</title><link>https://kahrens.com/posts/running-my-own-local-ai-stack/</link><guid isPermaLink="true">https://kahrens.com/posts/running-my-own-local-ai-stack/</guid><description>I&apos;ve been an open source fan for a long time. Lately that&apos;s meant building my own local AI stack so I&apos;m not at the mercy of token bills and shifting licenses.</description><pubDate>Tue, 16 Jun 2026 09:00:00 GMT</pubDate></item><item><title>We won&apos;t train on your data is not a security architecture</title><link>https://kahrens.com/posts/we-wont-train-on-your-data-is-not-a-security-architecture/</link><guid isPermaLink="true">https://kahrens.com/posts/we-wont-train-on-your-data-is-not-a-security-architecture/</guid><description>MSA clauses and contractual guarantees aren&apos;t an architecture. If your production traffic leaves your cloud, you&apos;re trusting a policy, not a system.</description><pubDate>Wed, 10 Jun 2026 09:00:00 GMT</pubDate></item><item><title>Logs told me something broke. Traffic showed me what.</title><link>https://kahrens.com/posts/logs-told-me-something-broke-traffic-showed-me-what/</link><guid isPermaLink="true">https://kahrens.com/posts/logs-told-me-something-broke-traffic-showed-me-what/</guid><description>Capture production traffic and store it in your own Elasticsearch with Speedscale BYOC. Pull it locally with es-gather.py and reproduce bugs with proxymock.</description><pubDate>Tue, 02 Jun 2026 09:00:00 GMT</pubDate></item><item><title>Our follow-up rate was abysmal, so I built my own tool</title><link>https://kahrens.com/posts/our-follow-up-rate-was-abysmal-so-i-built-my-own-tool/</link><guid isPermaLink="true">https://kahrens.com/posts/our-follow-up-rate-was-abysmal-so-i-built-my-own-tool/</guid><description>I had a number stuck in my head: eight to 10 touches before deciding a prospect isn&apos;t interested...</description><pubDate>Tue, 02 Jun 2026 09:00:00 GMT</pubDate></item><item><title>Your AI agent is fixing the wrong service</title><link>https://kahrens.com/posts/ai-rework-tax/</link><guid isPermaLink="true">https://kahrens.com/posts/ai-rework-tax/</guid><description>I tested 100 bugs across 240 microservices the model has never seen. Alert only: 51% pass rate, wrong service 34% of the time. Traffic captures: 77%.</description><pubDate>Mon, 01 Jun 2026 09:00:00 GMT</pubDate></item><item><title>Notes + Local AI: Simpler Than You Think</title><link>https://kahrens.com/posts/notes-local-ai-simpler-than-you-think/</link><guid isPermaLink="true">https://kahrens.com/posts/notes-local-ai-simpler-than-you-think/</guid><description>I got caught flat-footed twice by the same customer. I have an office hours call with them almost...</description><pubDate>Tue, 19 May 2026 09:00:00 GMT</pubDate></item><item><title>From Traffic Context to Confirmed Fix in 3 Minutes</title><link>https://kahrens.com/posts/traffic-context-confirmed-fix-3-minutes/</link><guid isPermaLink="true">https://kahrens.com/posts/traffic-context-confirmed-fix-3-minutes/</guid><description>Traffic Context is the missing piece in most debugging workflows. We ran our autonomous agent on a real production bug — it found the root cause, wrote a reproduce harness, applied the fix, and confirmed it. Here&apos;s what that looked like.</description><pubDate>Mon, 18 May 2026 09:00:00 GMT</pubDate></item><item><title>The Ultimate Guide to a Smooth Dev Environment</title><link>https://kahrens.com/posts/the-ultimate-guide-to-a-smooth-dev-environment/</link><guid isPermaLink="true">https://kahrens.com/posts/the-ultimate-guide-to-a-smooth-dev-environment/</guid><description>The Ultimate Guide to a Smooth Dev Environment   Originally published on 2025-12-11 at...</description><pubDate>Thu, 09 Apr 2026 09:00:00 GMT</pubDate></item><item><title>Top 5 WireMock Alternatives Best Practices</title><link>https://kahrens.com/posts/top-5-wiremock-alternatives-best-practices/</link><guid isPermaLink="true">https://kahrens.com/posts/top-5-wiremock-alternatives-best-practices/</guid><description>Top 5 WireMock Alternatives Best Practices   Originally published on 2025-12-22 at...</description><pubDate>Tue, 07 Apr 2026 09:00:00 GMT</pubDate></item><item><title>From Datadog to CI Tests: Catch Regressions Before Deploy</title><link>https://kahrens.com/posts/from-datadog-to-test-suite/</link><guid isPermaLink="true">https://kahrens.com/posts/from-datadog-to-test-suite/</guid><description>Learn a practical workflow to convert Datadog metrics, traces, and incidents into CI tests that catch regressions before deploy.</description><pubDate>Mon, 06 Apr 2026 09:00:00 GMT</pubDate></item><item><title>Why You Should Stop Buying SaaS and Start Building It</title><link>https://kahrens.com/posts/why-you-should-stop-buying-saas-and-start-building-it/</link><guid isPermaLink="true">https://kahrens.com/posts/why-you-should-stop-buying-saas-and-start-building-it/</guid><description>LLMs have collapsed the cost of custom internal tools. Here&apos;s the startup distribution problem I&apos;ve watched kill companies — and how I vibe-coded my way out.</description><pubDate>Fri, 03 Apr 2026 09:00:00 GMT</pubDate></item><item><title>Test Code Changes with Claude Code Using Real Traffic</title><link>https://kahrens.com/posts/test-code-changes-with-claude-code-using-real-traffic/</link><guid isPermaLink="true">https://kahrens.com/posts/test-code-changes-with-claude-code-using-real-traffic/</guid><description>Claude Code can write features and fix bugs, proxymock traffic snapshots give me the integration tests, replays.</description><pubDate>Tue, 25 Nov 2025 09:00:00 GMT</pubDate></item><item><title>Better integration tests in Cursor using proxymock</title><link>https://kahrens.com/posts/better-integration-tests-in-cursor-using-proxymock/</link><guid isPermaLink="true">https://kahrens.com/posts/better-integration-tests-in-cursor-using-proxymock/</guid><description>Cursor can scaffold new API calls, proxymock traffic snapshots give me the integration tests, replays.</description><pubDate>Wed, 19 Nov 2025 09:00:00 GMT</pubDate></item><item><title>Part 1: Building a Production-Grade Traffic Capture and Replay System</title><link>https://kahrens.com/posts/how-to-build-a-traffic-capture-system/</link><guid isPermaLink="true">https://kahrens.com/posts/how-to-build-a-traffic-capture-system/</guid><description>Learn how to build a production-grade traffic capture system using proxies, eBPF, and tcpdump.</description><pubDate>Tue, 21 Oct 2025 09:00:00 GMT</pubDate></item><item><title>How to Tame Your AI Agents: From $900 in 18 Days to Coding Smarter</title><link>https://kahrens.com/posts/how-to-tame-your-ai-agents-from-900-in-18-days-to-coding-smarter/</link><guid isPermaLink="true">https://kahrens.com/posts/how-to-tame-your-ai-agents-from-900-in-18-days-to-coding-smarter/</guid><description>It started with a curiosity and ended with a $900 bill. Eighteen days. Three AI coding agents: Claude...</description><pubDate>Tue, 12 Aug 2025 09:00:00 GMT</pubDate></item><item><title>Record API calls in prod, replay in dev to test</title><link>https://kahrens.com/posts/record-api-calls-in-prod-replay-in-dev-to-test/</link><guid isPermaLink="true">https://kahrens.com/posts/record-api-calls-in-prod-replay-in-dev-to-test/</guid><description>Introduction   Have you ever experienced the problem where your code is broken in...</description><pubDate>Sun, 28 Jul 2024 09:00:00 GMT</pubDate></item><item><title>Testing LLMs for Performance with Service Mocking</title><link>https://kahrens.com/posts/testing-llms-for-performance-with-service-mocking/</link><guid isPermaLink="true">https://kahrens.com/posts/testing-llms-for-performance-with-service-mocking/</guid><description>While incredibly powerful, one of the challenges when building an LLM application (large language...</description><pubDate>Tue, 26 Mar 2024 09:00:00 GMT</pubDate></item></channel></rss>