<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cra.mr</title><description/><link>https://cra.mr/</link><item><title>Building an Intern</title><link>https://cra.mr/building-an-intern/</link><guid isPermaLink="true">https://cra.mr/building-an-intern/</guid><description>Junior is the open-source Slack agent I&apos;ve been building at Sentry for the last four months. It seemed easy: put an agent in Slack, give it tools, ship it. This is the story of how it was anything but.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title>A Bigger Toolbox for MCP</title><link>https://cra.mr/a-bigger-toolbox-for-mcp/</link><guid isPermaLink="true">https://cra.mr/a-bigger-toolbox-for-mcp/</guid><description>Search and execute primitives are how MCP gets useful at scale. You can expose thousands of capabilities without dumping every tool definition into the model context.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Finding Vulnerabilities with Warden</title><link>https://cra.mr/finding-vulnerabilities-with-warden/</link><guid isPermaLink="true">https://cra.mr/finding-vulnerabilities-with-warden/</guid><description>We found 100+ vulnerabilities with Warden across Sentry and a few big OSS repos—here’s how we scope skills, iterate locally, and run it on PRs.</description><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Tracing Sucks</title><link>https://cra.mr/tracing-sucks/</link><guid isPermaLink="true">https://cra.mr/tracing-sucks/</guid><description>I keep ending up in the same place: distributed tracing sounds great, but the instrumentation is a mess, the cost is obscene, and most of what I actually want is structured logs with a trace_id attached.</description><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Optimizing Content for Agents</title><link>https://cra.mr/optimizing-content-for-agents/</link><guid isPermaLink="true">https://cra.mr/optimizing-content-for-agents/</guid><description>There is a lot of bad discourse around whether we should optimize content for agents at all, and most of it misses the point. We already shape content for humans, and agents are no different. At Sentry we&apos;ve started treating this as a real interface problem: serving markdown instead of HTML, restructuring content around hierarchy, and giving agents direct paths to the tools and systems they actually need.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Building a Slack Agent with Pi on Vercel</title><link>https://cra.mr/building-a-slack-agent-with-pi-on-vercel/</link><guid isPermaLink="true">https://cra.mr/building-a-slack-agent-with-pi-on-vercel/</guid><description>I built a Slack bot called Junior using Vercel&apos;s Chat SDK, Pi, AI Gateway, and Sandboxes. The interesting parts aren&apos;t the framework choices — they&apos;re Slack-native tools like canvases and lists, knowing when to shut up, and a skills system where new capabilities are markdown files, not code.</description><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Skill Synthesis</title><link>https://cra.mr/skill-synthesis/</link><guid isPermaLink="true">https://cra.mr/skill-synthesis/</guid><description>We found 8 real security vulnerabilities in Sentry that our pen testers and bug bounty program missed. All it took was a synthesized skill, Warden, and one very long day.</description><pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Context Management and MCP</title><link>https://cra.mr/context-management-and-mcp/</link><guid isPermaLink="true">https://cra.mr/context-management-and-mcp/</guid><description>The MCP vs CLI debate is missing the point. The real value is steering agents through context management. Progressive disclosure is a step backwards. Context rot is real, and subagents might be the only way forward.</description><pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Your code is under new management</title><link>https://cra.mr/your-code-is-under-new-management/</link><guid isPermaLink="true">https://cra.mr/your-code-is-under-new-management/</guid><description>I shipped Warden - a Fair Source project that lets you run code review agents locally and on pull requests. It&apos;s not perfect, but it&apos;s dead simple to plug in any skill and have it act as a linter. The goal was preventing a specific class of bug from ever making it through a PR, which meant not worrying about cost.</description><pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate></item><item><title>MCP, Skills, and Agents</title><link>https://cra.mr/mcp-skills-and-agents/</link><guid isPermaLink="true">https://cra.mr/mcp-skills-and-agents/</guid><description>If you&apos;re not caught up on the current hypewave, coding agents like Claude Code and Cursor have latched onto skills recently. Like with all of these waves, everyone has immediately proclaimed they solve all problems, and all previous iterations of technology are no longer relevant. That&apos;s obviously not true, and I want to talk about my thinking behind them.</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Rethinking Tools in MCP</title><link>https://cra.mr/rethinking-the-definition-of-tools-in-mcp/</link><guid isPermaLink="true">https://cra.mr/rethinking-the-definition-of-tools-in-mcp/</guid><description>I&apos;ve spent a fair bit of time explaining why the GitHub MCP server design is wrong. In this installment we move even further away from an API shim, going from permission-based scopes to intent-driven &apos;skills&apos; that focus on behaviors rather than raw API endpoints.</description><pubDate>Thu, 11 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Subagents with MCP</title><link>https://cra.mr/subagents-with-mcp/</link><guid isPermaLink="true">https://cra.mr/subagents-with-mcp/</guid><description>An experiment wrapping Sentry&apos;s MCP in a subagent to cut token costs by 95%, with benchmarks showing the trade-offs between context efficiency and response time.</description><pubDate>Wed, 29 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Unreal Engine isn&apos;t ready for AI</title><link>https://cra.mr/unreal-engine-isnt-ready-for-ai/</link><guid isPermaLink="true">https://cra.mr/unreal-engine-isnt-ready-for-ai/</guid><description>Hackweek at Sentry this year was exactly as you&apos;d expect: LLMs everywhere. In practice what that looks like is a lot of folks trying to build things in spaces that they&apos;re less familiar with. For myself and my co-founder this continued our tradition of attempting to build games, this time with Unreal Engine. This time around I wanted to see how much I could rely on an LLM to push the boundaries of my skills as I had already experienced the effectiveness of this strategy when working on an iOS app recently.</description><pubDate>Fri, 22 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Built With Borrowed Hands</title><link>https://cra.mr/built-with-borrowed-hands/</link><guid isPermaLink="true">https://cra.mr/built-with-borrowed-hands/</guid><description>I spent two months forcing an unnatural constraint on myself: what if I could only rely on agents writing code for a real-world production service? It seemed possible, and the results are exactly what you expect: mixed. The service in question here is mcp.sentry.dev - our solution for exposing coding agents to Sentry workflows. It&apos;s not an extremely critical production service so the risk was lower, and most importantly it was self-contained. Most important to this experiment was this repository has become one of our test beds for the cutting edge, with a lot of experiments in how we enable agents, how we utilize them, and really what I personally believe to be at the edge of applied ML.</description><pubDate>Fri, 08 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Instrumenting Your MCP Server</title><link>https://cra.mr/instrumenting-an-mcp-server/</link><guid isPermaLink="true">https://cra.mr/instrumenting-an-mcp-server/</guid><description>So you&apos;re on the MCP hype train, eh? I&apos;m not here to dissuade you from shooting your shot, but let&apos;s make sure you&apos;ve got your bases covered in production when something inevitably goes wrong. This focus will be on utilizing Sentry for errors, traces, and logs, and if you want to use another service, well I can&apos;t stop you from making bad decisions. We&apos;re only going to cover TypeScript, but the patterns apply to the Python implementations as well.</description><pubDate>Fri, 09 May 2025 00:00:00 GMT</pubDate></item><item><title>MCP is not good, yet.</title><link>https://cra.mr/mcp-is-not-good-yet/</link><guid isPermaLink="true">https://cra.mr/mcp-is-not-good-yet/</guid><description>Something&apos;s been bothering me lately surrounding the conversation of MCP servers. Everyone, seemingly, is talking about how MCPs are great, and we should be building MCPs, and adopting MCPs, and rethinking UIs with MCPs, becoming best friends with MCPs, getting married to MCPs, you know, the works.</description><pubDate>Tue, 06 May 2025 00:00:00 GMT</pubDate></item><item><title>20/20 Vision with ICL</title><link>https://cra.mr/2020-vision-with-icl/</link><guid isPermaLink="true">https://cra.mr/2020-vision-with-icl/</guid><description>Like a lot of my fellow nerds (and maybe all of humankind), I was blessed with shitty vision from childhood. In fact, my vision is bad enough that I&apos;m technically blind without prescription lenses. I&apos;m extremely near-sighted - something like a -9/-10. About a decade ago I explored if I could get LASIK and was quickly told it was out of the question.</description><pubDate>Wed, 23 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Running Evals in Vitest</title><link>https://cra.mr/vitest-evals/</link><guid isPermaLink="true">https://cra.mr/vitest-evals/</guid><description>I have been fiddling with an MCP server for Sentry over the last few weeks. It&apos;s been a fun project to explore exposing Sentry&apos;s interactions within an LLM&apos;s context - particularly useful in clients like Cursor or VSCode. As part of setting this up I went down a rabbit hole of my standard checkboxes for a software stack, and got hung up a bit on testing capabilities. There wasn&apos;t an obvious great way to use vitest with Evals.</description><pubDate>Mon, 14 Apr 2025 00:00:00 GMT</pubDate></item><item><title>On Product-Market Fit</title><link>https://cra.mr/on-product-market-fit/</link><guid isPermaLink="true">https://cra.mr/on-product-market-fit/</guid><description>One of the most difficult challenges I&apos;ve faced in my career is figuring out product-market fit. I&apos;d wager most of us have gotten there through sheer dumb luck. What do we do if we&apos;re not lucky, if we don&apos;t strike gold on our first try? I don&apos;t know if I have the answer. What I can do is try to break down what worked for Sentry&apos;s error monitoring - a reverse engineering of sorts - and reason about how we&apos;d apply that to new products.</description><pubDate>Tue, 04 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Lunch Isn&apos;t Free</title><link>https://cra.mr/lunch-isnt-free/</link><guid isPermaLink="true">https://cra.mr/lunch-isnt-free/</guid><description>Open Source software takes time and money to develop, and that time and money has to come from somewhere.</description><pubDate>Mon, 28 Oct 2024 00:00:00 GMT</pubDate></item><item><title>What is Brand?</title><link>https://cra.mr/what-is-brand/</link><guid isPermaLink="true">https://cra.mr/what-is-brand/</guid><description>Earlier this week I was at a dinner with a number of founders where the conversation focused on brand, visual design, and in general a lot of the components that make up your early stage marketing strategy. It inspired me to go a little deeper with my own thoughts on brand.</description><pubDate>Fri, 04 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Fire Faster, but Hire Better</title><link>https://cra.mr/fire-faster-but-hire-better/</link><guid isPermaLink="true">https://cra.mr/fire-faster-but-hire-better/</guid><description>Whether you&apos;re starting a company, or you&apos;re in a leadership position at another company, you likely need more around focus your approach to hiring.</description><pubDate>Sun, 29 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Open Source is not a Business Model</title><link>https://cra.mr/open-source-is-not-a-business-model/</link><guid isPermaLink="true">https://cra.mr/open-source-is-not-a-business-model/</guid><description>So you&apos;re starting a company and you want an Open Source business model, eh? Let&apos;s talk about what that means, and how that statement is both totally valid, and makes no sense at the same time.</description><pubDate>Fri, 09 Aug 2024 00:00:00 GMT</pubDate></item><item><title>CTA: Structuring Unstructured Data</title><link>https://cra.mr/cta-structuring-unstructured-data/</link><guid isPermaLink="true">https://cra.mr/cta-structuring-unstructured-data/</guid><description>I have a challenge. It&apos;s one thats somewhat unique to my project, but also an absolutely generalized challenge in the industry. In fact, the same challenge exists at Sentry. That challenge is fingerprinting loosely structured data to deduplicate entities. Let me explain.</description><pubDate>Thu, 11 Jul 2024 00:00:00 GMT</pubDate></item><item><title>wtb: Progressive SPAs</title><link>https://cra.mr/wtb-progressive-spas/</link><guid isPermaLink="true">https://cra.mr/wtb-progressive-spas/</guid><description>I&apos;ve been using React a long time at this point, and it&apos;s by far my favorite approach to building a UI - interactive or not. Most of that time has been spent at Sentry, but whenever I start a new project, I still reach for React. I want to talk a little about what I&apos;d love to see the React ecosystem adopt, and where I see some of the gaps with approaches today, particularly around the slow evolution of Single Page Applications.</description><pubDate>Mon, 17 Jun 2024 00:00:00 GMT</pubDate></item></channel></rss>