Best DevOps Practices for Embedded Micro-Systems

Jacob Beningo is an embedded software consultant with more than 20 years of experience in satellite, military, and in-car applications. Specializing in real-time, microcontroller-based embedded systems, he’s engineered more than 200 embedded systems. Many of these are critical infrastructure applications, including primary flight computer software, propulsion control systems, smart solar panels, sensor acquisition systems, battery management systems, and several other satellite systems, as well medical ventilators and more.

He believes in knowledge sharing and actively promotes embedded software best practices through his numerous articles, blogs, newsletters, training courses, and webinars.
In this show, he shares some of the coolest embedded systems that he’s worked on. One of them was a propulsion controller for the CAPSTONE satellite supporting the Artemis moon mission.

He also shares lessons learned from a code-security point of view, and how he’s translated best practices into a series of training courses for embedded system engineers. “As you’re developing your system, think of the cost of failure. If a satellite fails, you have millions of dollars and hundreds if not thousands of people’s time on the line. The cost can be large dollar amounts, reputation, timing, and your brand. The cost of life, you can’t apply a dollar value to that,” Jacob says.

Engineering a 100-percent secure system may not be possible, so he also advises product companies to run failure and recovery scenarios for their mission critical products, especially in space systems where communications aren’t available 24 x 7. Observability and resilience come up frequently in this interview, and he even brings in a personal case with a smart switch that failed in his home and there was no resilience built in.

“Observability, how can I observe these systems in the field, especially with IOT? And how can I see how the users are using the system? With the right DevOps platform, you get that observability and feedback loop to continually Improve robustness,” he adds.