About
I am a product and delivery leader based in Vaud, with more than eight years spent building products, platforms and teams, from a healthcare start-up to a global digital-health platform. I hold an MSc in Robotics from EPFL. My day work is taking AI products from first prototype to scale in regulated settings, and setting up the operating models that make delivery predictable.
This site is the other half: products I build myself, for people I know. A trip organizer for a group of friends, a weekly meal planner for a household of two, a travel companion for a couple, a quiz app for medical students, a quarterly check-in for couples. Each one is finished rather than broad: states, motion, copy and accessibility are all done before a screen ships.
I build this way because I want to find out how far one product owner can go with a well-run team of agents, and to keep the answer honest.
Method
The loop is the same in every project. It is written down in each repository and read by the agents every session.
- Brief. I steer as product owner, in short messages, often from a phone. Work is cut into waves, one per milestone, each opened with a one-page brief.
- Issue. Every unit of work is a GitHub issue, handled one at a time.
- Implementer. An orchestrator session briefs one implementer agent per issue. The agent works on a branch, commits at every step and opens a pull request only when the local gate is green.
- Review. A separate read-only reviewer reads the pull request while another agent watches CI. Fixes go to a fresh agent, because long-running agents carried too much context and made review rounds expensive.
- Gate. Lint, types, unit tests, a database suite and a build must pass before merge.
- Deploy. Merging to main triggers the deploy. The orchestrator polls the health endpoint until the new build hash appears and reports ok.
What stays human: what to build, what to call finished, anything involving money, credentials, deployment or irreversible changes. Agents ask me for those. Each wave closes with a check of the real screens on a phone. A status file and build log carry the memory between sessions.
Infrastructure
Everything runs on hardware I own: a Synology NAS hosting Coolify, which builds Docker images from each repository and deploys on every merge to main. Each product has its own subdomain under borden.ch. Some are private apps for a household or a group, and so are not linked here. This site itself is a static build served by nginx in a container, deployed the same way.