Post

I will not stop reading code anytime soon. LLMs can generate code that's correct and even performant, but I frequently find it too complex. And I hate accidental complexity - it compounds very quickly and leads to cruft, bugs, and, ultimately, slow and unreliable software.

5 reposts22 likes

Here's an example from last week. I worked on a fairly complex feature. First, iterating on the spec. Lots of research, going back and forth with the agent, finally coming up with a decent high-level design doc.

Then, implementation. Rust project, Opus 5.5, Claude Code, subagents, a bunch of useful skills, a well-crafted AGENTS file and, most importantly, a fully self-contained end-to-end testing suite with hundreds of tests that the agent can run.

The implementation was done, and I spent several days reviewing it. Just to be clear, my goal wasn't to understand every single line, but to build mental models about the abstractions that the LLM generated.

And I kept finding new abstractions that seemed too complex. After 20 years of building software, I've developed a pretty sensitive complexity detector. You look at a new struct with 7 fields, and it raises all kinds of alarms.