Display

Overengineered hobbies.
Shipped.

Finished is the hard part.

Every product on this page — including this website — I built end to end by directing LLMs. I decide what's worth building at all, what earns a place in v1 and what defers, and what it runs on; the models write the first cut, then we prune and polish until v1 is genuinely finished — and I take it through store review and everything after. One person, full product lifecycle. The judgment is the job.

5Products owned end to end
1Live on Google Play
2In store review

01 — The work REV B

SHIPPED & SHIPPING

Production applications taken all the way through packaging, signing and store submission.

BUILD 01

PELLUCID

macOS · Windows · iOS In review

A distraction-free writing environment whose interface fades out of the writer's way — and syncs their manuscript without ever holding it hostage.

Pellucid — editor Pellucid — research notes Pellucid — snapshots Pellucid — table of contents Pellucid — editor (mobile) Pellucid — research notes (mobile)
6 SHOTS — CLICK TO ENLARGE
Problem
Writing apps interrupt flow with chrome, and cloud sync usually means surrendering your files to a proprietary store.
Approach
A translucent “Whisper UI” that recedes while typing, over plain Markdown on disk. Versioned Google Drive sync using only the drive.file scope — the app can touch nothing it didn't create.
Outcome
Submitted to the Mac App Store; iOS and iPad builds green with keyboard-first interaction and OAuth via ASWebAuthenticationSession.
BUILD 02

KALKRA

macOS · iOS · Windows In review

A mental-arithmetic trainer that reads how fast you actually solve, and re-tunes its difficulty in real time.

Kalkra — gameplay Kalkra — dashboard Kalkra — mode select Kalkra — stats Kalkra — dashboard (mobile) Kalkra — stats (mobile)
6 SHOTS — CLICK TO ENLARGE
Problem
Fixed-difficulty drill apps are either boring or discouraging, because they never learn the player's actual ceiling.
Approach
A calibration engine that measures solve latency per operation type and adjusts live. Fully offline and single-player — no accounts, no network, no telemetry in store builds.
Outcome
Submitted to both the Mac and iOS App Stores, with a truthful “Data Not Collected” privacy declaration on every storefront.
BUILD 03

GASTROTATOR

Android Live on Google Play

Turns a twelve-minute cooking video into a structured, editable recipe with nutritional estimates — the most technically involved thing here, and the one you can install right now.

Gastrotator — recipe detail Gastrotator — library Gastrotator — settings Gastrotator — recipe (phone) Gastrotator — library (phone)
5 SHOTS — CLICK TO ENLARGE
Problem
The recipe in a cooking video is buried in twelve minutes of talking, in no fixed order, with quantities stated casually or not at all. Transcribing one by hand costs more than cooking from it.
Approach
A pipeline: pull the transcript, have Gemini extract ingredients, quantities and ordered steps, normalise units to SI, then estimate calories and weights. The hard part isn't the model call — it's forcing non-deterministic output into a schema stable enough to store, edit and trust.
Outcome
Shipped and live on Google Play. Less visually polished than the other two; considerably more complex underneath.
BUILD 04

AULOS

Windows · macOS Research — not for stores

The bedrock. At ~44,000 lines it is very nearly as much code as all three shipped apps combined — and the reason they were quick to build.

Aulos — now playing, music Aulos — now playing, audiobook Aulos — library Aulos — mood dashboard Aulos — ambient noise mixer
5 SHOTS — CLICK TO ENLARGE
Problem
Music, podcasts and audiobooks each want different controls, different resume behaviour and a different sense of progress — yet players usually force one model onto all three. Separately: I needed somewhere to work out architecture properly, without a release date attached.
Approach
A pure-Dart domain layer with the data layer behind it, and strategy-pattern playback so the UI reconfigures itself per media type rather than branching everywhere. Native thread-safety guarding for Windows, and async disposal protection throughout.
Outcome
Deliberately never submitted anywhere. The layering, playback abstraction and resilience patterns proven here are reused across the store apps — they ship fast because this one didn't have to.
BUILD 05

OVERENGINEEREDHOBBIES.DEV

Web Live — you're in it

This page. A portfolio that is itself a build — generated from a database, no frameworks, deployed to the edge.

The Work, drafting-paper theme The Method, blueprint theme The Work, terminal theme The Method, drafting-paper theme
THIS PAGE, THREE THEMES — CLICK TO ENLARGE
Problem
A portfolio that lists projects flatly says nothing about judgment — and hand-maintained project pages rot the moment the work moves on.
Approach
Project data lives in SQLite; Python templates generate the static pages. No framework, no build chain, no client-side rendering. Theming is CSS custom properties, so a new palette is fifteen lines.
Outcome
Live on Cloudflare. The smallest build here by far — included because the structure of this page is itself the argument.
PYTHONSQLITECLOUDFLARENO FRAMEWORKS