Embedded AI Podcast

E13 Ryan visits Luca (and they talk abut spec-driven development)


Listen Later

For E13 we recorded live in Luca's garden in Munich, with Ryan dropping by ahead of Embedded World week. Ryan and Luca talk about spec-driven development in the AI era: where the discipline came from, what changes when an LLM is doing the typing, and the failure modes that show up over and over again in trainings. The short version: vibe coding will get you something that demos beautifully, but the moment a stranger asks "what does this button do?", it tends to expose how little was actually thought through.

The conversation circles around a few recurring themes — the iterative loop you cannot skip even when the AI lets you, the temptation to one-shot whole projects, and the awkward fact that the AI itself seems to actively prefer working in waterfall mode. We also get into why requirements engineering and product ownership matter more (not less) with AI in the picture, why TDD doubles as a way of describing the goal to your assistant, and why the engineer staying in the loop — with that loop running tighter and faster — is what actually makes this work in practice. Plus an honest digression about all the ditches Luca has fallen into building Claude Code skills around his daily workflow.

Key Topics:

  • [02:24] Three artifacts of spec-driven development — and what each one means in the AI era
  • [05:45] Trainings, vibe-coded games, and the "what does this button do?" moment
  • [11:27] Long-lived branches, three months of code in an hour, and why both fail for the same reason
  • [22:25] Beningo's multiplier metaphor: what if the engineer's value is between -1 and 1?
  • [24:25] Engineering as conversations; curly brackets as a side effect
  • [27:17] Why requirements engineering and product ownership become more important with AI
  • [30:59] The AI wants waterfall — and you need to fight it
  • [33:54] One-shot prompts for whole projects: lying to yourself in five lines
  • [37:27] Staying in control: one unit of work, AI in the loop, integrate, done
  • [41:32] Filling ditches one at a time: Luca's Claude Code skills setup
  • [43:06] TDD as the act of describing the goal — to yourself and to the AI

Notable Quotes:

"If you've got a five-line prompt that generates 10,000 lines of code for you, then there's just going to be a lot of blank spots in there, a lot of ambiguity in there. That can't be good." — Luca Ingianni

"I've had teammates create a long-lived branch and tell me 'I'll see you in a few months.' And I'm like — no. They don't understand how this is going to interact with the rest of the system. And you're basically doing that same thing — writing three months worth of code in an hour. Cool, now what?" — Ryan Torvik

"Engineering is what happens when engineers talk to one another, and the differential equations and the C++ code are just side effects of those conversations." — Luca Ingianni

Resources Mentioned:

  • embeddedai.academy — Luca's AI trainings for embedded teams
  • Agile Embedded Podcast — sister show, more on agile in the embedded world
  • Embedded World — annual embedded systems trade fair in Nuremberg, where Ryan was heading next
  • Claude Code — the AI coding tool Luca built his "skills" workflow around
  • Jacob Beningo's "multiplier" framing for AI in development teams (referenced from E12)
...more
View all episodesView all episodes
Download on the App Store

Embedded AI PodcastBy Embedded AI Podcast