<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Bohea — Engineering Notes</title>
  <subtitle>Short engineering essays on building at the seam of software and hardware. Proof before promises.</subtitle>
  <id>https://boheastill.com/</id>
  <updated>2026-08-08T04:01:07+08:00</updated>
  <link href="https://boheastill.com/notes/" />
  <link rel="self" type="application/atom+xml" href="https://boheastill.com/feed.xml" />
  <author>
    <name>Bohea</name>
    <uri>https://boheastill.com</uri>
  </author>
  <entry>
    <title>AI extrapolates fluency. I extrapolate emotion.</title>
    <id>https://boheastill.com/notes/fluency-and-emotion-the-correcting-pair</id>
    <link href="https://boheastill.com/notes/fluency-and-emotion-the-correcting-pair" />
    <published>2026-08-08T04:01:07+08:00</published>
    <updated>2026-08-08T04:01:07+08:00</updated>
    <summary>The popular split — AI does the technical work, the human handles communication — is backwards. AI and people fail in opposite directions, and quality comes from the correcting pair, not from either side. Here's the protocol I run.</summary>
  </entry>
  <entry>
    <title>You can't see a refactor. So try to break the machine.</title>
    <id>https://boheastill.com/notes/try-to-break-the-machine</id>
    <link href="https://boheastill.com/notes/try-to-break-the-machine" />
    <published>2026-08-06T14:01:36+08:00</published>
    <updated>2026-08-06T14:01:36+08:00</updated>
    <summary>You paid for a refactor and nothing looks different — same paths, same screens. My answer: don't review the code. Run a break-it checklist against the machine — pull a sensor, feed an illegal part, watch it stop safely. How I make invisible work perceivable, even if you're not technical.</summary>
  </entry>
  <entry>
    <title>I use AI heavily. The machine still can't hurt you.</title>
    <id>https://boheastill.com/notes/ai-on-machines-that-can-hurt-people</id>
    <link href="https://boheastill.com/notes/ai-on-machines-that-can-hurt-people" />
    <published>2026-08-03T22:44:18+08:00</published>
    <updated>2026-08-03T22:44:18+08:00</updated>
    <summary>Every time I ask AI to review its own code, it finds new bugs. Not using it means being generationally outpaced. On software that moves a physical machine, how do you weigh that? Gates, like a type system.</summary>
  </entry>
  <entry>
    <title>One email per milestone</title>
    <id>https://boheastill.com/notes/one-email-per-milestone</id>
    <link href="https://boheastill.com/notes/one-email-per-milestone" />
    <published>2026-08-03T22:44:18+08:00</published>
    <updated>2026-08-03T22:44:18+08:00</updated>
    <summary>You want "an HMI," and that's the whole spec. I split the work into milestones so it can't spiral — and run each one with a single email. One big risk becomes small stages you just watch complete.</summary>
  </entry>
  <entry>
    <title>Where Value Goes When Building Is Free</title>
    <id>https://boheastill.com/notes/where-value-goes-when-building-is-free</id>
    <link href="https://boheastill.com/notes/where-value-goes-when-building-is-free" />
    <published>2026-07-16T01:23:40+08:00</published>
    <updated>2026-07-16T01:23:40+08:00</updated>
    <summary>When a cost goes to zero, value doesn't vanish — it moves to whatever became the new bottleneck. As AI makes building cheap, value migrates to judgment, accountability, and verification. And a machine that can hurt someone still needs a person who can be held responsible.</summary>
  </entry>
  <entry>
    <title>Why I Lead With a Runnable Demo</title>
    <id>https://boheastill.com/notes/why-i-lead-with-a-runnable-demo</id>
    <link href="https://boheastill.com/notes/why-i-lead-with-a-runnable-demo" />
    <published>2026-07-16T01:15:21+08:00</published>
    <updated>2026-07-16T01:15:21+08:00</updated>
    <summary>A quote is cheap and a claim is easy. Handing you something that runs — on mock data, before you spend a credential — moves the risk off you and onto me, where it belongs.</summary>
  </entry>
  <entry>
    <title>Industrial Reliability: Change the Denominator</title>
    <id>https://boheastill.com/notes/industrial-reliability-change-the-denominator</id>
    <link href="https://boheastill.com/notes/industrial-reliability-change-the-denominator" />
    <published>2026-07-15T14:29:14+08:00</published>
    <updated>2026-07-15T14:29:14+08:00</updated>
    <summary>You can't count the bugs that will hurt you — they're the ones you couldn't imagine. So stop counting bugs and count consequence classes instead. How to make a machine safe when you already know your software has bugs you haven't found.</summary>
  </entry>
  <entry>
    <title>A Private AI Assistant That Never Leaks: Designing the Outbound Boundary</title>
    <id>https://boheastill.com/notes/private-assistant-outbound-boundary</id>
    <link href="https://boheastill.com/notes/private-assistant-outbound-boundary" />
    <published>2026-07-15T14:19:35+08:00</published>
    <updated>2026-07-15T14:19:35+08:00</updated>
    <summary>'Your data never leaves your machine' is only real if you can point at the single place it does leave — and prove nothing else can. Designing the outbound boundary for a self-hosted AI assistant.</summary>
  </entry>
  <entry>
    <title>Governing AI Agents That Touch Money</title>
    <id>https://boheastill.com/notes/governing-agents-that-touch-money</id>
    <link href="https://boheastill.com/notes/governing-agents-that-touch-money" />
    <published>2026-07-15T14:16:15+08:00</published>
    <updated>2026-07-15T14:16:15+08:00</updated>
    <summary>The agent proposes, it never executes. Every write with a material consequence leaves the model's reach and passes an authorization layer the agent cannot author or bypass — with an escrow flow as the worked example.</summary>
  </entry>
</feed>