#006: Pebble’s Code is Free: Three Former Pebble Engineers Discuss Why It's Important (PART 2/2)

Coredump Sessions · 15 Apr 2025 · 1h 13m · Episode 7

What this episode covers

Brad Murray, former head of Pebble firmware, and Tomas, former developer evangelist at Pebble, discuss the risks and decisions behind building firmware for Pebble smartwatches. They detail a critical OTA update bug that nearly bricked nearly a million devices, which was recovered using a clever BLE-based stack overflow hack. The team also explains how they built a massive developer ecosystem through tools like CloudPebble and the Watch Face Generator, and how they optimized code size to backport Pebble 3.0 to legacy hardware using techniques like Link Time Optimization and bootloader rewriting.

Other shows on the same ground, closest first.

  • Embedded.fm · 1h 12m

    390: Irresponsible At the Time

    Tyler Hoffman, co-founder of Memfault, discusses the challenges of managing firmware updates, device diagnostics, and remote monitoring for millions of IoT devices. He draws on his experience at Pebble and Fitbit to explain why existing cloud platforms are often unsuitable for resource-constrained embedded systems, highlighting the need for secure boot, staged rollouts, and efficient heartbeat reporting. Hoffman details how Memfault’s platform helps engineers detect crashes, track battery life trends, and prioritize bugs by aggregating data from large device fleets. The conversation emphasizes the importance of defensive programming and building robust OTA systems to prevent bricking devices at scale.

  • Embedded.fm · 1h 17m

    395: I Can No Longer Play Ping Pong

    Tyler Hoffman, co-founder of Memfault, explains how his team at Pebble and later Fitbit transformed firmware development by standardizing developer environments, optimizing build systems, and automating debugging. He details the shift from slow, sequential IAR builds to parallel GCC builds using Make and Conda, which reduced build times from 18 minutes to 2 minutes. Hoffman also describes building web applications and GDB Python scripts to enable remote debugging of field crashes without physical debuggers. The discussion highlights the importance of dedicated developer productivity roles and the evolution of tools from one-off scripts to robust, company-wide platforms.

  • The Amp Hour · 58m

    Shiny New Pebble with Eric Migicovsky

    Eric Migicovsky, founder of the original Pebble and CEO of CoreDevices, discusses the relaunch of Pebble and the development of the Index 01 smart ring. He contrasts the early days of Pebble—where he made costly mistakes like designing custom Bluetooth hardware instead of using modules—with the modern ease of finding factories and using off-the-shelf components like the Sifly chip for the new watch. Migicovsky explains the design philosophy behind the Index 01, which prioritizes a two-year battery life and 100% reliability over health tracking, using a Dialog Semiconductor chip to achieve its 'external brain RAM' function.

  • Embedded.fm

    34: Really Big Cabbage

    Elecia White discusses firmware update mechanisms, explaining the risks of bricking devices and the trade-offs between different bootloader architectures. She details strategies for constrained systems, including using external RAM, ping-pong buffers, and security measures like encryption and crypto chips. The conversation covers the 'goat, cabbage, and wolf' puzzle as an analogy for managing update sequences safely. Key technical decisions involve choosing between simple serial updates, complex networked OTA, and secure key management for consumable-based systems.

  • 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 Coredump Sessions. The episode itself belongs to its publisher.