Writing

Notes from building AI products.

  1. Essay / 7 min readWhat makes an AI tool useful, not just functionalAn AI tool can pass every schema check and still fail the person using it. What I've learned about journeys, tool design, latency, errors and evals from putting AI tools in front of real users.Read
  2. Essay / 7 min readDebugging tool calls across distributed systems: a field guideFour incidents from a production AI app: a provider outage, signed webhooks we rejected ourselves, an enforcement flag that nearly locked out paying customers, and a latency fix hiding a timeout. Each ends with what I do now.Read
  3. Essay / 7 min readOAuth, scopes and trust for AI toolsWhen a model acts on someone's account, identity decisions become product decisions. Least privilege, token handling, account linking, logging and consent, from systems that handle real subscriptions.Read
  4. Field note / Decision dashboardA gateway 503 on every call, and a panel with no verdictsHow a batched model call through a failing gateway blanked a seven-stage decision panel, and the per-stage fallback and snapshot caching that fixed it.Read
  5. Field note / EntitlementsReplaying Apple's missed notifications from their own signaturesSubscription access drifted from the App Store. The fix was to treat Apple's signed history as the source of truth and reconcile against it every day.Read
  6. Field note / Voice accessA dry run that kept a new rule from locking out paying subscribersA flag to end voice access on a lapsed App Store period looked safe. A dry run against production data showed it was not, and traced the problem to an old repair job.Read
  7. Field note / Messaging gatewayAnswering in iMessage under a 120-second request limitStarting the assistant's turn inside the webhook cut seconds of latency, until the wait itself matched the platform's timeout. The fix: nested timeouts and exactly-once delivery.Read