Index of entries.
- Entries
- 016
- Sections
- A - E
- Span
- 03.2026 - 07.2026
- Series
- 1 active, 5 parts
Everything published, numbered in the order it was written. Filter by section, or follow the radio series from the first antenna to the last spec sheet.
- 09.10.2026011 / How a 12 KB Audit Ring Buffer Killed My TLS Handshake (And I Chased the Wrong Ghost for an Hour)Where the lessons stand: the LVGL pool moved to PSRAM too, and post-deploy device checks are now in the deploy script.
- 09.10.2026010 / Enterprise-Grade Crypto on a $20 Board: Securing Modbus With ESP32-S3The LVGL pool moved to PSRAM the next day (free internal heap at boot: 22 KB to 110 KB), and memory health now reaches Central.
- 09.10.2026008 / Modbus RTU Over USB: Five Lessons From a Year of Polling Solar InvertersFC16-only writes, registers never to write, a second vendor with different bus limits, and treating silence as a fault.
- 09.10.2026007 / Two Docker One BugBoth fixes now live in code: pinned DNS on the edge, and a deploy script that recreates the stack together and checks a real device.
- 09.10.2026001 / FutureGrid - Building a Smart Energy Platform From ScratchSeven months on: a second inverter vendor, ESP32 edge firmware, signed OTA and a SIEM.
Software-Defined Radio for SIGINT
From one RTL-SDR stream to a full receive chain: a wideband hub, smart water meters, LoRa below the noise floor, a spectrum survey and the hardware that mattered.
- Part 01No. 012
Listening to an Entire 868 MHz Band at Once: Building an SDR Hub
29.06.2026 / 5 min - Part 02No. 013
Reading My Water Meter With a $30 SDR - and the Factory Key Nobody Changed
01.07.2026 / 5 min - Part 03No. 014
Decoding LoRa Below the Noise Floor: A Dechirp Demodulator in 80 Lines of numpy
03.07.2026 / 4 min - Part 04No. 015
Mapping the Spectrum: 24 to 1766 MHz in Nine Seconds
05.07.2026 / 4 min - Part 05No. 016
What SDR to Buy for SIGINT - and the One Spec That Mattered Most
07.07.2026 / 4 min
Infrastructure & AI
Hybrid clusters, GPU inference, containers, Cloudflare edge.
04 entriesTwo Docker One BugUpdated 09.10
A stale DNS forwarder in an 8-month-old container. A missing env var from a forgotten Compose overlay. Two silent failures, same evening, both hiding in plain sight.
Deploying a Next.js Site to Cloudflare Workers - The Full Walkthrough
End-to-end guide to deploying a Next.js site on Cloudflare Workers with a custom domain. The gotchas nobody warns you about.
Adding an RTX 5090 GPU Server to a Mac Mini Cluster
A Ryzen 9 9950X3D + RTX 5090 build running Ubuntu, Ollama, and ComfyUI. Custom ISO, driver gotchas, and benchmarks.
Building a Hybrid AI Cluster - Mac Mini, Linux, and NVIDIA Under One Roof
A hybrid compute cluster mixing Apple Silicon and NVIDIA GPU on Linux. Thunderbolt mesh, distributed inference, headless management, and every gotcha along the way.
Security
LLM safety pipelines, IoT key management, responsible disclosure.
02 entriesReading My Water Meter With a $30 SDR - and the Factory Key Nobody ChangedSDR 2/5
Wireless M-Bus, a one-line DSP bug that produced zero decodes for a day, and the uncomfortable discovery that a whole neighbourhood of smart water meters ships with the same factory AES key.
Building an LLM Security Pipeline - Guard, Classify, Log Everything
LLM Guard for input scanning, Llama Guard 3 for output classification, Langfuse for observability. A complete security pipeline for self-hosted LLMs.
Embedded & IoT
ESP32, Modbus, TLS on constrained hardware, energy.
04 entriesHow a 12 KB Audit Ring Buffer Killed My TLS Handshake (And I Chased the Wrong Ghost for an Hour)Updated 09.10
I shipped a 12 KB BSS allocation, mbedtls handshake started returning MBEDTLS_ERR_SSL_ALLOC_FAILED, I misdiagnosed it as a PKI problem on the server side, re-enrolled a device that didn't need re-enrolling, then finally read the full serial log and found the actual cause. A postmortem with timestamps, the exact error chain, and the lessons I'm now actually following.
Enterprise-Grade Crypto on a $20 Board: Securing Modbus With ESP32-S3Updated 09.10
How I put mutual TLS, X.509 certificate validation, and a five-tab LVGL dashboard on top of a 50-year-old Modbus RTU bus, on a $20 ESP32-S3 board with 512 KB of SRAM. Memory map, bisect tables, security architecture, and the case for why low-cost hardware is now a real competitor to $2000 industrial gateways.
Modbus RTU Over USB: Five Lessons From a Year of Polling Solar InvertersUpdated 09.10
USB-RS485 adapter quirks, pymodbus CPU bugs, silent data corruption, and the wiring trap that cost me a full day. Hard-won lessons from running Modbus RTU on a Raspberry Pi 24/7.
FutureGrid - Building a Smart Energy Platform From ScratchUpdated 09.10
An edge-to-cloud energy management platform. Custom hardware, mTLS, multi-inverter support, cooperative energy balancing, and a lot of debugging WiFi hotspots on embedded Linux.
Radio & DSP
SDR, LoRa, wM-Bus, spectrum reconnaissance.
04 entriesWhat SDR to Buy for SIGINT - and the One Spec That Mattered MostSDR 5/5
RTL-SDR vs SDRplay RSP1B vs HackRF Pro, why 14 bits beat a wider tuner, and how to split three radios into specialised roles instead of buying three of the same thing.
Mapping the Spectrum: 24 to 1766 MHz in Nine SecondsSDR 4/5
Before you decode anything, you survey. A fast frequency-hopping power sweep across the full RTL-SDR range, what it found over my house, and the tuner artefacts that will fool you if you trust the peaks blindly.
Decoding LoRa Below the Noise Floor: A Dechirp Demodulator in 80 Lines of numpySDR 3/5
How LoRa's chirp modulation works, a from-scratch dechirp demodulator validated down to -5 dB SNR on synthetic frames, and an honest negative result: my rooftop signal was simply too weak. A lesson in proving your tools before blaming the air.
Listening to an Entire 868 MHz Band at Once: Building an SDR HubSDR 1/5
One RTL-SDR stream, fanned out to a wM-Bus meter decoder, a wideband burst hunter, and a 200-protocol device classifier - all running at the same time without ever stopping the listen. Architecture of a DIY SIGINT hub.
Leadership & Projects
How teams work, and the long-running builds.
02 entriesSilent Leadership: A Manifest
Why I invest in people over processes, build teams that understand products deeper than the vendors themselves, and only open support cases when we find real flaws.
WordHunt - From Weekend Hack to a Platform With 22 Milestones
A word game platform that started as one game and grew into a multi-game educational ecosystem with guilds, live classrooms, achievements, and mobile apps.