Less, On Purpose
Discover why embracing minimalism and restraint in the age of AI and endless tools might just be the ultimate productivity hack.
Every week there is a new agent framework. A new protocol. A new way to wire a model to your terminal, your inbox, your production database.
Every week someone tells you that if you are not using it, you are already behind.
I am not anti-AI. I use it daily. It is genuinely useful. But somewhere in the noise, I stopped asking the only question that matters: what can I remove?
Minimalism is not white walls and one chair. It is a stance. You decide what deserves to exist, and you say no to the rest. Right now, that stance has never been more needed, or more out of fashion.
Code is free now. Understanding is not.
For most of my career, writing code was the bottleneck. Constraints came for free: you could only type so fast, so you thought before you built.
That constraint is gone. An agent will happily produce a thousand lines before you finish your coffee. Another agent will review them. A third will write the tests.
The cost did not disappear. It moved.
It moved to reading. To owning. To the 2 a.m. incident where nobody on the team actually knows why the retry logic looks the way it does, because nobody wrote it.
When production is cheap, the scarce resource is comprehension. Every line you accept is a line someone must eventually understand. Abundance does not remove the need for restraint. It makes restraint the whole job.
Boring is a feature
My stack has not changed much in years. Go. The standard library. Postgres. A single static binary behind a load balancer. Hand-wired dependencies. No web framework.
People used to call that stubborn. Now it turns out to be the best possible setup for working with agents.
A small, boring stack is a small surface. The model has seen net/http a million times. It has not seen your framework's plugin system from last spring. Fewer abstractions means fewer places for an agent to hallucinate, and fewer places for me to miss it when it does.
The same logic applies to humans. A codebase you can hold in your head is a codebase you can review. Clever code was always a liability. Clever generated code is a liability nobody chose.
If an agent needs a 400-line context file to work in your repo, the problem is not the agent.
Get off the treadmill
The trend cycle used to be measured in years. JavaScript frameworks taught us what happens when it shrinks to months. AI tooling has shrunk it to weeks.
I see teams with five coding assistants, three orchestration layers, two vector databases and a dashboard to monitor the dashboards. Nobody can explain what each piece is for. Everyone is afraid to remove one.
That is not velocity. That is churn with good marketing.
A few rules I try to follow:
- One tool per job. If two tools overlap, one goes.
- Wait a quarter. If it still matters in three months, look again.
- Every dependency is a liability. Every integration is a door you have to guard.
- If you cannot explain why it is there, delete it and see who complains.
You do not need to try everything. You need to understand what you use.
The agent never sleeps. You should.
Here is the part nobody puts on the slide.
Agents work in parallel. You do not. Five agents running means five streams of diffs, questions and half-finished branches waiting for you. The bottleneck is now your attention, and it is being spent in ten-second slices.
My days increasingly look like this: prompt, wait, skim, approve, switch. Busy all day. Barely a single hour of deep thought.
That is the opposite of minimalism. It is a cluttered mind with a productivity graph attached.
So I protect a few things on purpose:
- Fewer parallel tasks. One or two agents, not ten.
- Long blocks where I design before anything generates.
- Some code I still write myself, start to finish, because owning a thing is how you understand it.
Craft is not nostalgia. It is how you keep the judgment that makes you worth listening to when the agent is wrong.
Less, on purpose
The industry is optimizing for more. More output, more agents, more tools, more throughput.
I am optimizing for less. Less code I do not understand. Less tooling I cannot explain. Less noise between me and the problem.
AI makes it trivially easy to add. That is exactly why the discipline to subtract is now the rare skill.
Build less. Own more. Delete often.
The best line of code is still the one you never had to review.