# Alex Lewis > Senior software engineer building applied AI systems, agent infrastructure, and developer tools. I’m a software engineer with more than a decade of experience building production systems across the stack - and, increasingly, the platform infrastructure and developer tooling other engineers build on. My work now centers on applied AI: agent infrastructure, evaluation, tool use, retrieval, and long-running execution - the unglamorous systems that make LLM-powered products dependable. Note: every post is available as Markdown by appending `.md` to its URL (e.g. https://alexmlewis.com/writing/.md). ## Key pages - [Start here](https://alexmlewis.com/start-here): curated path through the best work - [Home](https://alexmlewis.com/): positioning and overview - [Work](https://alexmlewis.com/work): case studies - [Writing](https://alexmlewis.com/writing): technical articles - [Notes](https://alexmlewis.com/notes): short notes / TILs - [About](https://alexmlewis.com/about): background and principles - [Resume](https://alexmlewis.com/resume) · [Plain text](https://alexmlewis.com/resume.txt) - [Contact](https://alexmlewis.com/contact) ## Selected work - [AI Workflow Kit](https://alexmlewis.com/work/ai-workflow-kit): A portable skill format and integration-abstraction layer - one markdown skill runs identically across Claude Code, Cursor, and Codex and binds to any calendar/notes/chat vendor at setup, not in code. The shipped library automates the recurring non-coding parts of an engineer’s day. - [Long-Running Coding Agents: A 6,000-Line Migration](https://alexmlewis.com/work/long-running-coding-agents): Completed a 6,000-line Python-to-TypeScript migration with an AI coding agent by treating the model as a stateless executor and myself as the planner - using an external progress file to hold state across sessions. - [Adaptive Prompt Selection & Evaluation](https://alexmlewis.com/work/probabilistic-prompt-selection): A design for moving beyond static prompts: retrieve candidate prompts by context, select with a multi-armed bandit, handle cold start, and close the loop with multidimensional evaluation and reward design. - [MCP Tooling & Tool-Boundary Design](https://alexmlewis.com/work/mcp-workflow-infrastructure): Model Context Protocol servers built on one principle - narrow, scoped tool surfaces over generic passthroughs - so AI assistants can safely act on real systems. The harder work is the tool-boundary design: scope, error handling, and where a human stays in the loop. ## Selected writing - [Ground-Truthing Your LLM Judge: Does Your Eval Actually Track Reality?](https://alexmlewis.com/writing/ground-truthing-llm-judges): 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. - [I Built 50 AI Skills for the Parts of My Day I Never Got Around To](https://alexmlewis.com/writing/50-ai-skills-for-the-parts-of-your-day-you-never-get-around-to): The biggest productivity gap isn't code - it's context gathering, note-taking, and status updates. I built 50 AI workflow skills to make those 15-minute tasks actually happen every day. - [Reward Engineering and Evaluation: Making Your System Learn What Matters](https://alexmlewis.com/writing/reward-engineering-and-evaluation-making-your-system-learn-what-matters): 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… - [Building the Selector: Retrieval, Bandits, and Cold Start Solutions](https://alexmlewis.com/writing/building-the-selector-retrieval-bandits-and-cold-start-solutions): 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… - [Why Static Prompts Fail and How Probabilistic Selection Solves Real Problems](https://alexmlewis.com/writing/why-static-prompts-fail-and-how-probabilistic-selection-solves-real-problems): This is the first post in a four-part series on building production-ready probabilistic prompt pipelines. By the end of this post, you'll understand why… - [Claude Code: The Hidden Testing Ground for AI Agents](https://alexmlewis.com/writing/claude-code-the-hidden-testing-ground-for-ai-agents): I've been using Claude Code daily since it launched for general use. After months of working with it, I've developed a theory about what's actually… - [Staying Sane on a 6,000-Line Refactor with Claude Code](https://alexmlewis.com/writing/staying-sane-on-a-6-000-line-refactor-with-claude-code): As large language models become more capable, it's tempting to rely on them for increasingly complex engineering tasks. Tools like Anthropic's Claude Code… - [Enhancing Retrieval-Augmented Generation with XML Prompting](https://alexmlewis.com/writing/enhancing-retrieval-augmented-generation-with-xml-prompting): In my current role, I’ve been working on a Retrieval-Augmented Generation (RAG) system designed to provide safe, reliable personal finance guidance. Given… ## Notes - [How this site is built](https://alexmlewis.com/notes/how-this-site-is-built) ## Profiles - GitHub: https://github.com/mpaarating - LinkedIn: https://www.linkedin.com/in/alex-lewis-2157759b/ - Bluesky: https://bsky.app/profile/alexmlewis.com ## Areas Applied AI, AI Agents, Agentic Systems, Large Language Models, Tool Calling, Retrieval-Augmented Generation, Model Evaluation, Developer Tools, Model Context Protocol, TypeScript, Python, React, Node.js, AWS