About Me

Thinking

Hello, I’m David Dawson

I’m a software architect and consultant specializing in distributed systems, microservices, and event-driven architectures. I’ve spent the last decade helping teams build systems that scale, both technically and organizationally.

The Journey So Far

My path into software wasn’t straightforward. I started out studying physics, drawn to understanding how complex systems work at a fundamental level. That curiosity about systems led me to software development, where I discovered that building distributed systems poses many of the same fascinating challenges - except here, we get to create the laws of physics ourselves.

I cut my teeth on enterprise Java systems in the early 2000s, survived the XML configuration era of Spring, embraced Groovy and Grails when they promised to make web development fun again (and they did!), and eventually found my calling in distributed systems and microservices architecture.

What Drives Me

I’m fascinated by the intersection of technology and philosophy. Building distributed systems forces you to confront fundamental questions about:

  • Truth and Consensus: How do multiple nodes agree on the state of the world?
  • Identity and Change: When you update a service, is it still the same service?
  • Communication and Understanding: How do services truly understand each other?

These aren’t just technical challenges - they’re philosophical ones that have been debated for millennia. I find it endlessly interesting that we encounter the same questions Plato pondered, just in the context of microservices and event streams.

Projects & Contributions

Muon

I’m one of the creators of Muon, a set of libraries for building microservices that communicate using reactive streams. It was born from frustration with RPC-based communication patterns and a desire to build truly reactive systems.

Simplicity Itself

I co-founded Simplicity Itself with Russ Miles, where we spent five years helping organizations adopt microservices and event-driven architectures. While the company has since closed, the lessons learned and friendships made continue to influence my work.

Open Source

You’ll find various contributions on my GitHub, mostly focused on distributed systems tooling and event-driven architecture patterns.

Beyond the Code

When I’m not architecting systems or debugging distributed consensus issues, you’ll find me:

  • Reading philosophy and systems thinking books
  • Experimenting with new programming languages (currently fascinated by Rust’s ownership model)
  • Hiking and thinking about how ant colonies are basically distributed systems
  • Playing with my home Kubernetes cluster (because apparently I can’t leave work at work)

The Philosophy

I believe in:

  • Simplicity over cleverness: The best solution is often the boring one
  • Conway’s Law is real: Your architecture will mirror your organization
  • Events over entities: Model what happens, not just what is
  • Pragmatism over dogma: Use microservices where they help, monoliths where they don’t

Challenges & Growth

In 2016, I was diagnosed with Type 1 diabetes at 35. It was a shock to the system (literally), but it taught me valuable lessons about resilience, system monitoring (continuous glucose monitoring is basically distributed systems observability for your body), and the importance of work-life balance. You can read more about that journey here.

Let’s Connect

I’m always interested in discussing:

  • Distributed systems challenges
  • Event-driven architecture patterns
  • The philosophy of software design
  • How to build systems that are antifragile
  • Why DRY might be causing more problems than it solves

Feel free to reach out on Twitter or through GitHub.

And remember: in distributed systems, as in life, the only certainty is uncertainty. Embrace it.