How I keep full control of AI-written code
AI agents do almost all the work, while I control permissions, review every change, and decide what gets merged.
$ whoami
Przemysław Kołodziejczyk, aka eshlox. Developer and AI Agents Team Lead from Poland.
$ work
I build simple, secure software end to end, from apps to infrastructure. I write the code AI can’t yet.
$ tools
TypeScript, Node.js, React, Flutter, and SQL, plus whatever fits the job. Open source, privacy, KISS, and YAGNI guide my work.
AI agents do almost all the work, while I control permissions, review every change, and decide what gets merged.
I let AI build a full side project in one run. It ran, but every screen had bugs and I do not know the code. Now I think small tasks, real reviews, and my own merge decision are still the way to work.
I write a Flutter app in a container on a Hetzner box and build it on my Mac. Mutagen copies each change to the Mac over SSH, not Docker.
I moved all my development off my MacBook and onto an always-on Hetzner VPS, reached over Tailscale. The laptop is now a thin client running only Ghostty, Tailscale, Secretive, and a few small tools. Everything else runs in the cloud, one container per project.
The Anthropic case reminded me that vendor lock-in is not just a technical problem. A service can also be affected by the government and laws of the country where the company operates. For critical projects, you need an exit plan.
Why I wrote a small Bash wrapper around Lima to give each project its own Fedora VM, with VM-local SSH keys, an AI agent sandbox, and no host mounts by default.