Hi, I'm Ben.
Software Architect and Developer
20+ years building apps for work and for fun. Now becoming AI-native: AI-first tooling, workflows, and product thinking.
Three apps, built with intent.
The defaults I build with
Local-first products, AI-assisted development, and a workflow that stays maintainable as the codebase grows. The AI capability I'm building is a first-class output too, not just a means to ship the apps.
Local-first, and offline-friendly.
Prefer local storage and workflows that work without a network.
No accounts unless they earn their keep.
I avoid centralized user data and backend stacks unless the product truly needs them.
AI-assisted development, on purpose.
Cursor, Claude Code, and Codex help me iterate fast, but the constraints still matter.
Guardrails over vibes.
Reusable prompts and “skills”, plus a review pass, keep output consistent and maintainable.
Small tools that do one job properly.
Clear scope, sharp edges, and a bias toward shipping something you’ll actually use.
Decisions stay written down.
ADRs in Obsidian help keep long-term context and stop tools drifting back to bad defaults.
AI-native, with guardrails
I use AI tools heavily, but the goal isn't “press a button and ship”. The goal is to reduce the cost of doing the right thing: clearer scope, better boundaries, and faster iteration without turning the codebase into a mess.
In practice, that means I'm building two things at once: the product, and the AI-first delivery system behind it.
Each product follows the same loop, and I keep refining it as the tooling changes.
From idea to merge
A simple loop I follow across products, and keep refining as the tooling changes.
A few of the technical threads behind the apps
Quick technical snapshots, with links to the projects where they show up.
