Things I build, break, fix, and write about

1 September 2026
Metadata schema choices for content libraries

Structured metadata only works when it matches how people actually retrieve content. I have seen neat schemas fail as soon as the library meets real records, and tarot makes the problem obvious. If the fields do not support search, filters, and odd edge cases, the catalogue stops being useful.

31 August 2026
Federation trade-offs in self-hosted social feeds

Federation looks tidy until you let it touch the edges, and then the odd cases arrive fast. I prefer self-hosted social feeds that stay explicit about...

31 August 2026
FireAvert Z-Wave stove shutoffs for offline safety

FireAvert’s setup does the part that matters without asking Home Assistant to babysit it, which is exactly how I want stove protection to behave. The...

31 August 2026
Weekly Tech Digest | 31 Aug 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...

Latest blog posts you might like

22 June 2026
Formal verification boundaries in corecrypto

corecrypto formal verification is useful right up to the point where the code stops being plain C. I trust the proof more than the marketing, but only if the compiler output still looks like the model...

22 June 2026
Weekly Tech Digest | 22 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.

21 June 2026
pipe_buffer tmp_page reuse in Linux kernel

tmp_page reuse sounds neat until you try to make it behave, and then the pipe accounting starts getting in the way. I have found the useful part is usually not the obvious corruption, but the ugly...

21 June 2026
GitHub exposure of AWS GovCloud credentials

Public repos are brilliant at preserving bad decisions, and AWS GovCloud credentials are exactly the sort of thing that should never survive a commit. Once they are out, the clean-up is only half the...

20 June 2026
Hardening consumer routers against botnet abuse

Consumer routers are still being dragged into IoT botnets because the easy mistakes never went away, default logins, exposed admin pages, and forgotten services. I would rather spend ten minutes...

20 June 2026
Rotating AWS GovCloud secrets after repo disclosure

AWS GovCloud credential leakage is not a tidy mistake, it is a time problem. Once a secret hits public GitHub, I treat revocation, search, and handoff as one job, because leaving even one copy alive...

19 June 2026
Checking Proxmox VE 9.2 cluster networking before upgrade

Before I touch Proxmox VE 9.2, I make the cluster prove itself under strain, because corosync, migration, and storage paths always fail in the places you skipped. A node that looks fine at idle can...

19 June 2026
Tracking false positives after managed rule merges

Cloudflare WAF rule merge changes more than a label, and I have seen neat alerting fall apart because the detection moved, not because the noise went away. If you are counting rule IDs, you may be...

18 June 2026
Adjust rule actions when Java deserialisation detection

Cloudflare Managed Ruleset changes are rarely neat, and this one is no exception. The old Java deserialisation beta rule went quiet while the real detection moved elsewhere, which is exactly how a...

18 June 2026
Assessing bot access control with URL Scanner API

Cloudflare URL Scanner Agent Readiness is useful because it shows where access breaks for machines, not where the dashboard looks neat. I trust it more when the score is awkward, because that is...