Things I build, break, fix, and write about

16 September 2026
Monitoring radio, transport and core faults

Private 5G resilience does not come from a cheerful dashboard or a nice radio map. I want to see where the attach failed, which path dropped, and whether the core is quietly spoiling the whole thing; otherwise you are guessing, and guessing is a poor plan when the network is already sulking.

16 September 2026
Pre-boot authentication for BitLocker

TPM-only BitLocker is convenient, but convenience is not the same as a proper boundary. BitLocker PINs push that line back to pre-boot, which is where...

15 September 2026
Single-sided BPool joins drain mOCEAN via SideStaking

Ocean Protocol BPool single-sided join exit math is where this one falls apart, and I have a soft spot for bugs that look tidy until another contract...

15 September 2026
ecrecover checks for Lixir Vault permit signatures

Lixir Vault permit signatures looked ordinary until the final check was missing. If `ecrecover` only needs to return a nonzero address, you have not...

Latest blog posts you might like

31 May 2026
CVE-2026-42945: rewrite directive failure mode

nginx rewrite module bugs are the sort I distrust most, because they sit in config that looks harmless until a crafted URI tips it over. I dug through this one and found the usual pattern, stale state...

31 May 2026
Joining R2 Data Catalog tables in R2 SQL

Cloudflare R2 SQL JOINs are useful when the relationship matters more than a single table scan, but I still reach for them with a bit of caution. The syntax is easy enough; the awkward part is keeping...

30 May 2026
Cloudflare Tunnel for local webhook previews

Cloudflare Tunnel is one of those tools I only appreciate after fighting without it. For local webhook previews, a stable hostname matters more than a tidy demo link, and once you need that fixed...

30 May 2026
Cloudflare Artifacts repo-scoped tokens in Wrangler CLI

Cloudflare Artifacts repo-scoped tokens are the bit worth caring about, because they keep Git access tied to one repository instead of a loose account-wide key. I like that. Narrow the boundary, test...

29 May 2026
Cloudflare Radar MRT Explorer in the browser

Cloudflare Radar MRT Explorer keeps the awkward part local, which is usually where it belongs. I prefer that to uploading a route dump to somebody else’s parser and hoping it comes back in one piece.

29 May 2026
Subscribe to repository lifecycle events in Artifacts

Cloudflare Artifacts event subscriptions give you a clean way to react to repository changes without bolting on another watcher. I like that the split between lifecycle and activity events is blunt,...

28 May 2026
Qwen3.7-Max agent workflows with tool bounds

Qwen3.7-Max agent workflows only behave when the tool chain is fenced in, and I trust boundaries more than clever prompts. Let the model read, decide, and draft, but keep secrets, writes, and...

27 May 2026
Browser performance trade-offs for large SVG maps

SVG map rendering looks clean until the DOM grows teeth. I’ve seen a map that felt fine on desktop turn sticky the moment hover, zoom, and labels all started arguing with each other; the file was...

26 May 2026
Indexing prompt injection in search results

Search results are not neutral once retrieval gets involved. I keep seeing prompt injection treated as an edge case, when a single poisoned page can steer an answer if the stack is lazy about source...

26 May 2026
Why AI-promoted commencement speeches backfire

AI-promoted commencement speeches fail for the same reason most institutional waffle does, they sound prepared for approval, not for people. Graduates can spot that instantly, and once they do, the...