10: Hands Off, Baby

Embedded.fm · 17 Jul 2013 · 58m

What this episode covers

Jen Costillo, an embedded software engineer transitioning to startups, joins host Elecia White to discuss obscure C and C++ keywords like volatile, static, and const that serve as effective interview questions for identifying experienced firmware developers. They detail how volatile prevents compiler optimization of hardware registers and shared variables, while static provides encapsulation and persistent state, arguing these concepts reveal a candidate's depth of understanding. The conversation also covers the trade-offs of using macros versus inline functions, pragma directives for memory layout, and the importance of reading compiler documentation to leverage these features safely.

Mentioned

Also
Elecia White, Jen Costillo, Christopher White, C, C++, Java, Kyle Compiler, 8051, ARM, MIPS, Power PC, C# (C Sharp), Android

Other shows on the same ground, closest first.

  • The Pragmatic Embedded Podcast · 58m

    Modern C++ for Embedded with Niall Cooling

    Niall Cooling, director at Feabhas, explains how modern C++ (C++11 through C++23) enables safer, more agile embedded development by replacing C-style practices with compiler-enforced safety and modern tooling. He highlights 'quick wins' like `auto`, `constexpr`, and guaranteed copy elision, which improve code readability and performance without sacrificing the efficiency of C. Cooling argues that the true value of C++ lies in its ecosystem of header-only testing frameworks (like Doctest and Catch2), static analysis tools (Clang-tidy), and CI/CD integration, which allow teams to adopt Agile practices like Test-Driven Development (TDD) even in deeply embedded, safety-critical contexts. He contrasts this with the steep learning curve of Rust and emphasizes that successful adoption requires significant investment in training and process improvement rather than just language syntax changes.

  • The Pragmatic Embedded Podcast · 49m

    Buzzword Bingo (or: which modern technologies make sense for embedded?)

    Hosts Jeff Gable and Luca Ingianni evaluate modern development buzzwords for embedded systems, discussing the applicability of web technologies like Kubernetes and Docker, the nuances of CI/CD pipelines, and the practical adoption of Rust and modern C++. They highlight specific tools such as Memfault, Mender, and Renode for observability and simulation, and analyze the role of AI in both device-side machine learning and developer productivity.

  • The Pragmatic Embedded Podcast · 28m

    AI-enhanced Embedded Development (May 2025 Edition)

    Luca, an embedded software expert, discusses his experience at the Embedded Online Conference and a German conference, highlighting an LLM-only hackathon where participants were forbidden from writing code manually. He explains that effective AI-assisted development requires rigorous context management, treating prompts like version-controlled code, and managing external context files to prevent hallucinations. The conversation covers the economic benefits of AI (approx. $0.01 per line of code), the tightening of feedback loops, and the evolving role of developers from coders to AI supervisors and technical product owners.

  • The Builder Circle · 1h 05m

    S2 E1: From Code to Creation: The Building Blocks of Firmware with Elecia White

    Elecia White, founder of Logical Elegance and host of the Embedded FM podcast, explains the unique constraints of firmware development for hardware entrepreneurs. She outlines the typical firmware build-out process, emphasizing the importance of early sensor selection, modular architecture, and critical testing phases like board bring-up and manufacturing validation. White advises founders to insource only their 'secret sauce' algorithms while buying commodities like GPS modules or radios, and warns against common pitfalls such as adding over-the-air updates at the last minute or ignoring market validation.

  • Oxide and Friends · 1h 44m

    Across the Chasm with Rust

    Steve Klabnik and Luqman Aden, engineers at Oxide Computer Company, discuss the evolution of the Rust programming language, focusing on the stabilization of features like `let_chains` and `async/await` as the catalyst for crossing the chasm from early adopters to mainstream systems programming. They analyze how Rust's strict stability guarantees, enforced by tools like Crater, contrast with the burnout risks seen in other language communities, while highlighting specific language features such as inline assembly, const generics, and captured identifiers in format strings that improve developer experience. The conversation also covers the psychological shift required to trust the compiler, the importance of tooling like Rust Analyzer and Clippy, and the community's approach to managing experimental features via nightly builds and RFCs.

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.