Diagnosis
Something behaves strangely and nobody can say why. I find out — from captures and counters, not from an explanation that merely sounds plausible.
Architecture for organisations that cannot afford surprises. Most recently HM Land Registry, CGI's Space, Defence and Intelligence practice, and a database start-up coming out of stealth.
Forty years in — and still the person called when something behaves strangely and the obvious explanations have all been tried.
Something behaves strangely and nobody can say why. I find out — from captures and counters, not from an explanation that merely sounds plausible.
Where it genuinely earns its place, where it does not, and getting a team productive with it rather than nervous about it. I run models locally so I know what the tools actually do.
AWS, Azure and on-premises — including the migrations between them, and designs that can move back again. Portability is a requirement, not a nice-to-have.
Zero Trust design, security audit, identity and access, and security operations — including redesigning a SOC and the service built on top of it.
Deliberately not joined up. Which title did which piece of work, and who it was for, is a conversation — and a better one than a table of dates.
Passkeys and password-manager-friendly one-time codes for the OPNsense firewall. Auditing it surfaced a timing weakness in the stock TOTP check; the hardening fix now ships in OPNsense core.
Single sign-on for anything behind the firewall's reverse proxy, without putting an identity provider on the firewall itself. Knows which API paths each application needs left alone, so protecting a service doesn't quietly break its integrations.
Reads and writes Bohemia Interactive's PAA textures directly in GIMP, so artists can stop round-tripping through tools that stopped being maintained a decade ago.
I have been making computers do things for forty years — long enough to have watched most ideas arrive, leave, and come back wearing a different name.
The shape of the work has changed: development, then infrastructure, then architecture, then the security of both. What has not changed is the part I am actually good at — the unglamorous middle, where a design meets an estate that already exists and has opinions of its own. I am usually brought in when something matters, is complicated, and has to keep running while it changes.
Lately that includes AI: what it is genuinely good for, where it is being oversold, and how to get a team using it well. I run models locally for the same reason I read packet captures — I would rather know than be told.
I write the diagnosis down afterwards, publicly where I can. Partly because it is useful, and partly because a fault you cannot explain is a fault you have not finished.
Tell me what it does, what you expected, and what has already been ruled out. I will tell you whether I can help before anyone talks about money.
No address published on purpose — spam harvesters read these pages long before people do. This form reaches me directly.