Senior Engineer Diaries: Automatic Programming - Vibe Coding, But With a Plan

Senior Engineer Diaries: Automatic Programming - Vibe Coding, But With a Plan
Generated using Le Chat

Vibe Coding is still a dumpster fire for production, but Automatic Programming, AI as your pair programmer, is a game-changer for me. At work, I rely on Claude Code for its enterprise readiness and consistency. In private projects, I’m transitioning to Vibe CLI for its raw speed and improving quality. And for everything chat or writing-related, Le Chat remains my go-to. Here’s how I use AI to write 30-60% of my code without setting my projects on fire.

The Vibe Coding Trap

Let’s start with the obvious: Vibe Coding is not a strategy. If your workflow involves mashing the “generate” button until something compiles, you’re not a developer, you’re a slot machine player. Production and infrastructure code demands precision, knowledge and not “close enough” energy.

That said, for prototyping, local scripts, or “I need this to sort of work by EOD” tasks? Yeah, I get the appeal. There’s a time and place for throwing spaghetti at the wall. But that time is not “always,” and that place is not “your main branch.”

I already ranted a bit on this a while ago in Senior Engineer Diaries: My No-BS AI Integration Story, if you want to read on my (now slightly outdated) views.

Automatic Programming: AI as Your Pair Programmer

The real win isn’t letting AI just write everything for you. It’s Automatic Programming: AI as a force multiplier, not a replacement. Think of it like an intelligent junior dev who never asks for a raise. And sometimes does have a point! ;)

How I Use It (Without Regret)

Mostly for boilerplate and with a very, very detailed plan. First refine until the very last nitty-gritty detail what you want to do. Then let an agent act on the plan in very isolated chunks, keeping context slow, so hallucination is less likely to happen.

The Tools I Actually Use (And Why)

Not all AI coding tools are created equal. Here’s what’s in my toolbox in 2026:

At Work: Claude Code (The Enterprise Workhorse)

I use Claude Code heavily at work, and for good reason, it's enterprise-ready through and through. It integrates seamlessly with the workflows, and the Marketplace skills mean our team gets consistent, high-quality suggestions. No weird edge cases, little hallucinated APIs, just solid, reviewable code.

Private Projects: Transitioning to Vibe CLI

For personal projects, I’m slowly moving from Claude Code to Vibe CLI by Mistral. Mostly because it's fast and based in Europe. My first impression was, “I can iterate faster with this than my brain can context-switch”. Early versions were rough, especially pre v2, but recent updates have made it a serious contender. It’s not perfect, but it’s getting there.

I've used it on a few side projects so far web services, CIL tools and some infrastructure scripts, mostly written in Go and Python. The speed improvement is real, but I'm still watching for edge cases before I'd recommend it broadly.

I’m still testing it, but so far, it’s replacing about 30% of my Claude usage for private projects. Mistral is definitely getting on top with their models catching up quickly and vibe now being out and really in a usable state. This also shows in benchmarks:

Source: Mistral

Le Chat: My Technical Writing Swiss Army Knife

For everything chat-related and technical writing, Le Chat is still my number one. Whether I’m drafting RFCs, debugging config files, or brainstorming blog posts (meta, I know), it’s the tool I reach for first. The context awareness and ability to refine ideas in real-time are unmatched.

And when I need a logo for one of my hobby projects, my first instinct is always creating a concept with Le Chat and generate something that I usually refine a bit.

Using AI to Offload the Mundane, Focus on the Meaningful

  • Private Projects: AI writes ~30% of my code. Mostly config files, scripts, and the stuff I’d rather not think about. (Vibe CLI is slowly eating into this percentage.)
  • Work: That jumps to 60%. Why? Because enterprise code is 80% glue and 20% logic, and AI is great at glue.

This isn’t about blindly accepting AI output. It’s about leveraging it for the repetitive parts so I can focus on the hard problems.

The Non-Negotiable: Human Review

Here’s the rule: Even if the AI writes it, I am responsible for it. That means:

  1. Reading every line. Yes, even the “boring” ones.
  2. Verify tests and encouraging it to write tests with very specific criteria.
  3. Making sure it does not duplicate logic it lacks context of

Software is still hard, and LLMs are still dumb in the ways that matter. A misplaced await, a missing null check, or a race condition can turn “this works on my machine” into “why is prod on fire?”

Every now and then, I stumble on new possibilities or patterns I hadn’t even considered before, things I end up having to research or verify. There have been plenty of times when I questioned whether the AI’s suggestions were actually correct. Often, the output looks solid at first glance but turns out to be a bad idea upon closer inspection. That’s why thorough review is non-negotiable.

The Future: Automatic Programming, Not Automatic Developers

The dream for me isn’t AI replacing devs. It’s AI handling the cruft so we can focus on the hard concerns, the ones that require creativity, experience, and the ability to say “no” to stupid requirements.

Currently, we’re in the sweet spot: AI is good enough to be useful, but not so good that we can trust it blindly. Enjoy it while it lasts.

Final Rant: A Reality Check

If you’re using AI to write 100% of your code, you’re either:

  • A startup bro who thinks “move fast and break things” is a business model
  • Someone who’s about to learn why “technical debt” is called debt.

Use AI like a power tool, not a crutch. And for the love of god, review your diffs.

Credits & Inspiration

This post was partly inspired by Salvatore Sanfilippo’s thoughts on “Automatic Programming”. I really like differentiating “Vibe Coding” and using AI to increase iteration speed.