All Posts

12 posts

Dotfiles, Part 5: Custom Tooling and the Platform Edges

A Cloudflare CLI with a tunnel state machine, GNU Stow inside Nix, triple-platform service modules, secure credential hashing, declarative ZFS, and dev shell bootstrapping.

nixtoolinginfrastructure

Dotfiles, Part 4: Network-Aware Services — From Split Tunneling to Topology-Driven DNS

ProtonVPN with network namespace split tunneling, ad-blocking derived from VLAN topology, DHCP-to-DNS sync, and dynamic WireGuard peer onboarding — all as composable NixOS modules.

nixnetworkingsecurityinfrastructure

Dotfiles, Part 3: Secrets, Fleet Management, and the User Bridge

How I bootstrap 9 machines with sops-nix, clan-core, and a user module pattern that solves the secrets chicken-and-egg problem — plus service exposure via Caddy and Cloudflare Tunnel.

nixsecurityinfrastructure

Dotfiles, Part 2: A NixOS Home Router — From VLANs to Declarative DNS

Building a full home router as composable NixOS modules — typed options, auto-derived nftables rules, VLAN isolation, and a custom Go CLI for Cloudflare DNS sync.

nixnetworkinginfrastructure

Dotfiles, Part 1: Why Dendritic Flakes Work for Managing 9 Machines

How I use import-tree, flake-parts, and clan-core to manage NixOS, macOS, and WSL machines from a single flake — without maintaining a central import list.

nixdotfilesinfrastructure

DC Mini Part 7: Developer Ergonomics — xtask, Nix, and the Prelude

Build orchestration with xtask, reproducible toolchains with Nix flakes, and a prelude pattern for managing imports in a complex embedded workspace.

rustembeddedeegopen-sourcenixdeveloper-experience

DC Mini Part 6: Multi-Priority Executors, DFU, and a PWM Neopixel

Interrupt-driven task prioritization with embassy, a watchdog-protected dual-bank bootloader, and driving WS2812 LEDs with DMA — the infrastructure glue of DC Mini.

rustembeddedeegopen-sourceembassydfuneopixel

DC Mini Part 5: One Protocol, Two Transports

How DC Mini defines its RPC interface once and serves it identically over USB and BLE — with code generation for Python and Rust clients.

rustembeddedeegopen-sourcebleusbrpc

DC Mini Part 4: Event-Driven Orchestration with derive(From)

How DC Mini uses a central event bus and inversion of control to keep async sensor tasks decoupled — and why adding a new sensor is just a match arm.

rustembeddedeegopen-sourceasyncembassy

DC Mini Part 3: The Bus Manager — Power-Aware Peripheral Sharing Without Alloc

Building a generic bus lifecycle manager in no_std Rust that lazily initializes, reference-counts, and tears down shared peripherals — all without a heap.

rustembeddedeegopen-sourceno_std

DC Mini Part 2: Typed Resource Bundles and the BSP Pattern

How DC Mini uses Rust's type system to enforce pin allocation at compile time, preventing an entire class of embedded bugs.

rustembeddedeegopen-sourceembassy

DC Mini Part 1: Designing Firmware for a Wearable EEG

A look at the architecture behind DC Mini — an open-hardware 16-channel EEG wearable built with Rust, embassy-rs, and a three-crate firmware design.

rustembeddedeegopen-source

No posts found.