groundrun.io

Vibe coding vs. agentic engineering for products that span cloud, app, and firmware

Vibe coding vs. agentic engineering for products that span cloud, app, and firmware

Vibe coding is a way to find out whether an idea is worth building. Agentic engineering is a way to build a product that has to keep working for years.

What is vibe coding?

Vibe coding is the art of writing a quick prompt to an AI and getting an impressive result back.

It works well for web projects, where the models have been trained on enormous amounts of frontend, backend, and database code. Anyone who has tried it knows this.

And it's great at what it's for: a one-off personal project, an itch you want to scratch, a prototype you want to see running today.

The reason vibe coding works is the feedback. You glance at the result and you know whether it did what you wanted.

The reason vibe coding works is the feedback.

The glance only tells you about the output. Nothing in the loop holds the code to what it was supposed to do, so each new prompt can undo what an earlier one got right. On something small you catch it, because you can see the whole thing at once. As the project grows the code drifts, and past a point every change costs more than the one before it.

A product that spans a cloud backend, an app, and firmware doesn't fit in a glance. What you need to know is whether it works across all of those layers at once, and no screen shows you that. Even a small connected project works this way. Building a Matter smart home device with AI agents still takes significant hardware validation before anyone can say the thing works.

How does agentic engineering differ from vibe coding?

With agentic engineering we stop writing one-shot prompts. Every feature goes through the same loop: plan, review the plan, implement, review the result.

The review steps are the point. A plan is cheap to read and cheap to change, so a wrong approach costs a paragraph and gets fixed before any code exists.

And there is a validation layer in the loop, so the agent finds out whether it is on the right track while it works.

The work compounds. Each pass starts from a system that is known to work, and adds to it.

The validation layer that runs in the loop

The validation layer has levels, and the agent uses all of them.

Unit tests answer in seconds. They catch the ordinary mistakes, the off-by-one and the inverted condition, and they're cheap enough that an AI agent runs them constantly as it works.

Feature tests exercise one component doing its job: the pairing flow completing, the provisioning endpoint issuing credentials, the app rendering what the device reported. These take longer and they tell you more.

System tests run the whole product together, the firmware on the device, the app driving it, the cloud behind it, through the flow a user walks. They decide whether a connected product works, and they need real hardware, because a simulator answers a question about the simulator.

Each level catches what the level below it cannot see. A change can leave every unit test green, every feature test green, and still break the product, because the failure lives between the components. The firmware notifies only when the battery level changes, the app subscribes after pairing has finished, and a freshly unpacked device shows an empty panel. Three correct components, one broken flow.

AI agent workflow: battery level on the app's home panel
  1. PASS Unit tests: firmware, app, cloud
  2. PASS Feature tests: pairing flow, telemetry endpoint, panel rendering
  3. FAIL System test: freshly unpacked device, app shows an empty panel
  4. Agent sends the first reading on subscribe, resubmits
  5. PASS System test: freshly unpacked device, app shows the battery level

All of it runs inside the loop. The agent makes a change, the scenarios run, a failure comes back with the step it failed at, and the agent fixes it and goes again. Each pass ends up closer than the last.

Documentation the agents write and read

The other half of agentic engineering is that the agents work on a documentation tree alongside the code.

Every feature that lands updates the documentation describing how that part of the system works. These are documents that ship with the change and get reviewed alongside it.

Two things come out of that. The obvious one is that the system documents itself, so a developer who needs to understand a subsystem has somewhere to read it.

The second one matters more. When a developer asks an AI agent a question about the system, the agent reads the documentation and answers from it, rather than guessing from whatever fragment of the codebase it happened to load. The documentation has two readers now, the people on the team and the agents answering their questions, and the answers get better because the ground truth is written down.

The documentation has two readers now, the people on the team and the agents answering their questions, and the answers get better because the ground truth is written down.

The documentation compounds too. Every subsystem written down properly is one the agents no longer have to work out from scratch, so the next task starts from more than the last one did.

Circuit board connected to test probes on an engineering workbench

Comparison: vibe coding vs. agentic engineering

Vibe codingAgentic engineering
What it is forEarly prototypes, trying several ideas at once, finding out what is worth buildingProjects that have to stay useful over the long term
How you promptOne-shot promptsPlan, review the plan, implement, review the result
DocumentationDocs not necessaryDocs written alongside the code
ValidationNo tests, "looks alright" is good enoughUnit tests, feature tests, system tests, full-system validation in the loop
Over many changesThe code drifts, and each change costs moreThe work compounds, and each pass starts from more

How can connected product teams use agentic engineering?

Start with the documentation tree, before handing the agents any feature work. Point them at the codebase and have them write down how the system works, subsystem by subsystem, then read what they wrote and correct it. The written ground truth is what every later task runs on, and we've written up how to build it, step by step.

Then the validation layer, working upward. Unit and feature tests are familiar ground and most teams already have them. The system level takes the most building, because it is the one that needs the real hardware in the loop.

Once both exist, the agents can be handed the work that spans the layers, which is most of what a connected product is. An over-the-air update that has to survive a lost connection, a provisioning flow that crosses all three domains, a change to the data model that every layer has to agree on.

Engineer working on a laptop surrounded by electronics test equipment in a lab

Where Groundrun helps

The documentation tree and the unit and feature tests are things a team can build itself. Most of the work there is deciding to do it, and the agents do much of the writing.

The system level is the one that takes infrastructure: a rig with your devices on it, your app driving them, your cloud behind them, and scenarios that walk the flows your users walk across all three. That is what Groundrun builds.

It runs as a command-line tool, so your AI coding agents invoke the scenarios and read the results from inside their own loop, the same way they run the unit tests. The scenarios live in your repositories and grow as the product does, and we map the flows with you and prioritize where coverage starts.

So the agents get the same kind of answer at the system level that they already get at the unit level, on your real product.

Can connected product teams still use vibe coding?

Yes. Vibe coding is very good for early prototypes.

It fits what software engineering already calls throwaway prototyping: a quick test of an idea, where the prototype is discarded and the idea is kept.

Ideas that used to take weeks to try out can be tried in days. And because each one costs so little, you can run several at once, put the rough versions side by side, and see which one is worth having.

You can explore a lot more before committing to anything. The idea you pick then gets built through the agentic loop, and the prototype has done the job it was there for, which was telling you what to build.

How much of the product can agents take on?

As much as the loop around them can validate.

With a written ground truth to work from and validation at every level, AI coding agents can take on the work that crosses firmware, app, and cloud.

The ceiling moves. Every flow added at the system level, and every subsystem written down properly, is more of the product the agents can be handed.

You can develop with agents faster than your organization can trust the result, and the loop is where that trust gets built.


See how Groundrun runs the system-level scenarios from inside your agents' loop, on real hardware: platform overview.