Code is the future of hardware engineering.
It was before AI. It is now.
Code is the purest way to express complexity.
An engineering system has parts, relationships, constraints and physical behaviours. Code lets you describe them, combine them, run calculations on them and track how they change.
That is why I want engineering to live in code.
At Jimmy, a nuclear engineering startup where I was Head of Software, we had several teams modelling the same physical system. Neutronics, thermal, mechanical. Different models, different assumptions, shared dimensions that needed to stay consistent.
We built PyJimmy to describe our engineering systems in Python. We reviewed changes in GitHub and automated checks around the design.
We still had work to do on consistency between models and CAD. But the direction was clear: make the engineering explicit, version it, and make it executable.
AI makes that direction even more compelling.
A coding agent can read the project, understand its structure, change a model, run a calculation and inspect the result. It can work on the same engineering description as the human.
The reasoning needs to stay there too. Why did we choose that component? Which assumptions does the calculation depend on? What did we try before?
The work has to survive the conversation that produced it.
I’m now applying this to a personal project: building a drone with AI agents.
I want to fly it around a room, repair it, and eventually make it autonomous. Even at that scale, mechanics, power, electronics and control are tightly connected. Change a component and several other things need to be reconsidered.
For example, I want a Raspberry Pi 5 because I want onboard computation later. That choice affects mass, power, cooling and mounting. The reason for choosing it should stay attached to the design, so the next agent understands what we are trying to achieve.
I discuss the project in Codex or Claude Code. The agents investigate options, write calculations and generate geometry. I review the work and decide what we keep.
The framework around it is called Forge. The current design lives in Python. Studies keep the investigations and their evidence. A dashboard lets me inspect the geometry, understand the assemblies and follow the physical build.
The physical tests still decide whether the design works. Code makes the assumptions and predictions easier to inspect. I still have to measure, assemble and test the thing.
This is the workflow I want for hardware engineering: describe the system, make its relationships executable, let humans and agents work on it together, and check the results against reality.
I’m building it around a real project because that is where I will find out what is useful.