Adventures in Vibe Coding and Agentic Engineering

Over the last few months, I've tried vibe coding, a practice in which the software "developer" doesn't write any code but produces an application exclusively by chatting with an AI agent. It's all the rage these days, given the improvements made in the Large Language Model (LLM) space over the last couple of years.

I had largely dismissed vibe coding, as its output felt like the What You See Is What You Get (WYSIWYG) website creation programs of the past and present (e.g. Dreamweaver and Squarespace). The code those produce was, to put it kindly, terrible. But those programs have their uses! I started my web development journey using Dreamweaver, since it was "good enough" to get something displaying how you want it to (mostly) look and behave on a real webpage. I still have the code for my very first complete website, an English class project about Alexandre Dumas. The code quality makes me want to vomit, but I did get an A and cemented my nerd status among my peers even further by doing my presentation with a website!

But as I continued using Dreamweaver, the code it produced just got too convoluted, and I ended up with weird issues that were tiresome to fix without going in and fixing the code myself. So as I honed my web development skills by fixing those issues, I eventually moved over to hand-crafted artisanal code, where I wrote each line by hand in the cleanest way I knew how in order to achieve my goals. Granted, that still didn't mean the code I produced myself was good, just that it was something that I could wrap my head around and continue to build upon because I was the one who initially wrote it!

Fast-forward through my 12 years as a professional software engineer, and that paradigm of human-written code largely stayed the same. After college, I started working on projects with entire teams of people writing code together. Again, was the code any good? No. Enterprise-level projects have some of the worst code I've seen in my life.

I should know, I wrote some of it!

But every line of code was written by a person, or by a regular ol' software program that some person wrote to make writing code easier.

But the world of primarily human-written code is now gone. Barring civilizational collapse, code is now going to be generated by humans directing an AI agent. Anthropic, the makers of Claude, created a new tool called Claude Cowork in only 10 days and by using their tool, Claude, exclusively. Companies and engineers alike claim that they haven't written a line of code in months. Tools like OpenClaw are promising a new world of productivity by marshaling an army of agents to respond to your every whim. Some CEOs are even predicting that models will replace the current tasks of software engineers in twelve months.

But let's pause a second. We have to take a lot of these claims with a grain of salt. Many of them come from the people who have a vested interest in AI taking over coding entirely so that they can make a bazillion dollars selling AI agent services to enterprises and software developers. Even if their product ends up being terrible, it's a very lucrative business model (see: Microsoft, Oracle, Atlassian, and any other business-focused software behemoth).

However, regardless of all the marketing hype and overestimation of AI agent capabilities, there has been a genuine shift in the industry to the point where we can't completely ignore AI agents anymore.

In order to stay abreast of these developments, I decided to give vibe coding a try. Using Claude Code, I created Tutti Belli, an open-source ensemble management software service. I also ended up extracting the set of basic UI components I was creating in Tutti Belli into its own code repository so that I can re-use them in other projects I decide to build with AI in the future, which I've started doing in my Tabletop Role Playing Game software named dicebag.

During the first few weeks of playing with Claude Code, I didn't touch a single line of code in order to fully see what vibe coding can do. And I was blown away with how well it did.

That's not to say I don't have my complaints, but a lot of my issues came from me having a poor understanding of how to properly leverage the tools. I started looking at some tutorials on how to use Claude Code and then taught my agent to clean up some of the code. For example, I noticed a lot of the UI code was copied and pasted elsewhere in the code base so I had it identify and build a re-usable set of UI components. I added instructions to always use those components when they're available, and that formed the base for the extracted code repository I mentioned above. I did the same thing with a few other poor patterns that I saw after browsing the code more closely, but the original output was on par with something I would think to see from a junior engineer.

It was pretty impressive work, given that half the time I was reading a book, watching videos online, or playing chess while waiting for it to finish.

I've begun delving even deeper into how to use these AI agents more effectively, and it's opening up entirely new possibilities. As AI agents become more capable, especially through integrations with other systems, a lot of manual grunt labor can largely be handed off to an agentic process. That will destroy a good number of jobs. But I think it will also create an entirely new set of jobs building AI orchestration to accomplish business or personal objectives. The possibilities are just as vast as the explosion of apps and services that came with the mass adoption of the Internet.

I considered myself to be an AI skeptic over the last few years. It felt as scammy as blockchain (which I got way too invested in, as anyone who had a conversation with me 10 years ago could attest), but over the last few months I've seen just how monumental of a shift that AI agents will be. I'm now preparing to ride that wave.

I do still have all my previous hesitations about AI, especially regarding the copyright violations many of these models are built upon and the increase in energy usage that could stall the world's transition to clean energy. It seems like I'm going against my moral framework using these tools, but they are so incredibly effective that I feel like I will ultimately lose my job and have to leave the software engineering profession if I don't at least evaluate where and how they can be used.

To help assuage my guilt, I am at least doing the following:

  • Using models from the big companies that at least seem to be trying to do things right. At the moment, I've been using Anthropic's tooling, as they are outwardly more communicative on doing the right thing, especially after their spat with the Department of Defense. I'm sure they're not much better than the other big names in AI, since they don't actually have any legal reason to be better, but I'm hopeful that they are trying to live up to their marketing.
  • Experimenting with running models locally on my own computer using tools like LM Studio, since I know that pretty much all my energy here in Seattle is from hydroelectric power.
  • Using models that have taken strides to be ethical in the training data they used, whether that is from only using works from the public domain or from paying the people whose data they consume. This is the hardest part, as most models aren't always very forthcoming about that information. Right now, I'm mostly experimenting with Olmo, from the Allen Institute for AI. Both because I work at the Allen Institute, and because those models are very open about where they get their data from and only use publicly available data. But to be honest, I'm not having much luck with that.

It's been an interesting couple of months playing with these tools, and that experience has led me to believe that AI agents are here to stay. In fact, I'm starting to leverage it more heavily at work (although I'm not vibe coding) and it's allowing me to deliver working solutions even more quickly. During the last month, I've effectively doubled my output. And I stand by every line I've coded, because I'm explicitly not vibe coding, I'm using the agent to quickly build a solution that I ultimately would've typed out myself. I'm actively researching ways to make effective use of these models while preserving worker dignity and without coding piles of slop that we'll pay for later when the code quality drops.

I'm genuinely excited for the future of software engineering. I've felt incredibly empowered to deliver work, especially because the extra time I have has allowed me to reach deep into our backlog of work and pull out user experience improvements that have been sitting there for far too long. It feels great to knock out that work and know that I'm making a user's life just a little bit better by shipping small but noticeable improvements.

The one piece of the AI discussion that I wish was a larger point in the discourse is that the technology itself isn't inherently evil. It's definitely being used in evil ways right now, especially when it comes to destroying jobs for artists with AI-generated text, images, videos, and music. But it doesn't have to be that way. We can live in a world where AI is used to handle all the boring software and business stuff, freeing us up to have more time for pursuing creative projects.

That world will not come into existence on its own. The forces of capitalism will not get us there by themselves. Government regulations are sorely needed to limit the harms AI can do and to allow society as a whole to reap its benefits. That would include things like ensuring models are trained on data that is properly paid for, a stronger social safety net in the US to help those who are economically displaced from AI land on their feet, a deployment of clean energy to support new data center power usage, and stronger privacy protections so that we don't become an even worse surveillance state than we already are.

We'll see how it all goes, but regardless of what happens with AI agents, nobody can say it won't be interesting!


You'll only receive email when they publish something new.

More from Lane Sawyer🌹
All posts