Jeremy Scheff’s “My obituary for programming” is not a prediction that software is over. It is a precise description of what coding agents take from programmers who enjoyed the puzzle of writing code. That distinction matters: building a working system and personally solving the logic problem are related, but they are not the same job. Source: https://simonwillison.net/2026/Oct/19/my-obituary-for-programming/

Key facts

Fact Detail
Question answered The Part of Programming That Coding Agents Cannot Replace
Short answer Jeremy Scheff’s ‘obituary for programming’ captures a real loss for programmers who enjoyed the puzzle of writing code, not just the shipped result.
Reading time ~4 min
Last updated 2026-10-20

Simon Willison linked to the essay on 19 October 2026 and summarized the split well. If you thrive on building systems and do not care deeply about the problems solved along the way, LLMs are a gift. If directly solving those problems was a large part of the enjoyment, the loss is real.

The loss is not “typing code”

Scheff’s essay is personal, and that is why it lands. He describes programming as a puzzle with real-world value: limited only by imagination, paid like a career, and satisfying like a game. The agent can refactor the code, fix the bug from an error log and make a function faster. The result may be better. The experience is different.

That difference is easy to miss in productivity math. A team can measure tickets closed, pages shipped or tests passed. It is much harder to measure the small pleasure of finding the shape of a problem, choosing a data structure, and watching a clean solution click into place. A tool can remove the drudgery and the puzzle at the same time, because they are made of the same activity.

What changes for working programmers

The job does not become empty. It becomes more like directing and reviewing.

  • Problem selection matters more. An agent will happily optimize the wrong thing. Someone still has to decide which problem is worth solving and what “done” means.
  • Specification is now a core skill. A precise boundary, a test case and a clear constraint are more useful than a vague request for “better code.”
  • Verification becomes the bottleneck. Fast generation is not fast correctness. Reading diffs, running tests and checking edge cases take time, and that time is the job.
  • Taste still compounds. Naming, structure, failure handling and the decision to delete code are judgment calls. An agent can suggest them; it cannot own the consequences.

This is also where the “vibecoding is not programming” argument becomes practical rather than nostalgic. If nobody understands the system, nobody can maintain it when the agent is unavailable, the dependency changes or the failure is novel.

A useful way to use agents without losing the craft

Keep one part of the work deliberately manual. Write the first version of a tricky function yourself, then ask the agent to critique it. Or write the tests before asking for the implementation. The goal is not to refuse automation; it is to preserve the feedback loop that makes you able to judge the output.

On a desktop agent, that can look like a narrow workflow: the agent reads a project, proposes a patch, runs the test suite, and stops before committing. The person reviews the diff and decides. The same pattern works for research, file cleanup and browser tasks. More autonomy is earned by a track record, not granted by a demo.

For Windows users who want a local-first agent that works with files and desktop apps, the download entry is https://agent.aimoogh.com/download.

The obituary is for a phase, not a person

Scheff’s title is deliberately provocative, but the essay is better read as a boundary marker. A phase of programming - the phase where a competent person could earn a living mostly by solving puzzles in code - is being compressed. The next phase still needs people who can define problems, design constraints, read systems and take responsibility for what ships.

That is a smaller claim than “programming is dead,” and a more useful one. The programmers who survive the transition will not be the ones who refuse to use agents. They will be the ones who use them without forgetting how to think.

FAQ

What is the obituary for programming about? Jeremy Scheff argues that coding agents take away a specific pleasure: the daily work of solving tricky logic puzzles in code. He is not claiming software has no future, but that the craft of personally working through the puzzle is changing.

Does Simon Willison agree with it? Willison calls it a poignant capture of the loss. His framing is narrower: programmers who mainly enjoy building working systems may benefit from LLMs, while those who loved directly solving the problems lose something real.

Does this mean programmers should stop learning to code? No. The ability to read code, specify constraints and verify behavior becomes more important when an agent can produce code quickly. The work moves up a level, but it does not disappear.

What should a Windows agent user take from it? Use agents for the parts that are repetitive or easy to verify, and keep the judgment-heavy parts visible. If you stop understanding the system, you have not automated the job; you have outsourced your ability to check it.

Related reading: