Coding with an AI Assistant: My Ongoing Journey into Vibe Coding

07 Aug 2025 - tsp
Last update 07 Aug 2025
Reading time 8 mins

In this blog post I want to capture my evolving experience with what is called ā€œvibe codingā€: a collaborative and conversational approach to programming alongside large language models (LLMs). Think of it as pair programming with a non-human partner that remembers nothing between sessions, makes odd mistakes - but still amazes you daily.

The term vibe coding captures the feel of it: You don’t just write code, you vibe with your assistant. You explain, it responds. You discuss, it restructures. You get stuck, it offers insights. Sometimes it nails a design pattern. Sometimes it hallucinates. But if you approach it with a blend of structure, clarity, and improvisation—it works.

This article will grow over time (hopefully). I’ll update it regularly as I use more tools, tackle different kinds of projects, and see how my workflow changes.

Initial Skepticism and Model Choices

Like many engineers, I was skeptical at first - especially after having experience with programming for over 30 years and having seen many beginners and their typical mistakes. Could an AI really help me write real code? Not just toy examples or StackOverflow-style snippets, but full-blown applications?

To my surprise, the answer is: Yes, but with caveats.

Today, I use several models depending on the task:

Keep in mind: you are sending your code to a third party unless you’re using on-premise models. I do most vibe coding on personal projects. At work, I switch to local gateways or air-gapped setups with smaller models to avoid privacy or NDA issues. Limited hardware means reduced context windows and more friction—but it’s workable.

My Current Stack - The Tools

My current stack includes:

In the Kilo extension, I configure multiple backends:

Context size is a massive factor. Having 200k tokens available makes everything smoother. Working with 16k context on some on-premises models or 64k context at some ollama model feels like driving blind. Except for some very small tasks it’s not worth the hassle.

Project Architecture: Don’t Skip the Planning Phase

Starting a new project? Don’t jump straight into writing code - just like you wouldn’t with a human team or when working alone.

The architecture mode in Kilo is especially good. Here, I:

The agent will often generate a Markdown structure (README, spec descriptions, module breakdowns) and even mermaid diagrams. From there, it’s a conversation. You refine. It updates. You modularize.

But be warned: architecture mode can lead to massive duplication if you’re not careful. Also the agent sometimes overshoots with modularization or specific patterns for a given application (there is no need to implement a full blown MVC pattern with abstract controllers and hierarchical executors for a simple single-shot weekend application). You must actively guide the LLM to avoid bloated or redundant module design.

Clear technical descriptions are vital. The LLM is only as good as your instructions. It cannot guess technological decisions when you just give it plain everyday-English descriptions of your application. You need to know how one builds software in a proper way.

Code Mode: Boilerplate Heaven, Debugging Hell

Once the architecture is set, code mode helps with:

For small projects or clean modules, it’s magic. You can fix bugs, navigate stack traces, and refactor with ease. But when your codebase grows, context becomes extremely relevant.

You must:

Each new request starts from scratch unless you prepare documentation files the LLM can ingest. If you start over all the time this will get very slow and costly extremely fast.

Error Hunting: Flow Before Fix

Debugging is where the magic can happen - if you do it right.

Here’s the trick: Before asking the LLM to fix an issue, describe it in detail and ask it to explain how the system works.

Only then does it have enough structure in its working memory to spot real bugs. If you skip this step, you’ll pay the price - in API tokens and your own patience.

This is where tools like Kilo shine: They embed this reasoning pattern into preconfigured prompts.

Cost vs Value

Let’s talk money.

This is cheaper than a night at the pub, but more expensive than doing it all yourself. So it makes sense only if you save time **********or********** gain value - e.g., if you can move faster and deliver something that earns or matters (or of course just for the fun of it).

Practical Tips for Working Efficiently

A few patterns I’ve learned:

Ask Mode and Iterative Ingestion

One of my favorite features is the ā€œAskā€ mode. Instead of ingesting all code at once, the LLM steps through files and builds understanding iteratively.

This is incredibly efficient when, say, reverse engineering a protocol or untangling legacy code. But yes, cost adds up the more files it has to parse.

Final Thoughts (So Far)

This whole journey has changed how I work on some projects. Coding with an AI assistant is not about replacing humans (yet). It’s about:

That said, it’s not magic.

But all in all? I’m fascinated. This technology has evolved near superluminal speeds of the last months to years - and development speeds up even further. I think there is a huge hype about AI in general and vibe coding of course - but it’s nothing that one should ignore or that will not transform the way we work.

This article is tagged:


Data protection policy

Dipl.-Ing. Thomas Spielauer, Wien (webcomplains389t48957@tspi.at)

This webpage is also available via TOR at http://rh6v563nt2dnxd5h2vhhqkudmyvjaevgiv77c62xflas52d5omtkxuid.onion/

Valid HTML 4.01 Strict Powered by FreeBSD IPv6 support