SAM DUMONT
Freelance Cloud & AI Platform Engineer | ex-AWS
Data platforms · Garmin apps · Sensor firmware · Remote-first
// BLOG
// Filter by tag (47)
Cutting a 4K HDR render from 593 to 166 seconds by doing less work
A ten-minute film took 40 minutes to render, and everyone (including the docs) assumed the encoder was the problem. It wasn't. Replaying decode graphs into a discard sink, converting frames before duplicating them, blurring fewer pixels, and the read-ahead that made an NVIDIA T1000 18% slower.
Read more →
Streaming a 4K film through Python because one FFmpeg command ate my disk
One FFmpeg filter graph over twelve 4K clips filled my RAM, then my swap, then my disk. Rewriting assembly as a Python frame loop with constant memory, the HDR and green-frame bugs that came with raw pipes, and a crossfade that went from 37.45 ms to 3.52 ms.
Read more →
Stitching Live Photos when the timestamps lie
In March I thought I'd merged iPhone Live Photos better than Apple. In September my own docs demo was replaying a cyclist. Measuring motion between overlapping clips, knowing when to refuse, and two cheap models that kept getting it almost right.
Read more →
Keeping a 70-clip film in sync: six days in April, 800 samples in September
My film's audio drifted away from the picture. Six days of guessing in April, ended by counting frames by hand in VLC. A hang that wasn't what the first diagnosis said. And in September, the same drift back through a different fade length: 16.7 ms per crossfade, reproduced on a clapper test.
Read more →
Reverse-engineering the Garmin HRM 600: native Running Dynamics from a fake strap
Decoding the Garmin HRM 600's BLE stack (Multi-Link, GFDI, EventSharing protobuf) until a Fenix 8 showed native Running Dynamics from an ESP32 that never touched a chest. A Bluetooth sniffer, a couple dozen probe scripts, an encryption wall, and a decompiled Android app, AI-directed by someone who isn't a reverse engineer.
Read more →
Two BLE identities on one nRF52832: sequential MAC switching for Garmin pairing
How I made one BLE chip serve standard HRS and a custom Connect IQ service simultaneously on a Movesense sensor, by switching the GAP identity address mid-connection on S132 v6.1.1.
Read more →
Backing up GitHub repos properly: git, metadata, and a browsable mirror
A four-tool setup on Kubernetes that backs up all your GitHub repos to NFS bare clones, exports issues/PRs/labels as JSON, and runs a self-hosted Gitea mirror with full metadata. With config examples, API gotchas, the Gitea mirror bug that cost me 3 hours, and why there's no clean incremental metadata sync.
Read more →
Building a custom voice skill for Claude Code
How to extract your writing voice from a corpus of your own text and turn it into a Claude Code skill, using a 3-pass process that produces rules you'd never think to write yourself.
Read more →
Using AI to poison AI
How I used Claude Code to build a five-layer defense system that serves a fake CV to AI crawlers, including the part where Claude refused to help.
Read more →
Reverse-engineering Race-Keeper's .rkd binary format in one afternoon
How I decoded Race-Keeper .rkd telemetry files with Claude Code: GPS, accelerometer, and gyroscope data from a track day in supercars.
Read more →
Adding PEPPOL e-invoicing to a 13-year-old ERP with Claude Code
How I built a full PEPPOL integration for OpenERP 7.0 in 2-3 weeks with Claude: provider abstraction, Belgian tax edge cases, and switching API providers in 4 days.
Read more →