489: Constructive Cat

Embedded.fm · 16 Nov 2024 · 1h 01m · Episode 489

What this episode covers

Elecia White and Christopher White discuss strategies for solo developers to conduct effective code reviews, such as using Git branches, PR templates, and automated static analysis to gain distance from their own code. They then provide a detailed technical explanation of GDB (GNU Debugger), covering the compilation process, debug symbols, and the architecture of cross-debugging via GDB servers and hardware programmers like J-Link and ST-Link. The episode also features Elecia White discussing her origami art installation at the Aptos Public Library and her Python-based pattern generation tools.

Most relevant to

makers and hobbyists and early-stage companies

Topics

Mentioned

Companies
Memfault, Embedded Artistry
Products
Looks Good to Me, Nand to Tetris
Tools
GDB, J-Link, ST-Link, OpenOCD, STM32Cube IDE, VSCode, Clang-Format, Jenkins, GitHub Actions

Other shows on the same ground, closest first.

  • The Pragmatic Embedded Podcast · 53m

    Terrible Habits of the Solo Developer

    Jeff Gable and Luca Jani, both solo embedded software consultants, discuss the unique challenges of working alone, such as multitasking pressure and wearing multiple hats. They identify five bad habits: skipping documentation, avoiding code reviews, making poor architectural decisions, neglecting simulators, and failing to make code easy for others to take over. The hosts propose solutions including hiring third-party reviewers, using LLMs for low-level checks, forming mastermind groups, and enforcing self-imposed processes to maintain quality and sanity.

  • Oxide and Friends · 1h 34m

    Debugger-Driven Development

    Bryan Cantrill and Adam Leventhal host Oxide colleagues Dave Pacheco, John Gallagher, Alan Hanson, and Eliza Weisman to discuss debugger-driven development at Oxide Computer Company. They detail the creation of omdb, a domain-specific debugging tool that allows developers to inspect and modify internal state across components like Nexus, CockroachDB, and Crucible. The team explains how omdb accelerated the development of complex systems like Reconfigurator and Fault Management by providing immediate, visual feedback and enabling incremental deployment of incomplete features. The episode highlights how this approach reduced risk, improved demo quality, and allowed the team to ship robust, rack-scale hardware and software faster.

  • The Amp Hour · 1h 01m

    Rubber Ducking

    Dave Jones and Chris Gammell discuss engineering troubleshooting methodologies, including 'rubber ducking' and the importance of engineering notebooks, illustrated by Chris's debugging of an STM32 timer using GDB. They examine the market for low-cost electronics from China, with Dave Jones analyzing an $8.70 precision instrument found on AliExpress, and discuss the history and current state of companies like Motorola and Atari. The hosts also cover Jerry Ellsworth's new Kickstarter for the Cast AR augmented reality headset and the commercial availability of Boston Dynamics' Spot robot.

  • Oxide and Friends · 1h 30m

    On Code Review

    Bryan Cantrill, Adam Leventhal, and Kendall Morgan discuss the nuances of code review, contrasting modern digital tools with historical in-person practices at Sun Microsystems. They share specific war stories, including a DTrace integration bug caused by removing a single interrupt line and an n^3 algorithm in SCSI target code, to illustrate the importance of context and scale. The group debates the value of empathy, tooling choices like GitHub and Gerrit, and strategies for introducing code review cultures in organizations that resist them.

    8 chapters
  • Oxide and Friends · 1h 30m

    Debugging Methodologies

    Jordan Hendricks and Luqman Aden of Oxide Computer Company detail their methodologies for debugging complex hardware and compiler issues. Hendricks explains how he used the KMDB in-situ debugger to diagnose an NVMe reset hang, discovering that switching from abrupt to normal shutdown notifications resolved the issue. Aden describes his process for debugging a rustc segfault involving inline assembly in async blocks, using LLVM IR analysis and Rust Analyzer to isolate a bug in the compiler's code generation. The episode also covers a third case involving a triple fault caused by undefined behavior in a bare-metal bootloader, highlighting the importance of tooling and collaborative debugging culture at Oxide.

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.