The Pilot and the Machine
On JSON plans, LLMs, and the software engineer
My workflows are changing absurdly fast. A year ago I was writing most of the code. I was passing markdown docs to ChatGPT and getting well-written code back in return. I’d lean into Copilot to sand down the edges of a new integration. It was a lovely workflow and I felt great about it. It already feels archaic only a year later.
I’m starting 2026 a Claude Code power user. Ninety percent of what I create, I don’t write. An agent writes it. I dictate with Whisper almost as often as I type. I’m slowly feeling more frustration when human input is required to solve my problems.
“An agent should be able to manage this. Why am I dealing with this?”
I’ve changed my project plan documents into JSON. It’s incredibly simple: an overview of the plan with a prioritized list of tasks. Each task has a name, a description, and a list of requirements that define “done.”
I used markdown before, but when I switched to JSON, it subtly changed the document from an open canvas into an executable artifact. I used to feel like I was collaborating with LLMs, passing it prompts and getting code back. Now I feel like I’m in a cockpit. I can steer the model more easily. It’s less that I have a helpful buddy and more that I’m strapped into a fucking racecar, able to crank the gas and confidently steer towards my goals.
It looks small, but the structure works where raw text can’t. Markdown makes it easier to hide vague ideas behind prose. JSON forces discrete tasks, explicit ordering, no ambiguity about what’s next. The format is a forcing function for clarity. You can’t bullshit a JSON file.
LLMs let you be vague, open, and pull from a massive latent space of ideas. This is a strength, but forcing yourself to be explicit gives you dramatically more control.
This isn’t new. Molding problems into forms machines can execute against is decades old. Punch cards to assembly to C to Python to natural language wrapped in JSON schemas. The ladder keeps rising, but we’re climbing the same wall.
Everyone’s worried LLMs will eat software engineering. But this misunderstands what the profession is. Software engineering isn’t typing code. It’s turning problems into forms computers can solve. The syntax has changed. The underlying work has not. We are still translating human intention into machine execution. The role is shifting upstream to the part that still requires human judgment.
We’ve always been pilots. We’ve always been in the cockpit. The dashboard is easier to read now, the engine is more powerful, and the sky we’re flying through is just bigger than we thought.
The software engineer is dead.
Long live the software engineer.


