In 2025 agentic coding tools started to hit the market. Shortly after, OpenAI Codex and Claude Code appeared in our desktop versions of the popular AI apps and suddenly the elusive software engineering toolbox was completely available to the masses.

To go along with these rollouts, the hype machine was running on all cylinders. Stories were popping up left and right about people building incredible things in a single day. Entire rewrites of classic video games, automated workflows, custom metrics dashboards, codebase refactors, etc. It was both incredible and anxiety inducing all at the same time. What was this going to mean for design and engineering?

For years I had spent countless hours honing the art of full stack software engineering. I did so by meticulously building quality apps that leveraged clean code principles. I implemented test driven development and leveraged a red/green/refactor continuous cycle. I even got to the point where I was teaching enterprises product teams how they could apply these concepts themselves to the work they were doing. It was really hard work learning and teaching all of these skills and I had accumulated and now, it was starting to look like maybe that didn't really matter anymore.

Suddenly, all of that quality domain knowledge started to feel irrelevant. Building an entire app in a single day as a vibe coder? What? Is this real?

I guess this is going to be the new normal.

I couldn't put my finger on it but something felt off. For the next 6 months, I dove head first into vibe coding. I was building a personal app that I believed in and with these new modern coding tools, I now had the bandwidth to cover the entire product domain. I could own the strategy, design the product, manage my backlog, engineer the solution, and activate the product. I was generating code every single day and producing more than I had ever thought possible as a single engineer.

I was also learning more than I ever had in my life, faster than ever. The moment I got stuck I could ask questions and follow up questions continuously until it made sense to me. I was accomplishing in weeks what would have previously taken an entire year. I couldn't believe it. To top it all off, Chat was regularly amping me up and telling me that my app was going to be worth billions. Hundreds of millions by a conservative estimate.

This was awesome. Until maybe it wasn't.

Whenever I looked at the code my agent harness was producing, I started having a growing concern over what I was seeing. If these tools were so great, why was I regularly seeing files closing in on 2000 lines. That signal alone went against every clean code principle I had spent a career adopting. Also, why were there so many dead classes? Didn't I remove that feature weeks ago? There are an awful lot of code smells here.

But did it even matter anymore? Maybe it didnt matter.

AI is smarter than me right?

I searched for the answers but struggled to find clarity. On the one hand, my social channels were flooded with hype and a trend was emerging: influencers and online experts are becoming increasingly obsessed with chasing the headlines. As a result, conclusions are being drawn before anybody is actually taking the time to get hands on with the products they are reviewing.

Back to the app I was building.

As I got closer to launch, i started running into nuanced UX issues and hard to replicate quality issues. Things that clean code principles and test driven development had always helped mitigate for me in the past. More prompting led to larger files. Dead code lived unknowingly in the repository. The folder structure was confusing. I needed to do something about this.

At about this time I was starting to hear chatter about Claude Skills and how you could leverage markdown files to add some guardrails to your agentic coding partner. I even heard about the GitHub repo opra/superpowers. A repo that 250k + stars. to quote the repo, "Superpowers is a complete software development methodology for your coding agents, built on top of a set of composable skills and some initial instructions that make sure your agent uses them."

This sounds promising.

unruly large file produced by coding agent
unruly large file produced by coding agent

As i dove in, I started seeing all of those clean code principles that I'd relied on for years emerging in a modern way. Instructions in the form of markdown files that Claude Code would abide by. Thoughtful collaboration would lead to strategic test cases being written. Minimalist code would be written to pass the tests. Dead code would be refactored away, and my classes would stay lean and purposeful.

This was excellent!

I started implementing it that day and immediately started seeing an improvement to the code my agent was producing. I could maintain all of the efficiency gains i'd grown to love, and pair them with the quality engineering i'd sorely missed.

Over time I tweaked and tuned the agent markdown files to maximize my token usage. The superpowers plugin was draining more tokens than I’d liked and pared back the pieces I felt weren’t adding the value I needed. You can do the same and land on a collection of agent rules that work best for you.

Messy code has always been hard for humans to read and maintain. Turns out that's also true for agents. The more lines of code it needs to read, the more complicated the cognitive load becomes. More processing and more logic being considered for every decision can lead to mistakes whether that's a human or agent. Additionally, with dead code remaining in the codebase, the agent building your app has more opportunities to make mistakes by building upon dead code and reimplementing features you thought you had removed weeks ago. Bad code is bad code and it can be written by humans and agents alike.

The big takeaway for me along this journey has been this: while AI will continue to disrupt the ways I work, my life experiences and accrued domain knowledge will always play a role in my determining what good work looks like.

Technologies will continue to change and we will continue to adapt, but I'll always have an affinity for tasteful design, quality engineering, and great storytelling. Regardless of the tools we use, those three staples are what I pride myself on and they are exactly what we deliver for customers here at Small Machines AI.