Simon Willison reflects on the evolving role of software developers in the age of AI, noting that while AI can produce high‑quality code, it also enables poor execution that leads to project failures. He argues that the industry is beginning to recognize the continued need for human collaboration and expertise to truly innovate. The piece highlights the tension between automation and the essential human element in software creation.
The article discusses how computer programming fundamentally involves problem‑solving with computers and managing complexity. It argues that these skills will remain valuable and sustain a viable career even as AI tools become more prevalent.
The article discusses the essential skill of effectively instructing coding agents and verifying their changes. It highlights that while line‑by‑line code review is one method, it is not the most efficient way to validate software changes. The focus is on confidently guiding agents and confirming correct implementation without exhaustive inspection.
Laurie Voss argues that while the cost of writing code has fallen dramatically, the costs of reviewing, fixing, and operating software are rising and will continue to do so. She emphasizes that the true expense lies in understanding user needs, precisely defining requirements, and ensuring a pleasant user experience—costs that are unique to each software product and do not scale with reuse. As software demand grows without an upper limit, these user‑centric costs will dominate the overall development effort.
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.
The article discusses how production code generated by Claude, Anthropic’s AI, should meet higher standards than human-written code. Anthropic enforces this through numerous guardrails such as lint rules, extensive testing, Claude-driven end‑to‑end tests, daily fuzzers, automated code and security reviews, and automated refactoring. These measures aim to prevent the code from becoming difficult to maintain.
Simon Willison reflects on the long history of flawed software development, noting that the proliferation of bad code over the past three decades is now being penalized by the universe. He cites Armin Ronacher’s perspective that the rise of AI, while entertaining, has amplified the consequences of these past mistakes. The piece underscores the growing importance of addressing security and reliability in the age of generative AI.
But then users start to report a weird bug. It's the 4th time your team has been trying to fix it.
The article discusses a shift in code review practices, moving from a final gate to continuous review that functions like spellcheck during coding. It highlights how the Claude Code team uses the Claude AI to catch routine mistakes before human reviewers intervene, allowing developers to focus on higher-level issues. The piece references insights from Addy Osmani, Morgan Westlee Lunt, and Qing Wang on this evolving approach.
The article announces that Claude Code will now support AGENTS.md files starting with version 2.1.277. If a CLAUDE.md file is absent in a folder, Claude will automatically look for and use AGENTS.md, leveraging Claude Code mods to customize the harness. The built‑in mod is available for use, and users can also create their own custom project instructions.
My hypothesis is that there is a new opportunity for Extensible Software on the web . LLMs radically lower the cost of authoring extensions, and modern sandbox primitives lower the deployment cost and provide good security boundaries.
The article recounts a challenging debug session that was significantly aided by an AI assistant. Despite the AI initially claiming the problem was unsolvable and suggesting a report be written instead, it persisted, adding debug code and analyzing it as the author pushed forward. Ultimately, the author credits the AI with writing the commit message for the fix.