Writing

Practical writing on software engineering, security, AI, and the industry around them.

Latest · Security

PHP2Shell: what to patch and what to contain

How to patch, verify and contain PHP2Shell on servers and Kubernetes.

2026-10-21 · 6 min

All posts

2026-08-21
Software Engineering

From CakePHP to Laravel

How I moved a legacy CakePHP supply chain app to Laravel and React.

6 min read
2026-07-27
DevOps

Resource requests are load-bearing

What pods without resource requests do to Kubernetes scheduling and eviction.

4 min read
2026-06-09
DevOps

Never set a Redis memory limit equal to its maxmemory

Why Redis gets OOMKilled when maxmemory matches its container limit.

3 min read
2026-04-14
DevOps

One public IPv4 for the whole cluster

Setting up NAT egress for a cluster with a single public IPv4 address.

4 min read
2026-02-17
AI

Capability scoping for agent tools

Designing narrow, allow-listed tools so an agent can only do what it should.

4 min read
2025-11-18
AI

Who is the agent acting for?

Keeping agents scoped to the right customer by enforcing identity in the tools.

4 min read
2025-10-14
Software Engineering

LLMs are good at code you can verify, and bad at code you cannot

When to hand code to an LLM: only where you can cheaply check the result.

4 min read
2025-05-16
Security

When Letters Lie: Analyzing a Typical IDN Homograph Attack

Breaking down a phishing domain built from lookalike Unicode characters.

7 min read
2025-04-08
Security

Owning your dependency supply chain

What a private package registry does and does not protect against.

4 min read