Your job is to deliver code you have proven to work
In all of the debates about the value of AI-assistance in software development there’s one depressing anecdote that I keep on seeing: the junior engineer, empowered by some class of LLM tool, who deposits giant, untested PRs on their coworkers—or open source maintainers—and expects the “code review” process to handle the rest.
This is rude, a waste of other people’s time, and is honestly a dereliction of duty as a software developer.
Your job is to deliver code you have proven to work.
As software engineers we don’t just crank out code—in fact these days you could argue that’s what the LLMs are for. We need to deliver code that works—and we need to include proof that it works as well. Not doing that directly shifts the burden of the actual work to whoever is expected to review our code.
There’s not much more to add to this observation by Simon Willison. Software engineers have a responsibility to deliver tested, verified, quality-assured code. If we use code generation to YOLO it, then what we’re doing is not software engineering.
There is a time and place for such code. I use it extensively myself because what matters is the job that it does. It doesn’t have to necessarily be particular secure or performance or even bug-free because I’m using it internally within a sandbox environment to achieve a productivity gain.
But it’s entirely another thing to create something that’s public-facing, that people rely on, that manages people’s details and YOLO that.