Six Months Without Typing Code: What One Engineer Learned Running Agents in Disposable VMs

exe.dev's Maisem Ali stopped writing code by hand in February. Coding agents made shipping easy, he writes; reviewing the work and deciding what to build became the hard parts.
Six Months Without Typing Code: What One Engineer Learned Running Agents in Disposable VMs
Six Months Without Typing Code: What One Engineer Learned Running Agents in Disposable VMs

In February, Maisem Ali made a rule for himself: no more writing code by hand. Six months later, the exe.dev engineer has written up what that looked like in practice, and his biggest lesson isn’t about typing. “Shipping got easy. Deciding what to ship got important.”

Ali had leaned on Copilot, Cursor’s tab completion and then Claude Code, which let him describe a change once and have the agent edit many files. He says the models “got really good, almost all at once” early this year, when GPT-5.3 and Opus 4.6 could handle larger changes with much less steering. The rule followed. If an agent got stuck, he wasn’t allowed to finish the job himself; he had to figure out what the agent was missing and fix that.

From one agent to twenty VMs

With agents doing the typing, Ali started running several at once, and they promptly collided: same files, same Git state, fights over ports, leftover processes. Worktrees solved only the Git part, AGENTS.md rules ate context, and containers were leaky and still tied to his laptop. Since exe.dev makes Linux VMs that boot in seconds, he gave each task its own disposable machine, had Claude write and iterate on the setup script, and built a tool called botd to provision boxes, drive the agents and keep every conversation, with mobile as a first-class interface. At peak he ran about 20 VMs.

Inside each VM, agents ran without approval prompts, since a trashed environment cost nothing. The real risk was external access. Agents got read-only access to most systems and write access only to test environments, and credentials stayed out of the VMs: requests went through a proxy that added the secret, so the agent never saw it.

Review is the bottleneck

Agents could run tests and CI, start the app and send screenshots, but they were still grading their own work. Being able to open the running environment and use the feature himself mattered, and having other agents review the code “worked surprisingly well,” occasionally catching real bugs. He still had to understand every change before merging. And even when everything checked out, the harder question remained whether the feature should exist at all, since unshipping is much harder than shipping.

Ali’s definition of an agent is refreshingly plain: “a model in a loop with tools.” His advice follows from it. Give an agent what you’d give a developer, and then put the real controls on what it can reach.

Subscribe for Updates

DevNews Newsletter

The DevNews Email Newsletter is essential for software developers, web developers, programmers, and tech decision-makers. Perfect for professionals driving innovation and building the future of tech.

By signing up for our newsletter you agree to receive content related to ientry.com / webpronews.com and our affiliate partners. For additional information refer to our terms of service.

Notice an error?

Help us improve our content by reporting any issues you find.

Get the WebProNews newsletter delivered to your inbox

Get the free daily newsletter read by decision makers

Subscribe
Advertise with Us

Ready to get started?

Get our media kit

Advertise with Us