Notes on Elixir, Rust, Python and the Linux command line — written while building things, mostly so I can find the answer again next year.
The engineering here is mine; some of the prose had help. How these posts get written.
Certificates and mTLS are the easy part. The hard part is identity over a device's whole life: first enrolment, rotation, power loss mid-rotation, and a gateway that was offline for two years.
Parsing every post at build time removes a whole category of problem: no database, no cache, no cold render.
Writing a custom Nerves base image for a CompuLab IOT-DIN-IMX8PLUS by hand: the packaging bugs, the flashing dead end, and the DDR failure that stopped it booting.
▸ show all 5 partsBuilding a Nerves system from scratch for the STM32MP157F-DK2: the boot chain, device trees, and the first attempt at a working build.
▸ show all 4 partsCarrying everything learned on the lab unit into a real, purpose-built Nerves system — without touching the build running in the field.
▸ show all 5 partsAdding proper secure boot to an industrial IoT gateway, on a disposable lab unit, making every mistake where it costs nothing.
▸ show all 10 parts