David Smith
David is an electrical engineer who has been developing embedded systems since the mid 1990s after getting his start writing firmware in C for a little-remembered Toshiba TLCS-900/L 16-bit processor. The learning curve of moving from desktop programming to embedded was steep in those days, but the challenging nature sparked a lifelong passion that extended beyond "just work". The drive to understand how and why systems worked led to an ever-expanding need to learn more about adjoining topics. Learning the intricacies of controlling hardware with firmware naturally led to a desire to design hardware as well, and since that time, he has had the pleasure of developing a large number of embedded systems, both electronics hardware and firmware, that have been used in commercial products for his employers.
David is a Licensed Professional Engineer and holds a BS and MS degree in Electrical Engineering from Virginia Tech.
How I Created a Containerized Zephyr Build Environment Using Linux, Docker, and VS Code — and How You Can Too!
Status: Coming up in April 2026!The holy grail in this quest is a Zephyr application development environment that is reproducible, portable, fully isolated, uses open source tools, and is simple to use. The isolation provided by Docker, paired with the general-purpose Swiss army knife functionality of VS Code, is a versatile foundation. Combine that with the capability and power of the Zephyr RTOS and its large number of target hardware platforms, and the result is a setup that is hard to beat. When properly configured to work together, these independent tools and technologies synergize to produce a powerful embedded firmware development environment. Unfortunately, the quest for the grail required forging a path through a dense gauntlet of issues that demanded extensive trial and error and experimentation to overcome.
This talk will cover the presenter's experience creating the environment for developing a commercial Zephyr-based product, point out the issues encountered, the solutions discovered, and share the information and resources needed for others to recreate it for their own use. The final result is a set of configuration files that enables VS Code to automatically construct the development environment and requires only minor manual configuration. By removing weeks of laborious setup, this solution helps developers start building almost immediately while reaping the advantages outlined above.
