Workbench

The toolshed. Engineering essays with the codebase clipped to the back. Builds, opinions, post-mortems.

4 entries

  1. DISPATCH 004 STATUS · SHIPPED

    Moving data you can't afford to lose

    The boring disciplines behind a data migration you can actually prove: irreplaceability order, checksum gates, offsite-restore tests, uid preservation, and verifying by function.

    • zfs
    • rsync
    • restic
    • nfs
  2. DISPATCH 003 STATUS · SHIPPED

    Draining a server with the lights on

    Retiring a flaky, load-bearing box in an afternoon: DNS, public ingress, home automations and all, with nobody noticing.

    • docker-swarm
    • dns
    • cloudflare-tunnel
    • observability
  3. DISPATCH 002 STATUS · SHIPPED

    Blueprint: Migrating a 70-Device Zigbee Network to a New Coordinator Stack — Without Re-Pairing

    A field-tested runbook for moving Zigbee2MQTT from an ember (EFR32) coordinator to a zstack (CC2652P) one in place — including the undocumented channel_mask trap, a socket-contention root cause, and what an AI pair-operator actually contributed. With three postscripts: the beta-firmware auto-update ambush, the week-long hunt that ended in a wrong-board-variant firmware and a Wi-Fi AP squatting on the mesh's spectrum, and a 72-hour soak that finally turned the claim into proof.

    • zigbee2mqtt
    • zigbee-herdsman
    • zstack
    • home-assistant
    • mqtt
  4. DISPATCH 001 STATUS · SHIPPED

    An EPUB, via email.

    why mcp-readwise has fourteen tools, but the one that actually mattered ships markdown to your Reader Library by SMTP — and what that detour says about API design.

    • python
    • fastmcp
    • pandoc
    • aiosmtplib
    • resend
    • docker