Skip to main content

Engineering Journal

Architecture decisions, technical write-ups, and implementation journeys.

Series

AI Workflow and Agent Automation

Building an AI-native engineering platform through deterministic workflows, explainable systems, and production architecture.

66 min read

AI Workflow and Agent Automation

8 of 8 chapters published · 66 min read

  1. From Portfolio Website to AI-Operable Engineering Platform

    A static portfolio has exactly one job — presenting information. I hit the same wall three times trying to make this one do more, and each time the fix looked the same before I'd even planned it that way.

    7 min read

  2. Designing Deterministic AI Workflows Around Claude

    The first cover-letter generator worked in an afternoon and was wrong in ways I didn't notice until much later. This is the story of the two separate times it broke, and what each one taught me about not trusting a model with the truth.

    8 min read

  3. Agent Automation Without Losing Engineering Control

    Giving an AI agent real access to a repository is fine, until you can no longer tell whether it acted or just proposed. Here's how I built the scaffolding that keeps that line visible — and where I got it wrong before I got it right.

    9 min read

  4. The Day I Stopped Writing Prompts

    Every time I added a new Claude call site, I wrote the same five lines of plumbing again and told myself it was fine because the feature was different. By the fourth time, it wasn't fine anymore — and the fix wasn't "write a better prompt."

    8 min read

  5. Why Every AI Feature Starts With Structured Data

    `structuredGenerate()` fixed how a Claude call is shaped. It said nothing about what gets fed into one — and that turned out to be the harder problem, one I'd already half-solved by accident in the tables I'd built for an entirely different reason."

    8 min read

  6. "AI Doesn't Need More Context—It Needs Better Context"

    Structured data tells you what's true. It doesn't tell you how much of it to show a model, or in what order — and the two times I got that wrong looked nothing alike on the surface, but broke for the exact same reason.

    9 min read

  7. Pipelines Beat Prompts

    A single well-crafted prompt has no seam to insert a check into. The moment I split one into named stages, I got something a prompt can never give you — a place to put a gate before the output ever reaches anyone.

    9 min read

  8. Building Systems That Can Explain Their Own Decisions

    A pipeline stops a model from deciding what's true. It doesn't automatically tell you why any given decision came out the way it did — and the honest version of that answer includes a security gap I've narrowed but not closed.

    8 min read

Series

Engineering AI Photo Intelligence

Building an explainable AI photo search system through hybrid retrieval, structured knowledge, and deterministic engineering.

56 min read

Engineering AI Photo Intelligence

7 of 7 chapters published · 56 min read

  1. From Photography to AI

    The photography page sat untouched for seven months while everything else on this site got smarter. This is the story of why it took that long, and what finally broke the standstill.

    7 min read

  2. Teaching AI About Photography

    The photo is the one input in this entire system I don't fully control. This is the story of the prompt, the contract, and the architecture decision that let Claude look at it safely.

    7 min read

  3. When Embeddings Lied to Me

    Search shipped, and returned nothing. I fixed that, and it started returning the wrong thing with total confidence. Both failures taught me not to trust a similarity score more than it's earned.

    9 min read

  4. Why I Invented a Controlled Vocabulary

    Cyclist should have found the bicycle photo. It didn't, and fixing that taught me my first threshold guess was wrong twice — once at 0.75, and once again at a single flat 0.55.

    9 min read

  5. Designing Search for Memories

    A ranked list of photos answers "which ones match." It doesn't answer "why do these belong together," and that turned out to be the more interesting question.

    8 min read

  6. Every Match Needs an Explanation

    A percentage badge and a list of cited photo IDs both look like proof. Neither one is, on its own — and the deterministic checks that had to sit behind each of them turned out to be very different problems.

    9 min read

  7. Building a Memory Engine

    The last gap wasn't in the retrieval pipeline at all — it was between a system that answers questions about photos and one that actually feels like it remembers them.

    7 min read

Series

The Line Between Knowing and Guessing

Engineering systems that can show what they know — and admit when the evidence runs out.

35 min read

The Line Between Knowing and Guessing

4 of 7 chapters published · 35 min read

  1. Where the System Stops Guessing

    A stray query token, a 0.75 threshold that still wasn't strict enough, and the discovery that some questions don't need a probability at all — only a rule.

    8 min read

  2. "Fixing What You're Comparing, Not What You're Comparing It To"

    Exact-hex color matching was never going to work, no matter how the threshold was tuned. Fixing the comparison model — twice, in two unrelated domains — came before any number did.

    9 min read

  3. Turning a Threshold Into a Measurement

    A permanent sweep against real ground truth, an unambiguous elbow, and one honestly-reported gap that no threshold, however tuned, was ever going to close.

    9 min read

  4. Who Gets to Say How Sure You Are

    A proposal, a validator, and a confidence model that starts at "high" and only ever moves down — and what it actually took to prove that mechanism generalizes, not just once, but twice.

    9 min read