The Embedded Renaissance: Reimagining How We Build Firmware in a Modern World
In today’s rapidly evolving embedded landscape, outdated development methods can leave you struggling to hit deadlines, control costs, and maintain quality. Whether you’re leading a team or writing the code yourself, it’s time to modernize your approach, secure your competitive edge, and open new doors for innovation.
This talk presents a proven, 7-step roadmap for transforming your embedded software practices, designed for both strategic decision-makers and hands-on developers. Discover how to establish a metrics-driven scoreboard to measure progress, adopt modern, modular architectures to streamline delivery, and integrate DevOps pipelines that enhance speed and consistency. Learn how to standardize build systems, embrace test-driven development and simulation for earlier feedback, and incorporate AI/ML capabilities that propel you ahead of market trends.
Attendees will walk away from this talk with a clear, actionable roadmap to modernize their embedded software practices—from planning and measurement to delivery and innovation—empowering them to stay ahead in an ever-changing landscape.
Topics Covered in This Talk Include:
- Metrics Scoreboard: Automate a Software Metrics Scoreboard
- Architecture: Adopt Modern Architecture Methodologies
- DevOps: Integrate DevOps Pipelines
- Build Systems: Standardize Your Build Systems
- AI/ML: Leverage AI/ML to Accelerate
- TDD: Embrace Test-Driven Development to Improve Testability
- Simulation: Leverage Simulation Early
What is the primary benefit of adopting a metrics-driven scoreboard in the embedded software development process, according to Jacob Beningo?
Thanks for the comment!
To date, I've not found a lot of tools that are good at this. My own simulation I often just create functional simulators where I write an interface to decouple hardware and then write python or server code that feeds in what the hardware would to test the application code.
At one point I was very excited about Matlab for this, but have found overall the learning curve is too high and the generated code is not human readable or good.
Renode has been interesting for simulation and Embedd for generating quality drivers and interfaces.
I hope that helps, if not, feel free to follow up!
Fantastic presentation Jacob. As a engineer that mainly works with FPGA i find many of the steps hard to implement. I know that many people dont consider writing FPGA code as firmware, beacuse you are basically describing hardware, but thats a discussion for another time. I always try to find ways to make my build proccess cleaner and better but it always ends up being kind of frustrating and its not worth the effort. I wonder if you, or anyone for that matter, has some experience in integrating FPGA in a DevOps enviroment
Thanks!
I think that you could consider the FPGA code as firmware, even though we don't traditionally think of it as such.
Unfortunately, I don't have much experience with FPGAs. It's always been of interest but I've not had the bandwidth.
Adam Taylor would be a good person to ask on that front. He works exclusively with them.
As always a great presentation Jacob! Thank you so much! I always learn so much from you!
Thanks!
Living in Denmark, I see most of these presentations on-demand. This one is really recommendable, and in many ways resonate with my own mindset. For instance I recently checked out Zephyr, which is referred to a lot in this conference, and I was also impressed with "west". You can adapt the Zephyr build-concepts even if you don't use Zephyr.
The idea of "taking a step back" and look at what you are really trying to accomplish with your architecture is great. Love it!
Regarding your point on simulation I think it is worthwhile to mention that when using embedded Linux, you can test soooo much on a PC or a Raspberry PI - before you get your actual hardware. In a project I observed that developers used the PC - also after we had enough HW, simply because of the shorter development cycle with the better tools. And - as you say - you need to emphasize to also test with the real HW. You can also use the real HW as gateway to the physical world, and use sockets to develop your application on PC.
Finally, your slides says Test-Driven, but you moderate it to "focus on the application testing" - which I thing is right. I recently saw James Coplien presenting "Why most unit testing is waste" - obviously provocative, but not entirely wrong. Thanks!
BR Klaus Elk
Thanks! I'm glad to hear that you are enjoying the conference so far!
Thanks for sharing your experiences! Great observations!




Great talk, Jacob, thanks! I can't believe I'm the first to comment. Lots of good points. I think every project I've worked on suffers from those same legacy issues. I've tried introducing basic CI/CD, but often find it a hard sell, when people are so used to the legacy ways of working.
One thing I've often thought about, is whether code generation directly from a model could improve development practices and introduce fewer bugs. It's similar to how you recommend leveraging AI, but the model would be something the team maintain and is reviewable. Many years ago I used SCADE Suite in an aerospace job, the selling point being the generated code was qualified and so we only needed to work on and review the model for correctness. The code would just work and was always consistent (it was ugly and a pain to debug though). The generator template files could be made compliant with whatever coding standard and pass SAST. CubeMX is good with creating and changing skeleton code, but still needs manual code to work. Are there any tools you recommend, that preferably don't need a huge investment in time and money?