Player Experience
The Five Second Contract
Queueing looks harmless at first. A slow call holds a few threads, then a few more, and if left unchecked it can tip the whole system over.
Shape systems through behaviour and constraints. Cohesion over cleverness, coupling you can name, evolve rather than rewrite, and design systems that scale without turning into bureaucracy. Monorepos, boundaries, and differential builds used with judgement.
Player Experience
Queueing looks harmless at first. A slow call holds a few threads, then a few more, and if left unchecked it can tip the whole system over.
Organisational Design
When muscles and nerves aren’t enough to stand.
Developer Experience
One wardrobe, many uniforms, one team.
Developer Experience
The case for ringed deployments: safety, visibility, and confidence at scale
Player Experience
Why borrowed milliseconds cost more than they seem.
Organisational Design
Balancing integration, adoption, and the lure of best-of-breed.
Developer Experience
How AI shifts the balance between improving and starting over.
Player Experience
A healthy system creates space to rise, and has the strength to let go.
Player Experience
The web has caught up. PWAs and TWAs now deliver apps that feel native, run faster, and update instantly - while still leaving space for native SDKs where they matter. On Android especially, it’s time to move beyond WebViews.
Player Experience
Passive observers are meant to watch, not slow the service. Trackers promise insight, but can often triple response times and leave players waiting.
Developer Experience
The case for a common process supervisor.
Developer Experience
They are canaries. If they go silent, the answer is not to ignore the silence, it is to make the air safe again.