the handcoding dilemma
I used to hate on people who were reviewing 10K LoC PR’s written by AI. Today, I finished up a review of a 17K LoC PR, and I did a bit of soul searching.
A few disclaimers. I still think massive PR’s aren’t good, but not because I think any code created by AI is slop and any slop created at that volume is inexcusable. I just think it’s a bad way to do PR’s. Ideally they’re much smaller. This one was huge because 48% of it was the initial commit of some SpecKit policies, skills and scripts. If it were just code, it would be around 5-6K with tests and documentation.
I also can’t pretend like I’ve got a solution here. You’re going to probably have visceral reactions to some of the things I write in this blog post and that’s fine, I am honestly still trying to figure out how I feel about a very different era of coding.
Think of this post like a ramble from someone who is honestly still trying to figure things out live.
I hardly ever “hand-write” code anymore
This was a really hard line for me to write. Part of it comes with the admission that certain muscles have atrophied. I probably could not write good code very quickly anymore, not like I used to. Frankly, I kind of miss it sometimes. There are some small projects that I literally force myself to work on differently.
For example, game dev with Godot is a bit of a pain in the ass to do with agents, and they’re still so bad at game dev aesthetics in 3D that I really don’t bother. So I’ll write some C# or GDScript in Godot.
I’ll make myself use agents differently if I really want to “hand-write” some code. I’ll build some scripts in Go to achieve some sort of cyber security research outcome, I’ll write a piece of malware in Rust for fun, and I’ll use LLM’s the way we used to, as a reference point and a way to quickly debug or fix a weird problem that I’m stuck on. This is just faster than the alternative, which is reading the docs or Googling it, but I’m still writing 90% of the code myself in these instances.
Working on startups though, to me there is a tradeoff that makes sense. Execution speed and execution scale matters way more, and models have gotten good enough at writing good code that it would be kind of stupid, to me, to sacrifice the execution speed and execution scale just so I can exercise my coding muscles more.
I still review all the code. I strictly enforce branching policy that makes it to where every line of code goes into a PR that I review thoroughly, unless it’s a UI tweak or something I didn’t like about a button or something. I still run manual and automated audits on security.
But… I don’t hand-write code anymore, not for Tursas or Trace Research. It feels weird, dirty and wrong to say that, and I know I’ll get shit for it, but honestly… I care way more about the outcome, creating a secure way for agents to execute in an observable manner, creating agentic systems to speed up and enrich security research, etc. to slow down development just to be able to say I wrote every line of code by hand.
I get it. You’re mad about something up there.
A lot of folks absolutely lose it when folks talk about their dependency on coding agents, and honestly part of me gets it. Yes, there’s an art that’s dying there. There is a practice that is dying there. I get that to some this is insulting to their profession.
Do I think modeling your online persona around “guy who is pissed at LLM coders” makes sense? No, I think you’re a cry baby dweeb. BUT I get some irritation.
There are others that are probably mad, or at least scoffing at me, for even reviewing my code. “Just trust the output and make the agent write your tests and let the agent audit it and create a CI/CD pipeline that’s robust and…” Yeah, I get it. You’re a tokenmaxxer.
Look, maybe I’ll eventually just completely let go and let the agent review the code, audit it, etc. Maybe I’ll go full Ralph Loop. I tend to doubt it, because I still think architecting solutions is a valuable human-in-the-loop approach, but maybe.
At this point though, I’m just kind of ready for the discourse around AI dev to die.
The discourse is annoyingly cyclic
Everything AI written is slop or perfect. Every AI developer is a genius or a braindead vibecoder. Coding is dying as a profession or a job only for the gods. It’s just gotten annoying, and the same topics come up over and over.
I didn’t really want to write this post, in part because I’m still trying to grapple with my own discomfort at not handwriting code anymore. The other part is just that I wish the discourse around AI and AI development would die so we can focus on what’s being built instead of the culture war around how it’s being built.