Simon Willison

There's No Limit to How Bad Code Can Get

Read the original on Simon Willison →

Simon Willison discusses the pitfalls of attempting to replace a legacy system with a new one when technical debt is overwhelming. He explains that while the old system continues to evolve, developers lack incentive to improve it, and the new team, initially fast, eventually struggles to understand and deliver the required functionality. The result is often two partially functional systems in production, with the new one abandoned and the old one still running, increasing risk and complexity.

Machine-generated by The Flow from the publisher's headline and feed description — not written or checked by a human. The full article lives at Simon Willison.

Simon Willison
Sep 11

Feeling sad about AI

Simon Willison reflects on the emotional impact of AI tools that can produce code quickly, noting that many developers experience an initial sense of disheartenment. He argues that recognizing the shift from coding to higher‑level problem solving allows experienced engineers to leverage new tools and add greater value. Willison emphasizes that software engineering has always faced rapid change, so adapting to AI is part of the profession’s ongoing evolution.

Simon Willison
Sep 14

What blog posts influenced your thinking the most?

Simon Willison reflects on three blog posts that shaped his professional outlook: Joel Spolsky’s *The Law of Leaky Abstractions*, Will Larson’s 2018 article *Migrations: the sole scalable fix to tech debt*, and Charity Majors’ *The Engineer/Manager Pendulum*. Each piece offered a distinct lesson—recognizing hidden complexities in abstractions, embracing migrations as a core engineering skill, and validating the fluid movement between engineering and management roles. These insights collectively encouraged Willison to deepen his technical understanding, prioritize migration work, and feel empowered to shift career tracks without fear.

arXiv AI
Sep 24

Bounded Loops: Pre-Run Spend Bounds, Proved Termination, and Verified Completion for Agent Harnesses

The paper introduces a formal framework for agent harnesses that guarantees termination, prevents drift, and enforces spend limits through bounded loops, gates, and repair relations. It proves that these guarantees hold even with repair budgets and demonstrates the effectiveness of the system by identifying vacuous gates and achieving low false‑accept rates in a 69‑loop catalogue. The authors provide an instrumented implementation and a held‑out mutant corpus to validate gate correctness.

By Varun Pratap Bhardwaj, Garima Singh, Arun Pratap Bhardwaj
Simon Willison
Oct 11

Dwarf Fortress uses version control now

The article recounts that Dwarf Fortress, once famously not using version control, has now adopted it. It cites quotes from Tarn Adams spanning 2013 to 2023, showing a shift from resistance to acceptance of version control as the project evolved. The change is noted in the context of the game's Steam release and subsequent success.