Things I build, break, fix, and write about

8 July 2026
Local DNS proxy now preserves DNSSEC records

Cloudflare One Client for Windows now leaves DNSSEC records alone, which is exactly the sort of change I like, because it stops the client quietly meddling with answers. I have seen enough broken name resolution to know that a neat tunnel can still hide a messy DNS state.

8 July 2026
Cloudflare One Client for macOS DNS search suffixes

Cloudflare One Client for macOS can make a short hostname behave very differently, and most of the pain sits in the suffix list rather than DNS itself...

7 July 2026
Tracing acme.sh certificate handling in TLS interception

I spent too long chasing the neat version of TLS wiretapping reconstruction, then found the mess: shell parsing, token limits, and renewal timing. The...

7 July 2026
Reverse engineering game binaries with static analysis

Game binaries give up more than they should, if you know where to look. I start with binary analysis, not the folklore around the game, then use...

Latest blog posts you might like

15 June 2026
Weekly Tech Digest | 15 Jun 2026

Stay updated with the latest in tech! This digest covers AI ethics, auto industry shifts, and the impact of politics on technology, exploring today's pressing issues.

15 June 2026
Use read-only access for Tunnel log streaming

Cloudflare Tunnel granular permissions are only worth having if they stay narrow. I prefer read-only access for log streaming, because diagnosis needs eyes on the connector, not a spare key to the...

14 June 2026
Cloudflare AI Gateway REST API logging and rate limiting

Cloudflare AI Gateway REST API logging and rate limiting is one of those setups that looks tidy until you test it properly. I spent enough time tripping over the default gateway behaviour to know the...

14 June 2026
Keeping smart bulbs powered with Home Assistant

A Zigbee wall controller is the bit that stops smart bulbs being undone by an ordinary switch. Keep the bulbs powered, let Home Assistant handle the logic, and the room behaves like a system instead...

13 June 2026
Kubernetes v1.36 PodGroup scheduling cycle explained

Kubernetes v1.36 makes gang scheduling less hand-wavy, and the PodGroup scheduling cycle is where the sharp edges show. I like the clarity, but it also means there is nowhere for a bad placement to...

13 June 2026
Kubernetes Service externalIPs deprecation and migration

Kubernetes Service externalIPs was always a blunt instrument, and I have seen enough clusters to know blunt tools get misused. The warnings in 1.36 are the polite bit, because once address ownership...

12 June 2026
Aggregated Discovery during API server upgrades

Kubernetes Mixed Version Proxy is one of those fixes that only matters when an upgrade goes sideways, which is exactly when I want it. Aggregated Discovery finally gives older API servers enough sight...

12 June 2026
Track CCM route syncs against cloud API quotas

`route_controller_route_sync_total` is one of those rare counters that tells you something useful, if you bother to watch it. I use it to catch route reconciliation that is chewing through cloud API...

11 June 2026
Chunked gRPC range requests in etcd 3.7

etcd 3.7’s RangeStream makes large reads less painful, but it also clears out a lot of old v2 baggage, which is where upgrades tend to go wrong. I like the new read path; I do not trust any release...

11 June 2026
Apex One zero-day: Windows endpoint checks

Trend Micro Apex One zero-day is not the sort of bug you shrug off, because the server-side flaw lets a compromised admin box start pushing code to trusted agents. If you run Apex One on Windows, the...