About
This blog is where I explore different aspects of building and running distributed systems.
I spend most of my time working on infrastructure and architecture, close to the operating system and the network. I’m particularly interested in how architectural choices hold up under real workloads, how systems evolve over time, and the trade-offs that emerge as complexity grows.
Rather than focusing on strict recipes or hard rules, this blog leans toward understanding systems and the ideas behind them. My posts grow out of questions that arise when thinking about systems at scale — how different layers interact, where abstractions hold or break down, and how decisions in one part of a system influence behaviour elsewhere.
Topics
The topics below reflect the areas I spend most time thinking about when designing and operating distributed systems. They’re less about fixed solutions and more about understanding how different parts of a system interact, and what trade-offs emerge over time.
Infrastructure & Architecture
A large part of this blog looks at how infrastructure choices influence system behaviour, cloud architectures, and the trade-offs that emerge around flexibility, complexity, cost, and operational effort.
Observability & Operations
Observability is less about tools and more about understanding. I write about metrics, logs, traces, and alerting as ways to reason about system behaviour, support operational decision-making, and surface meaningful signals from complex environments.
Performance
Performance often exposes the underlying shape of a system. I explore how systems behave under load, how they degrade, and what these behaviours reveal about architectural assumptions and constraints.
Security
In distributed systems, security is deeply tied to architecture. Here I explore concepts such as secure defaults, threat modelling, and system boundaries, with a focus on how security considerations fit naturally into system design rather than being added later.
Foundations
Alongside architecture and system design, I’m interested in the foundations that distributed systems are built on. These tools and layers shape how systems behave in practice and strongly influence design and operational decisions.
Linux
Linux forms the foundation of many systems I work with. I’m interested in how services run, communicate, and are constrained on Linux systems, and how those details influence reliability, performance, and architectural decisions.
Networking
Networking is central to distributed systems. I explore how data moves through systems, how latency and failure propagate, and how network design choices affect reliability, performance, and security.
Programming
I use programming as a way to think through system design. I mainly work with Go and Python, often for infrastructure work and automation, and I’m interested in how different language and concurrency models affect how systems behave and how easy they are to operate.