Skip to content
Artwork for The Agile Embedded Podcast

The Agile Embedded Podcast

Luca Ingianni, Jeff Gable

Learn how to get your embedded device to market faster AND with higher quality.

Join Luca Ingianni and Jeff Gable as they discuss how agile methodologies apply to embedded systems development, with a particular focus on safety-critical industries such as medical devices.

Play
  • 21 episodes
  • fortnightly
  • Avg 47 min
  • English
Counted on this page — what you have heard stays on this device, so it is not something the list can be paged by.
  • #100
    August 24 · 59 min

    100 Episodes! Break Out the Champagne! A Retrospective

    We flip the script for episode 100! Instead of hosting, Luca and Jeff become the guests as Joe Schneider and Jacob Beningo take over the interview chair. We look back at how two consultants from opposite sides of the world accidentally started a podcast, share war stories about the hardest bugs we've ever chased (spoiler: weeks of work for one-line fixes), and discuss why "Agile" might not be the buzzword it once was. The conversation touches on everything from helicopter avionics to the future

  • #99
    August 4 · 43 min

    From Vision to Reality: Product Roadmaps in Embedded Development

    In the third installment of our requirements engineering series, Luca and Jeff shift focus from requirements themselves to the bigger picture: how do you actually turn ideas into working products? We explore the journey from product vision through roadmaps to backlogs, discussing what makes a good roadmap and—perhaps more importantly—the surprisingly common mistakes that even experienced teams make.

  • #98
    June 9 · 50 min

    Factory Firmware Flashing with Pete Staples

    We talk with Pete Staples, founder of Blue Clover Devices, about the often-overlooked challenge of flashing firmware in production. Pete shares insights from running a contract manufacturing operation in Shenzhen and explains why the handoff from engineering to manufacturing is more like "hucking it over a fence" than a smooth relay race.

  • #97
    May 27 · 50 min

    Requirements Engineering, part 2: A Practical Process for Safety-Critical Development

    In this second part of our requirements engineering series, Jeff walks us through his preferred process for developing safety-critical products, particularly medical devices. We explore the crucial distinction between prototyping and design-controlled development, discussing when to start formal requirements work and how to keep your first version minimal yet complete. Jeff emphasizes the importance of deeply fleshing out requirements before implementation—including error handling, which often

  • #96
    May 13 · 48 min

    Fuzzing and Dynamic Analysis for High-Integrity Software with Paul Butcher

    We sit down with Paul Butcher, Unit Director of Dynamic Analysis at AdaCore, to explore verification techniques beyond basic compliance in safety-critical software. Paul shares his experience from Eurofighter to automated trains, explaining how dynamic analysis—from unit testing to coverage analysis to fuzzing—helps find bugs that traditional testing misses. The conversation dives deep into fuzzing: how it works, why it's so effective at finding corner-case bugs (even in well-tested systems), a

  • #95
    April 30 · 46 min

    Linux Profiling with Mohammed Billoo

    We sit down with Mohammed Billoo, founder of Mab Labs and author of the Embedded Linux Essentials Handbook, to explore the world of embedded Linux profiling and optimization. Mohammed shares hard-won lessons from the field, including debugging a scientific instrument that mysteriously crashed after 60-minute runs and optimizing a sophisticated MANET platform that took a 20% throughput hit. The conversation reveals a fundamental truth: in embedded Linux, the CPU is rarely the bottleneck. Mohamme

  • #94
    April 15 · 47 min

    E94 Requirements Engineering, part 1: Fundamentals

    We kick off a multi-part series on requirements engineering by exploring what requirements actually are and why they matter - even for Agilists. Jeff shares his medical device expertise while Luca brings his automotive and aerospace background to discuss the different levels of requirements (from high-level user needs to testable system requirements), the importance of traceability, and why proper tooling beats Word and Excel every time. We dig into practical aspects like the EARS format for wr

  • #93
    April 1 · 52 min

    Hardware-Software Co-Development with Tobias Kästner

    We talk with Tobias Kästner, a physicist-turned-software-architect and technical consultant at Inovex, about his journey from painfully slow hardware-software integration cycles to achieving three-week hardware sprints. Tobias shares hard-won lessons from medical device development, where fuzzy requirements and constant feedback from life scientists forced his team to rethink traditional approaches.

  • #92
    March 18 · 42 min

    Test-Driven Development in the Age of AI

    We explore how test-driven development (TDD) remains essential—perhaps more than ever—when working with AI coding tools. Luca shares his evolved workflow using Claude Code, breaking down how he structures tests in three phases: test ideas, test outlines, and test implementations. We discuss why TDD provides the necessary control and confidence when AI generates code, how it prevents technical debt accumulation, and why tests serve as precise specifications for AI rather than afterthoughts.

  • #91
    March 4 · 43 min

    Engineering Organizations Part 2: Product Companies and Market-Driven Focus

    In this second part of our series on engineering organizations, Jeff and Luca explore how companies that build products should focus their efforts differently depending on their stage and scope. We start with startups and early-stage companies desperately searching for product-market fit, where the brutal truth is: quality doesn't matter yet. Your MVP should embarrass you—if it doesn't, you waited too long. We discuss the critical mental shift from throwaway prototypes to proper engineering once

  • #90
    February 18 · 43 min

    Engineering Organizations Pt 1: Service Firms - When You Are the Product

    In this first part of a two-part series, Jeff and Luca explore how different types of service-oriented engineering organizations should focus their learning and improvement efforts. Drawing from their consulting experience, they examine three distinct categories: product development firms that turn client ideas into reality, engineering development firms that sell specialized technical expertise, and solo engineers who package all necessary knowledge into one person.

  • #89
    January 19 · 35 min

    Rust with Milica Kostic

    In this episode, we sit down with embedded software architect Milica Kostic to discuss her journey from C/C++ to Rust and what it means for embedded development. Milica shares her experience adopting Rust in production environments, starting with an embedded Linux project using a microservice architecture that allowed for clean isolation of Rust code.

  • #88
    January 5 · 57 min

    MicroPython with Matt Trentini

    We talk with Matt Trentini, Principal Software Engineer at Planet Innovation, about using MicroPython for professional embedded development—including medical devices. Matt shares how he was drawn back to embedded development after becoming jaded with traditional C-based workflows, and explains why MicroPython's interactive REPL and rapid development cycle have become game-changers for his team.

  • #87
    Dec 16, 2025 · 53 min

    Terrible Habits of the Solo Developer

    In this episode, Jeff and Luca tackle the unique challenges faced by solo embedded developers. Drawing from their own experiences as consultants, they explore why working alone makes it harder to maintain good development practices - from the constant pressure to multitask across different stakeholder demands, to the difficulty of wearing multiple hats as leader, manager, and contributor simultaneously.

  • #86
    Dec 3, 2025 · 50 min

    Agile Hardware Development with Gregor Gross

    In this fascinating episode, we dive deep into the world of agile hardware development with Gregor Gross, a civil engineer who runs Alpha-board, a PCB design service company in Berlin, Germany. Gregor shares his unique perspective on applying agile principles to hardware projects, where you can't just hit compile and get a new increment.

  • #85
    Nov 18, 2025 · 55 min

    Crossover with Embedded AI Podcast

    In this special crossover episode with the brand-new Embedded AI Podcast, Luca and Jeff are joined by Ryan Torvik, Luca's co-host on the Embedded AI podcast, to explore the intersection of AI-powered development tools and agile embedded systems engineering. The hosts discuss practical strategies for using Large Language Models (LLMs) effectively in embedded development workflows, covering topics like context management, test-driven development with AI, and maintaining code quality standards in s

  • #84
    Nov 12, 2025 · 28 min

    AI-enhanced Embedded Development (May 2025 Edition)

    In this episode, Jeff interviews Luca about his intensive experience presenting at five conferences in two and a half days, including the Embedded Online Conference and a German conference where he delivered a keynote on AI-enhanced software development. Luca shares practical insights from running an LLM-only hackathon where participants were prohibited from manually writing any code that entered version control—forcing them to rely entirely on AI tools. The conversation explores technical challenges in AI-assisted embedded development, particularly the importance of context management when working with LLMs. Luca reveals that effective AI-assisted coding requires treating prompts like code itself—version controlling them, refining them iteratively, and building project-specific prompt libraries. He discusses the economics of LLM-based development (approximately one cent per line of code), the dramatic tightening of feedback loops from days to minutes, and how this fundamentally changes agile workflows for embedded teams. The episode concludes with a discussion about the evolving role of embedded developers—from code writers to AI supervisors and eventually to product owners with deep technical skills. Luca and Jeff address concerns about maintaining core software engineering competencies while embracing these powerful new tools, emphasizing that understanding the craft remains essential even as the tools evolve. Key Topics [02:15] LLM-only hackathon constraints: No human-written code in version control [04:30] Context management as the critical skill for effective LLM-assisted development [08:45] Explicit context control: Files, directories, API documentation, and web content integration [11:20] LLM hallucinations: When AI invents file contents and generates diffs against phantom code [13:00] Economics of AI-assisted coding: Approximately $0.01 per line of code [15:30] Tightening feedback loops: From day-long iterations to minutes in agile embedded workflows [17:45] Rapid technical debt accumulation: How LLMs can create problems faster than humans notice [19:30] The essential role of comprehensive testing in AI-assisted development workflows [22:00] Challenges with TDD and LLMs: Getting AI to take small steps and wait for feedback [26:15] Treating prompts like code: Version control, libraries, and project-specific prompt management [29:40] External context management: Coding style guides, plan files, and todo.txt workflows [32:00] LLM attention patterns: Beginning and end of context receive more focus than middle content [34:30] The evolving developer role: From coder to prompt engineer to AI supervisor to technical product owner [38:00] Code wireframing: Rapid prototyping for embedded systems using AI-generated implementations [40:15] Maintaining software engineering skills in the age of AI: The importance of manual practice [43:00] Software engineering vs. software carpentry: Architecture and goals over syntax and implementation Notable Quotes "One of the hardest things to get an LLM to do is nothing. Sometimes I just want to brainstorm with it and say, let's look at the code base, let's figure out how we're going to tackle this next piece of functionality. And then it says, 'Yeah, I think we should do it like this. You know what? I'm going to do it right now.' And it's so terrible. Stop. You didn't even wait for me to weigh in." — Luca Ingianni "LLMs making everything faster also means they can create technical debt at a spectacular rate. And it gets a little worse because if you're not paying close attention and if you're not disciplined, then it kind of passes you by at first. It generates code and the code kind of looks fine. And you say, yeah, let's keep going. And then you notice that actually it's quite terrible." — Luca Ingianni "I would not trust myself to review an LLM's code and be able to spot all of the little subtleties that it gets wrong. But if I at least have tests that express my goals and maybe also my worries in terms of robustness, then I can feel a lot safer to iterate very quickly within those guardrails." — Luca Ingianni "Roughly speaking, the way I was using the tool, I was spending about a cent per line. Which is about two orders of magnitude below what a human programmer roughly costs. It really is a fraction. So that's nice because it makes certain things approachable. It changes certain build versus buy decisions." — Luca Ingianni "You can tighten your feedback loops to an absurd degree. Maybe before, if you had a really tight feedback loop between a product owner and a developer, it was maybe a day long. And now it can be minutes or quarters of an hour. It is so much faster. And that's not just a quantitative step. It's also a qualitative step." — Luca Ingianni "Some of my best performing prompts came from a place of desperation where one of my prompts is literally 'wait wait wait you didn't do what we agreed you would do you did not read the files carefully.' And I'd like to use this prompt now, even before it did something wrong. And then it apologizes as the first step. And I feel terrible because I hurt the LLM's feelings. But it is very effective." — Luca Ingianni "As you tighten your feedback loops, quality must be maintained through code review and tests. Test first, new feature, review, passing tests—you need to go through that red-green-refactor loop. You can just hopefully do it much more quickly, and maybe in slightly bigger steps than you did before manually." — Jeff Gable "A lot of what I'm doing is really intended to rein in an LLM's propensity to sort of ramble. It's very hard to get them to practice TDD because you can ask them to write the test first, then they will. And then they will just trample on and write the implementation right with it without stopping and returning control back to you." — Luca Ingianni "Those prompts tend to be to some degree specific to the particular code base or the particular problem domain. Every now and then you stumble across ways of making an LLM do exactly what you want it to do within the context of the particular code base. And once you find a nugget like this, you keep it. You don't just keep it in the generic library. Some of those tricks will be very specific to a particular code base." — Luca Ingianni "Just like humans, LLMs tend to pay more attention to the stuff at the beginning of the context and at the end, and the middle sort of gets not quite forgotten but kind of fuzzy. You really need to have a way to extract all of that before it becomes fuzzy and store it in a safe place where it can't be damaged, like a file." — Luca Ingianni "I think we will hit this weird valley in the coming five years where everyone's just using LLMs and no one knows how to write code anymore. And there will be a need for people who can leverage the tools, but still have the skills that serve as the solid foundation." — Jeff Gable "Maybe this is essentially software engineering finally becoming true to its name. At the moment, software engineering is sort of more like software carpentry. You're really doing the craft. You're laboring to put the curly brackets at the right places. And maybe now it's more about taking a step back and thinking in terms of architecture, and thinking in terms of goals, as opposed to knowing how to swing a hammer." — Luca Ingianni Resources Mentioned Embedded Online Conference - Premier online conference for embedded systems professionals featuring talks on AI integration, development practices, and cutting-edge embedded technologies. All sessions are recorded and available for on-demand viewing. Aider - AI pair programming tool mentioned for its ability to integrate web content into context using commands like '/web [URL]' to incorporate API documentation and other online resources directly into the development workflow. GitHub Copilot - AI-powered code completion tool integrated with VS Code and other IDEs, enabling context-aware code generation and assistance for embedded development workflows. You can find Jeff at https://jeffgable.com. You can find Luca at https://luca.engineer. Want to join the agile Embedded Slack? Click here Are you looking for embedded-focused trainings? Head to https://agileembedded.academy/ Ryan Torvik and Luca have started the Embedded AI podcast, check it out at https://embeddedaipodcast.com/

  • #83
    Nov 9, 2025 · 45 min

    Zephyr with Luka Mustafa

    Zephyr RTOS: Modern Embedded Development with Hardware Abstraction and Community-Driven Best Practices In this comprehensive episode, Luka Mustafa, founder and CEO of Irnas Product Development, provides an in-depth exploration of Zephyr RTOS and its transformative impact on embedded development. We dive deep into how Zephyr's Linux Foundation-backed ecosystem enables hardware-agnostic development, dramatically reducing the time spent on foundational code versus business-value features. Luka sha

  • #82
    Oct 21, 2025 · 46 min

    Crossover with Mob Mentailty Part 2

    In this deep-dive continuation with Mob Mentality Show hosts Austin Chadwick and Chris Lucian, we explore the practical implementation of mob programming in embedded and IoT environments. The discussion covers how collaborative programming extends beyond pure software development to include firmware engineers, hardware teams, and DevOps specialists working together in real-time. Key insights include strategies for managing cross-disciplinary collaboration, overcoming organizational resistance, a

  • #81
    Oct 16, 2025 · 48 min

    Crossover with Mob Mentality part 1

    In this special crossover episode with the Mob Mentality Show, Jeff and Luca explore how mob programming can revolutionize embedded systems development. The discussion covers critical pain points in the embedded industry, including hardware-software coupling, documentation overhead in safety-critical systems, and the persistent silos between electrical, mechanical, and software engineers. Chris Lucian and Austin Chadwick from the Mob Mentality Show share practical strategies for implementing col

Showing 1–20 of 21 episodes