290: Rule of Thumbs

Embedded.fm · 6 Jun 2019 · 1h 13m · Episode 290

What this episode covers

Phillip Johnston, founder of Embedded Artistry, discusses embedded software consulting, the importance of upfront design to avoid costly rewrites, and best practices for code reviews and testing. He analyzes the Boeing 737 MAX crashes as a systemic failure driven by business pressures and poor risk analysis, and explains the challenges of retargeting C++ standard libraries like libc++ to RTOS environments such as FreeRTOS and ThreadX.

Mentioned

Companies
Embedded Artistry, Apple, Boeing
Chips
nRF52
Tools
IAR, newlib, FreeRTOS, ThreadX, libc++, Clang, GCC

Other shows on the same ground, closest first.

  • The Pragmatic Embedded Podcast · 39m

    Christmas Special

    Hosts Jeff Gable and Luca share war stories from their careers in embedded systems, highlighting the pain of manual testing in helicopter avionics, the chaos of managing requirements with Word and Excel in Dropbox for medical devices, and the technical debt of massive #ifdef blocks in legacy machine tool software. They discuss the industry's slow adoption of modern software practices like version control and CI/CD, contrasting embedded development with web development standards. The episode concludes with book recommendations including 'The Phoenix Project' and 'Team Topologies', and reflections on the future of IoT security and agile adoption in hardware.

  • The Amp Hour · 1h 08m

    An Interview with Jack Ganssle (2nd)

    Jack Ganssle, author of the Embedded Muse, discusses the evolution of embedded firmware, highlighting the shift toward cloud-connected platforms and the acquisition of RTOS providers like FreeRTOS by Amazon and ExpressLogic by Microsoft. He critiques the current state of vendor-supplied software, praising Renesas' Synergy platform for providing fully tested, guaranteed software components, while noting the decline of legacy RTOSs like VxWorks. Ganssle emphasizes that firmware development requires rigorous design and quality processes, arguing that jumping into code without solid requirements leads to catastrophic failures, as seen in recent medical device and aviation incidents.

  • Oxide and Friends · 2h 03m

    The Pragmatism of Hubris

    Cliff Biffle, principal engineer at Oxide Computer Company, explains the origins of Hubris, an embedded operating system designed for Oxide's rack-scale computers, drawing on his prior experience with Project Loon at Google. The team evaluated existing options like Tock and QNX but chose to build Hubris in Rust to ensure memory safety and value alignment, leveraging a software-hardware co-design approach to bypass the risks of secure FPGAs. Key technical decisions include using a minimal kernel, self-describing build archives, and advanced debugging tools like Humility to manage complex embedded systems without dynamic loading or self-hosting constraints.

  • The Pragmatic Embedded Podcast · 53m

    François Baldassari from Memfault on IoT Observability

    François Baldassari, founder and CEO of Memfault, discusses the evolution of embedded software and the critical need for IoT observability tools. He recounts his experience at Pebble, where a lack of field data led to a severe firmware update bug affecting Android users, which inspired the creation of Memfault's crash reporting and OTA solutions. Baldassari argues that modern embedded teams must adopt agile practices, such as decoupling software from hardware via emulators and implementing 'day 0 updates,' to iterate effectively. He highlights persistent industry challenges, including C language memory management issues, code space constraints, and the emerging crisis of embedded security and privacy.

  • The Pragmatic Embedded Podcast · 56m

    Modern Embedded Systems Programming with Miro Samek

    Miro Samek, founder and CEO of Quantum Leaps, explains why traditional embedded architectures like superloops and RTOS lead to 'spaghetti code' and concurrency bugs, advocating instead for event-driven active objects and hierarchical state machines. He details how this approach eliminates race conditions and mutexes by enforcing a 'no sharing' principle, thereby improving testability and development velocity. Samek also discusses the importance of using lightweight modeling tools to generate code from state diagrams, ensuring the model remains the source of truth in an agile workflow.

The summary, chapters and topics are generated from the episode’s audio by this directory, not written by Embedded.fm. The episode itself belongs to its publisher.