<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Alex Lewis - Writing &amp; Notes</title><description>Applied AI, agents, evaluation, retrieval, developer tools, and production engineering.</description><link>https://alexmlewis.com/</link><item><title>The Fail-Open I Shipped Three Times</title><link>https://alexmlewis.com/writing/the-fail-open-i-shipped-three-times/</link><guid isPermaLink="true">https://alexmlewis.com/writing/the-fail-open-i-shipped-three-times/</guid><description>A completeness check that had to be safe over time, three state machines that each leaked a fail-open, and the pure function that finally fixed it.</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate><category>Agents</category></item><item><title>Ground-Truthing Your LLM Judge: Does Your Eval Actually Track Reality?</title><link>https://alexmlewis.com/writing/ground-truthing-llm-judges/</link><guid isPermaLink="true">https://alexmlewis.com/writing/ground-truthing-llm-judges/</guid><description>LLM-as-judge is the default eval now, but a judge is just another unreliable model. Here is how to check whether its verdicts correlate with real outcomes, and catch the leniency bias most judges have.</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate><category>Evaluation</category><category>Agents</category></item><item><title>The Agent Harness Ate My Workflow</title><link>https://alexmlewis.com/writing/the-agent-harness-ate-my-workflow/</link><guid isPermaLink="true">https://alexmlewis.com/writing/the-agent-harness-ate-my-workflow/</guid><description>A year ago I kept a 6,000-line migration coherent with a hand-maintained progress file. Most of that scaffolding now ships inside the agent CLIs. Here is what the harness absorbed, and the part it still cannot.</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate><category>Agents</category><category>Developer Tools</category></item><item><title>Note: How this site is built</title><link>https://alexmlewis.com/notes/how-this-site-is-built/</link><guid isPermaLink="true">https://alexmlewis.com/notes/how-this-site-is-built/</guid><description>How this site is built</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate><category>Meta</category><category>Astro</category></item><item><title>I Built 50 AI Skills for the Parts of My Day I Never Got Around To</title><link>https://alexmlewis.com/writing/50-ai-skills-for-the-parts-of-your-day-you-never-get-around-to/</link><guid isPermaLink="true">https://alexmlewis.com/writing/50-ai-skills-for-the-parts-of-your-day-you-never-get-around-to/</guid><description>The biggest productivity gap is the work around the code: context gathering, note-taking, and status updates. I built 50 AI workflow skills to make those 15-minute tasks actually happen every day.</description><pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate><category>Agents</category><category>Developer Tools</category></item><item><title>Use /insights to Improve Your Claude Code Setup</title><link>https://alexmlewis.com/writing/use-insights-to-improve-your-claude-code-setup/</link><guid isPermaLink="true">https://alexmlewis.com/writing/use-insights-to-improve-your-claude-code-setup/</guid><description>I ran /insights in Claude Code and walked through what it found - friction patterns I hadn&apos;t noticed, CLAUDE.md rules I should have written weeks ago, and what changed after I applied the suggestions.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate><category>Developer Tools</category><category>Agents</category></item><item><title>Reward Engineering and Evaluation</title><link>https://alexmlewis.com/writing/reward-engineering-and-evaluation-making-your-system-learn-what-matters/</link><guid isPermaLink="true">https://alexmlewis.com/writing/reward-engineering-and-evaluation-making-your-system-learn-what-matters/</guid><description>This is the third post in our series on probabilistic prompt pipelines. In our first post, we explored why static prompts become bottlenecks. The second…</description><pubDate>Wed, 29 Oct 2025 00:00:00 GMT</pubDate><category>Evaluation</category><category>Retrieval</category></item><item><title>Building the Selector: Retrieval, Bandits, and Cold Start Solutions</title><link>https://alexmlewis.com/writing/building-the-selector-retrieval-bandits-and-cold-start-solutions/</link><guid isPermaLink="true">https://alexmlewis.com/writing/building-the-selector-retrieval-bandits-and-cold-start-solutions/</guid><description>This is the second post in our series on probabilistic prompt pipelines. In the first post, we explored why static prompts become bottlenecks and saw a…</description><pubDate>Wed, 09 Jul 2025 00:00:00 GMT</pubDate><category>Retrieval</category><category>Evaluation</category></item><item><title>Why Static Prompts Fail and How Probabilistic Selection Fixes It</title><link>https://alexmlewis.com/writing/why-static-prompts-fail-and-how-probabilistic-selection-solves-real-problems/</link><guid isPermaLink="true">https://alexmlewis.com/writing/why-static-prompts-fail-and-how-probabilistic-selection-solves-real-problems/</guid><description>This is the first post in a four-part series on building production-ready probabilistic prompt pipelines. By the end of this post, you&apos;ll understand why…</description><pubDate>Fri, 27 Jun 2025 00:00:00 GMT</pubDate><category>Retrieval</category><category>Evaluation</category></item><item><title>Claude Code: The Hidden Testing Ground for AI Agents</title><link>https://alexmlewis.com/writing/claude-code-the-hidden-testing-ground-for-ai-agents/</link><guid isPermaLink="true">https://alexmlewis.com/writing/claude-code-the-hidden-testing-ground-for-ai-agents/</guid><description>I&apos;ve been using Claude Code daily since it launched for general use. After months of working with it, I&apos;ve developed a theory about what&apos;s actually…</description><pubDate>Wed, 25 Jun 2025 00:00:00 GMT</pubDate><category>Agents</category></item><item><title>Staying Sane on a 6,000-Line Refactor with Claude Code</title><link>https://alexmlewis.com/writing/staying-sane-on-a-6-000-line-refactor-with-claude-code/</link><guid isPermaLink="true">https://alexmlewis.com/writing/staying-sane-on-a-6-000-line-refactor-with-claude-code/</guid><description>As large language models become more capable, it&apos;s tempting to rely on them for increasingly complex engineering tasks. Tools like Anthropic&apos;s Claude Code…</description><pubDate>Fri, 20 Jun 2025 00:00:00 GMT</pubDate><category>Agents</category><category>Developer Tools</category></item><item><title>Conditional Types in TypeScript</title><link>https://alexmlewis.com/writing/mastering-conditional-types-in-typescript/</link><guid isPermaLink="true">https://alexmlewis.com/writing/mastering-conditional-types-in-typescript/</guid><description>Conditional types give you type-level if/else logic in TypeScript. How to build recursive utilities like DeepNullable, use distributive conditionals and infer, and avoid the common pitfalls.</description><pubDate>Wed, 11 Jun 2025 00:00:00 GMT</pubDate><category>TypeScript</category></item><item><title>Understanding useEffect vs. useLayoutEffect in React</title><link>https://alexmlewis.com/writing/understanding-useeffect-vs-uselayouteffect-in-react-a-comprehensive-guide/</link><guid isPermaLink="true">https://alexmlewis.com/writing/understanding-useeffect-vs-uselayouteffect-in-react-a-comprehensive-guide/</guid><description>useEffect runs after the browser paints; useLayoutEffect runs before it. When to use each, with performance notes and edge cases.</description><pubDate>Mon, 31 Mar 2025 00:00:00 GMT</pubDate><category>React</category></item><item><title>Why Returning Cleanup Functions in useEffect Matters in React</title><link>https://alexmlewis.com/writing/why-returning-cleanup-functions-in-useeffect-matters-in-react/</link><guid isPermaLink="true">https://alexmlewis.com/writing/why-returning-cleanup-functions-in-useeffect-matters-in-react/</guid><description>React’s useEffect hook is one of the most powerful and commonly used features in functional components. It enables side effects like data fetching,…</description><pubDate>Fri, 28 Mar 2025 00:00:00 GMT</pubDate><category>React</category></item><item><title>A Guide to Setting Up Vercel Log Storage in AWS S3</title><link>https://alexmlewis.com/writing/a-guide-to-setting-up-vercel-log-storage-in-aws-s3/</link><guid isPermaLink="true">https://alexmlewis.com/writing/a-guide-to-setting-up-vercel-log-storage-in-aws-s3/</guid><description>Vercel retains logs for only 24 hours. This guide sets up a log drain to AWS S3 so you can store, query, and analyze them long-term with lifecycle policies, Lambda, and Athena.</description><pubDate>Sat, 25 Jan 2025 00:00:00 GMT</pubDate><category>Infrastructure</category></item><item><title>Enhancing Retrieval-Augmented Generation with XML Prompting</title><link>https://alexmlewis.com/writing/enhancing-retrieval-augmented-generation-with-xml-prompting/</link><guid isPermaLink="true">https://alexmlewis.com/writing/enhancing-retrieval-augmented-generation-with-xml-prompting/</guid><description>In my current role, I’ve been working on a Retrieval-Augmented Generation (RAG) system designed to provide safe, reliable personal finance guidance. Given…</description><pubDate>Wed, 08 Jan 2025 00:00:00 GMT</pubDate><category>Retrieval</category></item><item><title>One Thing: Cursor, Claude, and the Mocking Struggle</title><link>https://alexmlewis.com/writing/one-thing-cursor-claude-and-the-mocking-struggle/</link><guid isPermaLink="true">https://alexmlewis.com/writing/one-thing-cursor-claude-and-the-mocking-struggle/</guid><description>As someone who spends a lot of time coding, I rely heavily on Cursor as my daily IDE, and I most often use Claude 3.5 Sonnet as my preferred model for…</description><pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate><category>Developer Tools</category></item><item><title>One Thing: Kneading a New Hobby</title><link>https://alexmlewis.com/writing/one-thing-kneading-a-new-hobby/</link><guid isPermaLink="true">https://alexmlewis.com/writing/one-thing-kneading-a-new-hobby/</guid><description>I’m kicking off a new blogging experiment I’m calling “One Thing.” Each day, I plan to share one thing I learned, big or small, tech-related or totally…</description><pubDate>Mon, 06 Jan 2025 00:00:00 GMT</pubDate><category>Personal</category></item><item><title>Automating Meeting Note Management with Krisp, Zapier, Google Drive, and Notion</title><link>https://alexmlewis.com/writing/automating-meeting-note-management-with-krisp-zapier-google-drive-and-notion/</link><guid isPermaLink="true">https://alexmlewis.com/writing/automating-meeting-note-management-with-krisp-zapier-google-drive-and-notion/</guid><description>An automated workflow for meeting notes using Krisp, Zapier, Google Drive, and Notion. Capture transcripts, save them to cloud storage, and sync them into a Notion database with AI summaries.</description><pubDate>Thu, 02 Jan 2025 00:00:00 GMT</pubDate><category>Automation</category></item><item><title>Creating A Blog With GatsbyJS - Part Two</title><link>https://alexmlewis.com/writing/creating-a-blog-with-gatsbyjs-part-two/</link><guid isPermaLink="true">https://alexmlewis.com/writing/creating-a-blog-with-gatsbyjs-part-two/</guid><description>Create a blog with GatsbyJS</description><pubDate>Fri, 22 Dec 2017 00:00:00 GMT</pubDate><category>Developer Tools</category></item><item><title>Creating A Blog With GatsbyJS - Part One</title><link>https://alexmlewis.com/writing/creating-a-blog-with-gatsbyjs-part-one/</link><guid isPermaLink="true">https://alexmlewis.com/writing/creating-a-blog-with-gatsbyjs-part-one/</guid><description>Create a blog with GatsbyJS</description><pubDate>Fri, 15 Dec 2017 00:00:00 GMT</pubDate><category>Developer Tools</category></item></channel></rss>