<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>mgaebler.me — Blog</title>
    <link>https://mgaebler.me/en/blog/</link>
    <description>Technical articles and tutorials.</description>
    <language>en-US</language>
    <lastBuildDate>Tue, 02 Jun 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://mgaebler.me/en/feed.xml" rel="self" type="application/rss+xml" />
    <generator>generate-rss.js</generator>
    <item>
      <title>Hunting a 250% CPU Bug in a Vite Monorepo</title>
      <link>https://mgaebler.me/en/blog/hunting-a-250-percent-cpu-bug-vite-monorepo/</link>
      <guid isPermaLink="true">https://mgaebler.me/en/blog/hunting-a-250-percent-cpu-bug-vite-monorepo/</guid>
      <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
      <description>Three Vite dev servers pinned at 250% CPU on an idle monorepo, fans audible, load average at 14. The fix was four lines of watcher config — but only methodical evidence-gathering with ps, lsof and sample revealed why fsevents was drowning. A story about agentic debugging and resisting the urge to guess.</description>
      <category>Vite</category>
      <category>Monorepo</category>
      <category>Performance</category>
      <category>Debugging</category>
      <category>Agentic Coding</category>
    </item>
    <item>
      <title>When macOS Tahoe breaks Nix: it&apos;s not the installer, it&apos;s BTM</title>
      <link>https://mgaebler.me/en/blog/nix-macos-tahoe-btm-blocks-launchdaemons/</link>
      <guid isPermaLink="true">https://mgaebler.me/en/blog/nix-macos-tahoe-btm-blocks-launchdaemons/</guid>
      <pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
      <description>A supposedly broken Nix install on macOS Tahoe was neither broken nor a Nix problem. It was Apple&apos;s Background Task Management silently blocking the LaunchDaemons — and the installer&apos;s own error message pointed users toward destructive commands that would have wiped the Nix store.</description>
      <category>Nix</category>
      <category>macOS</category>
      <category>LaunchDaemon</category>
      <category>Tahoe</category>
      <category>Debugging</category>
    </item>
    <item>
      <title>How devenv Fixed My AI Coding Workflow</title>
      <link>https://mgaebler.me/en/blog/devenv-ai-coding-workflow/</link>
      <guid isPermaLink="true">https://mgaebler.me/en/blog/devenv-ai-coding-workflow/</guid>
      <pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate>
      <description>A fragmented dev setup was silently slowing down my AI coding loop. Consolidating everything into a single devenv.nix turned Claude Code into an autonomous iteration machine.</description>
      <category>devenv</category>
      <category>Nix</category>
      <category>AI</category>
      <category>Testing</category>
    </item>
    <item>
      <title>The State of MCP OAuth with Azure Entra ID and APIM — A Reality Check</title>
      <link>https://mgaebler.me/en/blog/mcp-oauth-azure-entra-id-apim/</link>
      <guid isPermaLink="true">https://mgaebler.me/en/blog/mcp-oauth-azure-entra-id-apim/</guid>
      <pubDate>Thu, 26 Mar 2026 00:00:00 GMT</pubDate>
      <description>I tried to expose a REST API as MCP tools via Azure APIM with Entra ID OAuth. The APIM part worked. The auth part did not. Here&apos;s what I found.</description>
      <category>Azure</category>
      <category>MCP</category>
      <category>OAuth</category>
      <category>TypeScript</category>
    </item>
    <item>
      <title>Azure Static Web Apps: Custom Roles with rolesSource and Hono</title>
      <link>https://mgaebler.me/en/blog/azure-swa-custom-roles-rolessource-hono/</link>
      <guid isPermaLink="true">https://mgaebler.me/en/blog/azure-swa-custom-roles-rolessource-hono/</guid>
      <pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate>
      <description>How to make Entra ID app roles available in Azure Static Web Apps — and the pitfalls you&apos;ll encounter along the way.</description>
      <category>Azure</category>
      <category>Hono</category>
      <category>TypeScript</category>
    </item>
  </channel>
</rss>
