Work

EddyIn daily family use since April

A family video app with a feed that ends.

Kids share a link from anywhere. A model running locally at home checks it against their age, and it comes back in a feed that ends. There’s no chat, no endless scroll, and nothing about what they watch leaves the house.

I designed and built all of it: the product, the app, the guard, and the rubric and evals that keep it honest.

Gemma 4 · Ollama · Node · SQLite · iOS

Three decisions

All 20 decisions
  1. 13 Apr 2026

    Kids’ viewing stays home

    The kids’ viewing history stays on the home server, and no outside service learns who watched what.

    The kids’ viewing history stays inside the home server. A line from outside services stops at its wall: they never learn who watched what.

  2. 2 Oct 2026

    The guard judges safety; the family judges taste

    A 51% precision score was measuring two things at once, unsafe and not for us. Block now splits in two, and the guard is judged only on Unsafe.

    The guard scored 51% clear-yes precision against a 95% target, because a parent’s Block meant two things. Block now splits into Unsafe, the only answer the guard is measured on, and Not for us, the family’s taste.

  3. 22 May 2026

    Subscriptions and discovery compose one daily slate

    People you follow and discovery compete in one scored, capped pool. Discovery keeps reserved slots even on busy days, and a thin day stays short rather than padded.

    Each day’s slate holds at most 15: four back-catalogue and two from your interests are kept every day, and people you follow fill the rest. A busy day reaches the cap; a thin day stays short rather than padded.

One ThoughtIn testing on TestFlight

A golf app that stays in the bag.

You carry one thought round the course: keep your routine, take the boring target, let the last shot go. When it comes up, you press a button in your pocket or tap your watch. The phone stays in the bag, nothing adds up while you play, and afterwards the round is read back to you in one sentence.

I designed and built all of it: the phone and watch apps, the rules that write the sentence, and the research checks behind every thought.

SwiftUI · watchOS · GRDB · Flic · OpenStreetMap · Cloudflare Workers

Process

Full Routine

Same look, same waggle, same breath. Boring on purpose.

Kept four times.

Commit to the Line

Doubt all you like before you pick. None after.

Mind

The Heckler

They only win if you answer back.

Ancient History

The last shot is finished.

Decisions

Pins Are a Psyop

The flag is where they want you to aim.

Feel

One Breath

You were going to breathe anyway. Spend one on purpose.

Press the button or tap the watch. Nothing counts until the round is over.

Three decisions

All 23 decisions
  1. 15 Jun 2026

    An off-the-shelf button, not a bespoke brass penny

    I parked the brass penny for a certified off-the-shelf Flic, because about 80% of the cost and complexity came from sealing a radio and battery inside metal.

    The brass penny, a radio and battery sealed inside solid metal and about 80% of the cost, is parked. An off-the-shelf Flic button, certified and shipping, is the hardware.

  2. 12 Jun 2026

    The app never calls you

    No notifications, streaks, badges or feed. A thought is meant to graduate, so the app is built to be needed less; it waits to be opened after the round.

    A phone lock screen with nothing on it: no notifications, no streaks or badges, no dashboard or feed. The app waits to be opened after the round.

  3. 18 Sept 2026

    Research claims are checked by two readers who never see each other

    True findings were being stretched, so each claim is now graded by how close its study is to golf, by two readers who never see each other.

    Each research claim goes to two readers, one neutral and one sceptical, who never see each other. The more cautious grade stands; a disagreement is never averaged and comes to me.

Earlier