<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>John Ryan Cottam · Director of Engineering · Engineering leader who still ships</title><description>Engineering leader who still ships</description><link>https://johnryancottam.com/</link><language>en-us</language><item><title>Type /ship and Mean It</title><link>https://johnryancottam.com/notes/type-ship-and-mean-it/</link><guid isPermaLink="true">https://johnryancottam.com/notes/type-ship-and-mean-it/</guid><description>Every PR has a tax — rebasing, linting, changelogs, and docs. A /ship agent skill runs the checklist so you can open the PR and mean it.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>The data exists. Nobody assembles it.</title><link>https://johnryancottam.com/notes/the-data-exists-nobody-assembles-it/</link><guid isPermaLink="true">https://johnryancottam.com/notes/the-data-exists-nobody-assembles-it/</guid><description>Engineering output shouldn’t be measured by gut feeling. One dashboard assembles GitHub, ADO, and Cursor activity into a single view, with one shared tool registry for chat and MCP.</description><pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Stop Asking AI to &quot;Make It Look Better&quot;</title><link>https://johnryancottam.com/notes/stop-asking-ai-to-make-it-look-better/</link><guid isPermaLink="true">https://johnryancottam.com/notes/stop-asking-ai-to-make-it-look-better/</guid><description>Design commands and automated checks for coding agents. Improve UI in focused passes with Impeccable—not vague make-it-better prompts.</description><pubDate>Sat, 21 Mar 2026 00:00:00 GMT</pubDate></item><item><title>MCP on Bun and Hono with mcp-handler</title><link>https://johnryancottam.com/notes/mcp-on-bun-and-hono-with-mcp-handler/</link><guid isPermaLink="true">https://johnryancottam.com/notes/mcp-on-bun-and-hono-with-mcp-handler/</guid><description>mcp-handler is a Web-standard Request handler. Mount it on Bun and Hono to serve MCP over Streamable HTTP without building the transport yourself.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Stream AI Responses in Production</title><link>https://johnryancottam.com/notes/stream-ai-responses-in-production/</link><guid isPermaLink="true">https://johnryancottam.com/notes/stream-ai-responses-in-production/</guid><description>A loading spinner hides progress. Stream AI responses with Hono and the Vercel AI SDK, then handle the failures that appear in production.</description><pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate></item><item><title>How I Actually Use Claude Code</title><link>https://johnryancottam.com/notes/how-i-actually-use-claude-code/</link><guid isPermaLink="true">https://johnryancottam.com/notes/how-i-actually-use-claude-code/</guid><description>Claude Code is most useful when the task is bounded, the repository supplies the context, and every result is verified before it ships.</description><pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate></item></channel></rss>