Skip to content
Artwork for The TMPDIR podcast

The TMPDIR podcast

TMPDIR

TMPDIR is a podcast about embedded Linux, Yocto/OpenEmbedded, Zephyr, and IoT product engineering. Cliff Brake and Khem Raj dig into BSPs, OTA updates, Linux kernel and device tree work, firmware and RTOS development, build systems (BitBake, Kas), and the editor/CLI tools embedded engineers actually use day to day.

Play
  • 20 episodes
  • monthly
  • Avg 45 min
  • English
  • #54
    August 14 · 18 min

    Our Podcast Workflow: Zola, VDO.Ninja, OBS, and Claude Code

    Available on your favorite podcast platform. In this episode, Cliff and Khem walk through the complete toolchain behind this podcast: self-hosted static site generation, a virtual recording studio built on WebRTC, and an automated publishing workflow. After 53 episodes and six years since our July 2020 start, the process has grown into something we can run end to end in minutes, and we are happy to share the whole recipe. Hosting is a static website built with Zola, a Rust static site generator. We ran Hugo with a podcast theme for years and recently switched; both build a large site in fractions of a second, and Zola is a little cleaner for our needs. A podcast is fundamentally an RSS feed, much like a blog. Apple, Spotify, and YouTube consume that feed. The work in self-hosting is generating the right RSS tags and the metadata Apple expects. simplepod, the Zola theme Cliff wrote for this show. One directory of episodes in, a complete podcast feed out. We built it after running into limits with the more complex Hugo theme. Getting listed: register with Apple, Spotify, and YouTube, and the remaining directories generally find you from there. The server is a small Linux VPS at about $5 a month, fronted by Caddy for automatic HTTPS. Recording with VDO.Ninja: browser-based WebRTC built for podcasting. The server arbitrates the call and then hands off to a direct point-to-point connection, so latency stays as low as it can be. The recording trick we like most: VDO.Ninja spawns a headless Chromium instance that joins as another participant, and OBS records that. No desktop audio capture and no hand-mixing of mic and speaker levels, since VDO.Ninja normalizes levels across participants. Tips for effective audio in podcasts and video conferencing, the checklist we have collected on our forum over the years: use a headset with a built-in mic or a studio mic rather than a laptop microphone, and prefer wired connections for both network and audio. Why latency matters. Even a few hundred milliseconds starts to feel clunky. Cliff's theory is that this is what makes video calls tiring: you spend effort subconsciously working out whether it is your turn to speak. Post-processing is light: Audacity pulls the audio out of the OBS recording, we add intro and outro music, and run compression to optimize levels. Good mics mean we rarely need noise filtering. Redundant recording. Everything is captured locally, so both of us run OBS, especially with a guest on the call. Publishing is a Claude Code skill: it checks prerequisites, scaffolds the episode from a template, transcribes with Whisper in a Docker container, builds the outline and metadata from the transcript, and commits. An rsync script deploys the site in seconds. Start with a shared outline. A dozen lines covering topics and order takes most of the stress out of being on a podcast, for hosts and guests alike. On the list next: scripting the audio processing to add intro and outro and trim silence, and a video version for YouTube using VDO.Ninja's layout and director controls. Discuss this episode at our community site.

  • #53
    July 22 · 1 hr 3 min

    Refactoring English: Writing and Self-Publishing with Michael Lynch

    Available on your favorite podcast platform. In this episode, Michael Lynch returns to discuss finishing and self-publishing Refactoring English, his book on effective writing for software developers. Michael is a former Microsoft and Google engineer who founded and sold the TinyPilot hardware business, and writes about indie software at mtlynch.io. Where the book stands: written out of order over 19 months against a six-month estimate, now in its first full read-through, with a 1.0 release targeted for mid-August. He treats the ebook like software — ship 1.0, then keep improving. Why a writing book for developers when 80–90% of the techniques are universal: the value is in the framing and the examples — commit messages, pull request descriptions, and design documents rather than generic prose. Structuring for return on investment. Reader surveys said one thing and reader confusion said another, so he ordered chapters so that someone who stops a third of the way through still gets the most value. Chapter two is a single page: read your writing aloud. Writing in your own voice. Readers rejected a chapter on "content marketing" and accepted the same material as "finding customers through blogging" — people buy the book because they want his thinking, not the expected framing. AI and writing: why relying on AI parks you at a local maximum, and Michael's rule that AI should act as a teacher and never write into your documents. The biggest anti-pattern he sees in developer writing — meandering into implementation details before establishing why the reader should keep going — and the journalism parallel of the inverted pyramid. Writer's block, focus, and phase separation: writing and looking things up are different activities, and mixing them costs you the flow state. Releasing in public: a Kickstarter that went from 60% to 120% of goal in the final days after a Hacker News front page, and how early access feedback supplied motivation more than it supplied edits. Cutting aggressively — publishing less than half of what he writes, "kill your darlings," and using a Git repo as the safety net that makes cutting easy. Self-publishing lessons: regional pricing (and why Stripe makes it harder than it should be), cross-promotion learned from an indie romance novelist, and roughly 600 customers to date. The toolchain: Asciidoctor for PDF, HTML, and EPUB output and its limits on layout control; Nix for reproducible builds and pre-commit checks; Hugo for the website; a custom word-word tool for repeated words; Cliff suggested Typst as a Word replacement for nicely formatted PDFs like datasheets. Reading recommendations: The Elements of Style, Joel Spolsky's software writing, and Write Useful Books by Rob Fitzpatrick. Discuss this episode at our community site.

  • #52
    April 24 · 1 hr 8 min

    Space Grade Linux, Yocto, and Embedded Linux in Orbit with Tim Bird

    Available on your favorite podcast platform. In this episode, Tim Bird (Sony) joins us to discuss Linux in space: Tim's path from early embedded Linux at Lineo (Sharp Zaurus) to 20+ years at Sony on cameras, TVs, phones — and now Sony's space work (Space Communications Corp, the SLIM micro rover, and the STAR SPHERE satellite). How much Linux is already in orbit: ~50% of satellites by project, ~90%+ by raw count thanks to Starlink's 10,000+ Linux-based satellites. The Space Grade Linux (SGL) project: modeled on Automotive Grade Linux, currently an ELISA work group, targeting a standalone Linux Foundation project in 2026. Delivers a meta-sgl Yocto layer with planned integrations for Space-ROS, Core Flight System, and F Prime. The "big five" challenges of space — radiation, thermal cycling, vacuum, launch vibration, and no service calls — and how commodity hardware (Ingenuity's Qualcomm processor, Perseverance's base station) is pushing past traditional rad-hard designs. Emerging work on fault-tolerant file systems (FTRFS, ZFS), QEMU-based radiation simulation, OTA updates at fleet scale (SpaceX Starlink), and why AI workloads on orbit favor a general-purpose OS. How to get involved: monthly SGL calls, the meta-sgl repo at github.com/elisa-tech, and the BeagleV-Fire reference board. Advice for newcomers: embedded is in a golden age — start cheap (Raspberry Pi, Arduino-based kits like CrunchLabs), blink some LEDs, and grow from there. Discuss this episode at our community site.

  • #51
    January 30 · 48 min

    2025 Review

    Available on your favorite podcast platform. In this episode, we reflect on 2025: Intro and theme Cliff and Khem look back on 2025, focusing on how AI, Zephyr/Yocto, and tooling changed daily engineering work. AI as co-developer Khem shifts from hand-written scripts to delegating tasks to AI as a co‑developer, not an autonomous agent. Cliff adopts terminal-first AI tools (Cloud Code, etc.) for Bash, Ansible, Dockerfiles, and content workflows (newsletter/blog, diagrams). Doc Driven Development workflow Cloud Code plugin: Doc Driven Development, part of Cliff’s Claude plugins: tmpdir-claude-code-marketplace. Workflow: write docs → AI generates plan → review → AI generates code, treating AI like a compiler whose inputs (docs/plans) are versioned. Zephyr and AI-friendly context Work with Zephyr (and West) keeps BSPs and app code in Git repos, making it easy for AI tools to see full build context and outperform GUI‑centric MCU tools with hidden code. Zephyr is expected to become the default RTOS as capable MCUs remain inexpensive. Yoe, Yocto, Jetson, and OTA Jetson Nano and AGX Orin have been added to the Yoe Distribution as reference platforms with swupdate-based OTA and a rootfs+data partitioning strategy aimed at real products, not demos. A rolling-release Yocto model plus meta-tegra’s upstream‑first approach keeps changes small and manageable. Staying close to upstream and ensuring BSP changes land there first is called out as key to long-term maintainability of embedded products. Kas and project structure The Yoe Distro is migrating from shell-based project definitions to Kas for more structured, composable project descriptions and easier reuse/inheritance. Editor and shell stack Helix editor: helix. Yazi file manager: yazi or org: yazi-rs. Lazygit: lazygit. Zellij terminal workspace: zellij. Cliff standardizes on Helix plus Yazi, Lazygit, and Zellij for a fast terminal environment; Khem aliases vi to Helix after finding it better for huge files than Vim-with-plugins. Khem experiments with Nushell’s table-centric pipelines, seeing potential with AI but noting syntax incompatibility with traditional shells. Custom tools: BRun and HFID BRun (Cliff’s project): brun. BRun provides a YAML-defined, local workflow runner (GitHub Actions–like) for native Yocto builds, with chained tasks and smart notifications (emails, Notify.sh, tail logs on failure). HFID is provided as a hosted service (not open source); concept and usage are described at HFID and in posts linked from BEC Systems. Desktops, Omarchy, distros, and servers Khem runs Hyprland tiling on Arch for low-memory build machines while still using KDE elsewhere; Arch makes switching easy at login. Omarchy, DHH’s Arch+Hyprland Arch based distro for developers, is highlighted as a polished, opinionated entry point for new Linux users: omarchy.org. Omarchy is great for people who want a ready-made Arch+Hyprland setup, while vanilla Hyperland is a better fit for experienced users who already have strong preferences. Arch on servers works well when combined with Ansible-based configuration and non-golden-machine practices so systems can be rebuilt quickly if needed. Discuss this episode at our community site.

  • #50
    Dec 23, 2025 · 1 hr 20 min

    RISC-V and FPGAs with Ted Speers from Microchip

    Available on your favorite podcast platform. In this episode, we discuss with Ted Speers the history of FPGAs and the inclusion of RISC-V technology in Microchip's latest PolarFire products. Ted is an industry veteran and shares his experiences, including why they chose RISC-V and the resulting benefits. Pay special attention to his general advice starting 1:15:26. Strategy is not being some smart guy figuring out we are going to do this, this, and this, and it's all going to work out. Strategy is creating options for yourself. You always want to create optionality. As soon as you get locked into one track, that may lead to failure. So creating optionality, if you are a young person, is what you want to do with your career. One way to create optionality is to meet people. The way you make your own luck is create the options. Then you are in a robust, anti-fragile position. Ted recommends books by Nassim Nicholas Taleb such as The Black Swan. Discuss this episode at our community site.

  • #49
    Nov 22, 2025 · 1 hr 30 min

    Mastering Embedded Linux Development with Chris Simmonds and Frank Vasquez

    Available on your favorite podcast platform. In this episode, we discuss Embedded Linux with the authors of Mastering Embedded Linux Development. Highlights: How this book came to be. What is new in the fourth edition. Development platforms used in the book. Common Embedded Linux pitfalls. Why Yocto instead of Ubuntu. Android in embedded systems. And lots more ... If you are interested in Embedded Linux, this book is an excellent reference that covers a lot of topics (710 pages!!!). You can buy this book at most of the usual places. I got a DRM free version at Packt. Discuss this episode at our community site.

  • #48
    Oct 10, 2025 · 31 min

    Clang/LLVM in Yocto

    Available on your favorite podcast platform. Clang was recently moved from a seperate layer into oe-core. In this episode Khem shares why this happened and why Clang may be a good fit for your product development. Discuss this episode at our community site.

  • #47
    Jul 25, 2025 · 1 hr 10 min

    Matt Madison, the latest with NVIDIA Embedded and other technologies

    Available on your favorite podcast platform. Today we catch up with Matt Madison, the maintainer of the meta-tegra layer for NVIDIA Jetson embedded products. Matt was also on our podcast last year. Discuss this episode at our community site.

  • #46
    Jun 27, 2025 · 55 min

    Avocado OS with Justin Schneck

    Available on your favorite podcast platform. In this episode, we visit with Justin Schneck from Peridio about how Avocado OS is solving various problems in the embedded Linux space. Avocado's attributes are composability, extensibility, and security. This platform composes embedded runtimes, which seems like a practical alternative to containers at the edge. Discuss this episode at our community site.

  • #45
    May 30, 2025 · 23 min

    The Yoe Rolling Release

    Available on your favorite podcast platform. In this episode, we discuss rolling releases, some of the advantages, and how we build the Yoe Distribution, which is a rolling release embedded Linux distro. Discuss this episode at our community site.

  • #44
    May 27, 2025 · 55 min

    Michael Lynch: Effective Writing for Developers

    Available on your favorite podcast platform. In this episode, we learn: how the writing process works for Michael how it has affected his career The new book Michael is working on to help developers become more effective writers Good writers do not necessarily like writing. "I hate writing, but I love having written." If you are interested in becoming a better writer, sign up for updates at Refactoring English. Also check out Michael's blog. During the show, Cliff shared a quote from Leslie Lamport: "If you're thinking without writing, you only think you're thinking." Discuss this episode at our community site.

  • #43
    May 9, 2025 · 55 min

    RISC-V and LLVM with Alex Bradbury

    Available on your favorite podcast platform. In this episode, we learn about Alex's work with LLVM on RISC-V. Alex has been involved with RISC-V since it was first released and recently has been focused on making LLVM support better. Alex shares some details about this work, as well as general ideas on how he works. Alex is also the author of the LLVM Weekly Newsletter, which he has published for over 10 years. Discuss this episode at our community site.

  • #42
    Apr 4, 2025 · 22 min

    Simplicity

    Available on your favorite podcast platform. In this episode, we discuss what is simplicity, why does it matter, and how to get there. Discuss this episode at our community site.

  • #41
    Feb 28, 2025 · 8 min

    Product vs. Technology

    Available on your favorite podcast platform. In this episode, we discuss the difference between a product and technology. A couple related blog posts from Khem on this subject: Product and platform/technology Opensource in context of product and platform/technology - Example Discuss this episode at our community site.

  • #40
    Feb 14, 2025 · 20 min

    New Tools in 2024

    Available on your favorite podcast platform. In this episode, we discuss some of the new tools we started using (more) in 2024 that can help you become a more productive developer. Zellij Helix Terminals Alacritty Kitty Ghostty tio fd rg Perplexity Yazi LazyGit Discuss this episode at our community site.

  • #39
    Dec 13, 2024 · 17 min

    Unintended open source forks

    Available on your favorite podcast platform. In this episode, we discuss the tendency to end up on a hard fork of an OSS project, how this happens, and why we should consider another model. Discuss this episode at our community site.

  • #38
    Nov 1, 2024 · 54 min

    Open Hardware with Jason Kridner

    Available on your favorite podcast platform. In this episode, we learn how the BeagleBoard Foundation does open hardware and how their products can be useful in your product development efforts. Notes: how Beagleboard products are different than Raspberry PIs why open hardware is important overview of some of Beagleboard.org's products why upstreaming development is important how to do things right discussion about RISC-V and more See the Beagleboard.org main site and documentation site for more information. Discuss this episode at our community site.

  • #37
    Oct 18, 2024 · 28 min

    Recent experiences building a connected device with Zephyr

    Available on your favorite podcast platform. In this episode, we discuss our recent experiences building a product using Zephyr, and how Zephyr has helped us move fast and quickly integrate advanced features like a HTTP server, non-voltile store in flash, device support, etc. We also discuss how to set up a project in Zephyr and have built a project template that demostrates how to use the Zephyr T2 workspace setup. This template also includes common things projects need like a web application example. Zephyr SimpleIoT Discuss this episode at our community site.

  • #36
    Sep 27, 2024 · 46 min

    Bob Dotterer -- 3D Printing in Manufacturing

    Available on your favorite podcast platform. In this episode, we discuss how 3D printing in manufacturing can help you by reducing cycle times, shorten lead times, etc. Outline: what makes companies successful growing a company 3D printing in design and manufacturing design during day, print through night, test in morning, and repeat design for manufacturing production vs hobby 3D printers types of filament print part number and revision into each part manufacturing in-house vs outsourcing Discuss this episode at our community site.

  • #35
    Aug 30, 2024 · 51 min

    Matthew Rassi - an overview of Lean

    Available on your favorite podcast platform. Matthew is an expert in Lean Manufacturing and shares with us an overview of the basic concepts and what has worked for him and the companies he works with. In this episode, we explore how ideas the manufacturing space can also improve our product development efforts. Resources: Matthew's web site The Toyota Way Lean Thinking The Motive Discuss this episode at our community site.

Showing 1–20 of 20 episodes