Two Ways Vibe Coding Led Me Astray This Week

OK so obviously I am addicted to vibe coding like any other programmer who has always hated the actual act of programming, I have YouTube videos on my preparation process and my development process.

tl;dr: I use the smartest LLM I have access to to create requirements docs then feed it to Claude Code in plan mode, review the plan, and let it go.

I had two “incidents” this week where I was like “wait what the fuck are you doing” and it wasted some of my time:

The Delicate Pipeline

Long story short I have a multi-step AI pipeline in production which is a bunch of steps where each step does its own different thing. The gist of it is:

  1. Ingestion service – AWS Serverless, S3, etc
  2. Filter service – Serverless GPU on Modal
  3. Extraction service – AWS Serverless, makes external calls to SaaS
  4. Analysis service – AWS Serverless, makes external calls to SaaS

Goal: Modify the extraction service to make it more reliable by using an ensemble model (asking two smart AIs what their thoughts are on and blending them).

I asked Claude to analyze the codebase and documentation and create a plan for incorporating the new model to the extraction service. The plan it came up with didn’t involve a GPU (so no reason to put it on Modal like the filter service) but it did include importing heavy Python dependencies. I approved the plan, it did its thing, we started testing, it worked great locally.

When deploying we ran into an issue: AWS Serverless instances have a maximum package size of 250MB unzipped. But! If you’re using Docker to manage your instance it’s 2GB.

So obviously Claude suggested we move to the Docker version. Mistake. The next 90 min were spent debugging my Docker setup and issues.

After I got mad and stopped working on the problem for a bit I used my brain and realized this approach was a waste of time. I asked Claude to migrate to doing the dependency heavy task on a Modal serverless instance without a GPU attached, had it update the extraction service to use that, and bam.

The Tiny Refactor

I have a Postgres database that stores structured version of diverse raw data.

In addition to the universal fields every incoming data piece has (like a timestamp or type) there is various metadata that can accompany the entry.

To handle this I had a column metadata_json in the database and I chucked stuff into there.

Goal: Extract the JSON fields out of the single column to make it easier to analyze the data.

I ran repomix on the monorepo for the backend and frontend of the project put it into GPT-5 Pro and asked it how to implement what I needed to do. It was a pretty decent plan and to be honest with you its response started with “Yep, exactly! You should do your plan.” so I felt pretty cool.

I opened Claude Code and gave it the plan and said make your own implementation plan of the steps. It decided to start with the database and API changes then move onto the frontend.

A technical detail I should mention: During the convo with GPT-5 Pro it pointed out that my metadata_json column currently is actually a TEXT field, not a JSON field, which is why my current analysis code was slow in the first place.

Claude killed it at the database migrations and API enhancements then it tested its work and updated the project documentation to reflect what it did.

After it was done on the backend I told it to continue working on the frontend, I did not tell it to come up with a detailed plan and didn’t review what it was going to do. Mistake.

A few minutes later I checked its progress and it said the changes were done. I loaded up the frontend and… it had completely fixated on the TEXT vs JSON thing.

The major frontend change it made literally gave the user the option of picking between text output of JSON or parsed output of JSON. Why the fuck would the user care about that?

Luckily because the backend was handled properly when I told it to stop focusing on the technical detail and focus on the actual plan it knocked it out of the park super quickly, but man, I should’ve paid more attention.


All in all I am a big AI coding truther. I think it’s amazing and allows me to be more productive than I’ve ever been (minus a few times during extended manic episodes.)

I will say, I showed Lisa how I like using Claude Code this week and I kind of think I broke her:

A series of tweets from a user expressing their thoughts on coding, productivity, and the frustration with process documents and requirements.
A series of tweets from a user expressing frustration with an AI coding tool and its challenges in understanding vague project visions.

But anyway my point is this technology is fucking amazing but when you use it you gotta pay attention at least at the critical points. I guess the hard part is figuring out where the critical points are.

And if you don’t like doing technical architecture and management… there is a cracked dev team sitting inside your computer and you’re gonna miss the wave if you don’t embrace it. What I’m saying is…

A man in a suit stands at a podium, gesturing and speaking, with text overlay that reads 'GET READY TO LEARN ENGINEERING MANAGEMENT BUDDY'.

Discover more from Kasra Rahjerdi

Subscribe now to keep reading and get access to the full archive.

Continue reading