Code smells today look like an agent consistently messing up in a codebase
Diego Castillo
@diegocasmo.bsky.social
Building products. Playing jazz. Software engineer @buffer.com. https://diegocasmo.github.io/
Attention becomes the scarce resource right when output becomes abundant.
Fundamentally, it all comes down to how well you know the problem.
Moving faster doesn't automatically mean making better decisions. Easy to mix those up right now.
You can't tell if the output is good unless you understand it well enough to judge it. Most people don't seem to care at all right now. I just can't wrap my head around that.
Even when you push back on an AI model, your pushback is only as good as your understanding. In your domain of expertise, you catch the subtle stuff. Outside of it, who knows.
Leverage comes from the parts you understand. Risk comes from the parts you don't.
AI is an amplifier of ideas, good or bad, your choice.
Coding with AI is wildly inconsistent. Some sessions feel like magic, others the model confidently invents APIs for hours.
More people are being upfront about steering AI agents, rejecting suggestions, and carefully reviewing changes. It's quite refreshing after so many vanity metrics for a while now.
Tools got smarter, and the expectations for what to build with them got higher.
Chat in products is great but it doesn't make good UIs less important. You want both.
Cost of code dropped but the bar for products is higher than ever.
There's a version of shipping fast that comes from understanding the problem and a version that's just because it's easy now.
The ceiling keeps moving but so does your understanding of where it is.
Software has been composable for decades. You don't build everything from scratch. You plug into what's already there. Libraries, APIs, contracts.
It's easy to jump straight into implementing something without really understanding your options. Worse, you might not even be working on the right thing in the first place.
It has become increasingly clear to me that one of the most interesting areas to keep an eye on right now is how you maintain a solid understanding of a codebase as more work gets delegated to coding agents. You can only make good trade-offs if you have such understanding.
No matter how strong these models get, you eventually start to get a grasp of their limits. Just sort of an interesting thing you notice as you use them.
The online narrative is just throw everything at agents and figure it out. I use them all day, I barely write code myself at this point. But the people who seem to get the best results are strong engineers. I think foundational knowledge still matters a lot, maybe even more now.
Traditional UIs are disappearing. Not all at once, but for more workflows than I expected.
Em-dashes were not that common on the internet. LLMs use them constantly. Something in training made all major models pick up this habit. Makes you wonder what else got amplified that way.
Pay-per-view, but for thinking. That's what tokens are.
Monorepos are great for coding agents. All the code is just there, no jumping around.
Collaborating on Markdown files in tools like @github.com is honestly painful. You can't comment on a specific line, can't suggest inline edits. They need to become first-class citizens. @notion.com handles this way better, but it's not where my code lives.
Claude Code had a very successful start to the year. The aftermath seems to be that throwing shade at it is now fashionable.
New favorite workflow: end the day with a solid implementation plan split into a few tasks, hand them to coding agents, wake up to multiple PRs ready for review. 🫡