<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>M. Usman Akram — Writing</title>
    <link>https://usmanakram232.github.io/blog/</link>
    <atom:link href="https://usmanakram232.github.io/feed.xml" rel="self" type="application/rss+xml" />
    <description>A running series on building a fully declarative Nix workstation (NixOS + nix-darwin), agentic AI tooling, and defence-in-depth security.</description>
    <language>en</language>
    <item>
      <title>Bonsai 2 and the Local Model That Finally Earns Its RAM</title>
      <link>https://usmanakram232.github.io/blog/part-17-bonsai-2-local-model/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-17-bonsai-2-local-model/</guid>
      <pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate>
      <description>Evaluating two MLX models on an M5, why the winner needed a custom FastAPI server because it doesn&#39;t fit mlx_lm.server or mlx_vlm.server, and using it to fix a structural hallucination problem in Perplexica.</description>
    </item>
    <item>
      <title>Automating PR Review, Take Two</title>
      <link>https://usmanakram232.github.io/blog/part-16-pr-review-automation-take-two/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-16-pr-review-automation-take-two/</guid>
      <pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
      <description>Replacing a hand-rolled OpenCode JSON-prompt PR reviewer with ocr (alibaba/open-code-review), root-causing why GitHub silently drops stale reviews, and why the result stays a PENDING draft instead of an auto-submit.</description>
    </item>
    <item>
      <title>A Remote VM on the Tailnet, and the Roadmap Finally Catches Up</title>
      <link>https://usmanakram232.github.io/blog/part-15-tailnet-vm-roadmap-catches-up/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-15-tailnet-vm-roadmap-catches-up/</guid>
      <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
      <description>Tailscale plus a disposable Lima VM for remote agent sessions, nightly sanitized session backup with a secret-scan quarantine gate, and the first concrete delivery against the Part 5 autonomous-agent roadmap.</description>
    </item>
    <item>
      <title>One Repo, Two Machines, Zero Copy-Paste</title>
      <link>https://usmanakram232.github.io/blog/part-11-fork-sync-architecture/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-11-fork-sync-architecture/</guid>
      <pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate>
      <description>Turning a single-person nix-darwin flake into a shared config for two people: how 17 commits of hand-diverged fork drift got collapsed into one file per person, and the audit process that keeps it that way.</description>
    </item>
    <item>
      <title>The Case of the Generic &#39;sh&#39;</title>
      <link>https://usmanakram232.github.io/blog/part-12-launchd-sh-mystery/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-12-launchd-sh-mystery/</guid>
      <pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate>
      <description>Thirteen background agents on my Mac all showed up as a process named &#39;sh&#39; in Activity Monitor. The root cause was a two-mode home-manager option with no correctly-named option for RunAtLoad agents, and the fix was a 56-line Nix derivation wrapping a compiled Rust binary.</description>
    </item>
    <item>
      <title>66 Loose Directories and How I Made Them Nix&#39;s Problem</title>
      <link>https://usmanakram232.github.io/blog/part-13-skills-consolidation/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-13-skills-consolidation/</guid>
      <pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate>
      <description>Six months of git-clone-and-forget agent skills, an audit that found 202 entries and only 4 nix-managed, and the afternoon of merges and tooling that fixed it.</description>
    </item>
    <item>
      <title>The Lightning Round: Five Small Fixes From the Same Six Weeks</title>
      <link>https://usmanakram232.github.io/blog/part-14-lightning-round/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-14-lightning-round/</guid>
      <pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate>
      <description>A full-screen meeting overlay that survives multi-monitor coordinate math, herdr joining tmux in the terminal, an AeroSpace schema bump with a silent behavior change, the docker runtime split, and cutting the local MLX model set from 17 to 5.</description>
    </item>
    <item>
      <title>Post-publication refinements, corrections, and the migration gap</title>
      <link>https://usmanakram232.github.io/blog/part-10-post-publication-refinements/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-10-post-publication-refinements/</guid>
      <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
      <description>Three weeks of daily use after Parts 6-9: what changed, what I got wrong about the Lima VM, the manual migration steps no script can automate, and the honest status of the three-tier agent architecture.</description>
    </item>
    <item>
      <title>How We Ship Production Java with AI Agents</title>
      <link>https://usmanakram232.github.io/blog/my-agentic-workflow/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/my-agentic-workflow/</guid>
      <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
      <description>Six months of real production Java on a financial services backend — multi-agent automation, automated reviews, and the human decisions that still matter.</description>
    </item>
    <item>
      <title>My notes are a codebase. The LLM is the build step.</title>
      <link>https://usmanakram232.github.io/blog/notes-as-a-codebase/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/notes-as-a-codebase/</guid>
      <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
      <description>A Git repo, a fish function, and a compile step that turns raw daily captures into a wiki you actually read.</description>
    </item>
    <item>
      <title>From NixOS to macOS: Porting a Declarative Workstation Across Platforms</title>
      <link>https://usmanakram232.github.io/blog/part-6-macos-migration/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-6-macos-migration/</guid>
      <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
      <description>When a lifetime Linux user buys a MacBook, the dotfiles follow. How the NixOS/Hyprland config from Part 1 survived the platform switch with 90% of home modules intact — and what had to change.</description>
    </item>
    <item>
      <title>Auditing a Declarative Desktop: What to Look For and What I Found</title>
      <link>https://usmanakram232.github.io/blog/part-7-security-audit/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-7-security-audit/</guid>
      <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
      <description>After two years of incremental config changes, I audited my own setup for security, hygiene, and correctness. Starting from a threat model, working through each layer — and the surprising things I discovered.</description>
    </item>
    <item>
      <title>New Machine, One Hour: A Fully Automated macOS Bootstrap</title>
      <link>https://usmanakram232.github.io/blog/part-8-macos-bootstrap/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-8-macos-bootstrap/</guid>
      <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
      <description>From a bare MacBook to the full nix-darwin setup in a single script — and the tools that make it possible: OrbStack for Docker/TestContainers, Lima for OpenCode isolation, and the unified setup orchestrator.</description>
    </item>
    <item>
      <title>The production pass: shared config, security scripts, and the next agent architecture</title>
      <link>https://usmanakram232.github.io/blog/part-9-production-pass/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-9-production-pass/</guid>
      <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
      <description>After getting macOS working in Parts 6-8, two more sessions to make it right: a single source of truth for work infrastructure, three security utility scripts, and the design for sandboxed multi-agent OpenCode.</description>
    </item>
    <item>
      <title>Future roadmap: what&#39;s next</title>
      <link>https://usmanakram232.github.io/blog/part-5-future-roadmap/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-5-future-roadmap/</guid>
      <pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate>
      <description>Heracles agents, Firecracker microVMs, full NixOS switch, flattened skill architecture, home server convergence, and a ten-year arc.</description>
    </item>
    <item>
      <title>Agent security: running untrusted code safely</title>
      <link>https://usmanakram232.github.io/blog/part-4-agent-security/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-4-agent-security/</guid>
      <pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate>
      <description>AI agents that write and execute code, inside gVisor sandboxes, holding zero secrets, mediated by an audited MCP broker on the host.</description>
    </item>
    <item>
      <title>Security posture: defence-in-depth on a declarative desktop</title>
      <link>https://usmanakram232.github.io/blog/part-3-security-posture/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-3-security-posture/</guid>
      <pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate>
      <description>Encrypted secrets, encrypted DNS, interactive firewalls, zero-trust networking, and hardware security — all declared in Nix.</description>
    </item>
    <item>
      <title>The agentic development stack</title>
      <link>https://usmanakram232.github.io/blog/part-2-agentic-development-stack/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-2-agentic-development-stack/</guid>
      <pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate>
      <description>How to wire up a multi-model, multi-agent AI environment: OpenCode, Claude Code, MCP servers, 90+ skills, and a three-tier agent pipeline, all managed declaratively.</description>
    </item>
    <item>
      <title>The declarative NixOS stack</title>
      <link>https://usmanakram232.github.io/blog/part-1-declarative-nixos-stack/</link>
      <guid isPermaLink="true">https://usmanakram232.github.io/blog/part-1-declarative-nixos-stack/</guid>
      <pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate>
      <description>How a dotfiles repo evolved from shell scripts into a single flake that reproduces an entire Linux workstation.</description>
    </item>
  </channel>
</rss>
