Skip to content

AI-driven development

Agents do the legwork.
I make the calls.

I use AI the way I use any good tool: to move faster on the parts that don't need me, so I can spend more time on the parts that do. Here's what that looks like on a real project, from the first brief to a deploy.

The loop

From brief to deploy, one step at a time

Brief

The goal, the constraints and what "done" means, written down before any code. Agents are only as good as their instructions, so this is where most of the thinking happens.

brief.md
  1. Goal: a detail page for every project
  2. Constraints: no new dependencies, keep the design system
  3. Done when: cards link to pages, types pass, phones look right
  • Plain text
  • Figma
  • The existing codebase

The brief and checklists above are from the brief behind this site's project pages. The agent and deploy panels are simplified illustrations of the same steps.

The privacy line

Your data stays on my hardware. Everything else can go to the cloud.

Stays on my hardware

Qwen on llama.cpp, directly or through Strata

  • Client data
  • Private and proprietary code
  • Credentials and server configs

Goes to cloud agents

Claude Code and OpenCode

  • Open, non-sensitive code like this site
  • Refactors, scaffolding and exploration
  • Second-opinion reviews
The setup

Cloud agents where they help, local models where privacy matters

Cloud agents, in the repoClaude Code & OpenCode
Scoped changes, refactors, codebase exploration and second-opinion reviews on code that isn't sensitive, always from a written brief.
On my own hardwareQwen on llama.cpp
A local model for client data and private code, run directly or through Strata. Nothing it sees leaves the machine.
On my serversAutomated pipelines
GitHub to Dokploy on Ubuntu, behind iptables and Cloudflare Tunnels. Builds and deploys happen on push.
Where it shows up

Real work, not a demo

Ground rules
  • I read every line before it ships.
  • Design decisions and client conversations stay human.
  • Client data and private code stay on my own hardware.
  • No made-up speedups. It's faster when it's faster.