99: You Can Say a Boat (Repeat)

Embedded.fm · 2 Feb 2017 · 1h 23m

What this episode covers

Andrei Chichak, a systems developer at CBF Systems, discusses the MISRA-C coding standard, its origins in the British automotive industry, and its application in high-reliability embedded systems. He explains how static analysis tools like PC Lint help enforce rules to prevent bugs, citing the Apple 'goto fail' incident as a cautionary tale. The conversation also covers the ethical responsibilities of engineers, contrasting the regulated professional engineering title in Canada with the lack of formal ethics training in many US computer science programs.

Mentioned

Companies
CBF Systems, Apple, JPL, ARM, Toyota, Lucas, Ford, Lotus, Jaguar, Dow Chemical, IAR
Chips
Cortex-R, PIC
Tools
PC Lint, GCC
Also
MISRA-C, ISO 26262, Plum Hall

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 Pragmatic Embedded Podcast · 38m

    The Matthew Test with Matthew Eshleman - Part 1

    Matthew Eshleman, a principal embedded software engineer and consultant formerly at Toshiba, joins Jeff Gable and Luca to discuss his 'Matthew Test,' a 15-step checklist for evaluating embedded software teams. Modeled after Joel Spolsky's Joel Test, the episode covers foundational practices such as using source control (specifically Git), automating build and release processes, and implementing continuous integration. Eshleman argues that unlike web development, embedded engineering requires 'reasonably complete specifications' and early risk management due to the high cost and long lifecycle of hardware changes.

  • The Pragmatic Embedded Podcast · 43m

    Systems Architecture with Maik Pfingsten

    Maik Pfingsten, an independent systems engineering professional, explains how to apply model-based systems engineering (MBSE) using SysML to complex embedded systems in safety-critical industries like automotive and medical devices. He argues that defining system boundaries and high-level interfaces early prevents the 'big design up front' pitfalls while allowing for necessary iteration between architecture and prototyping. Pfingsten emphasizes that software behaves differently than hardware or mechanics, requiring specific architectural rigor to manage complexity and ensure safety without relying on impossible zero-failure strategies.

  • The Pragmatic Embedded Podcast · 33m

    Technical Debt in Embedded Systems Development

    Jeff Gable and Luca engineer discuss technical debt in embedded systems, defining it as trading present velocity for future maintainability. They identify specific forms of debt, including poor hardware abstraction, untracked hardware revisions, and the lack of automated testing. The hosts argue that while prototyping may justify debt, safety-critical products require rigorous refactoring and visible tracking of these issues to avoid slowing down development teams.

  • 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 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.