~non-deterministic/engineering

About

Software used to be deterministic. You wrote code, the compiler transformed it, you knew what you were getting out. When you ran that binary, given the same inputs, you got the same outputs. That contract is rapidly dissolving.

This blog is about how our software engineering practices are evolving when an LLM-driven agent is a participant in the loop — writing code, running tools, reading logs, opening PRs — and when the system you are shipping no longer behaves in the predictable way we were used to.

Expect: