Distributed systems problems are expensive to fix late.

A conversation now — before the architecture is locked in, or while you still have the leverage to change it — is worth a lot more than an incident post-mortem six months later.

I help engineering teams and their leaders make better architectural decisions, faster. Whether you’re designing something new or trying to make sense of what you’ve already built, I can help.

Consulting

What I Do

Architecture Reviews

A focused, half-day or full-day engagement where I look at what you’re building, ask uncomfortable questions, and give you an honest assessment of where the risks are.

This isn’t a rubber-stamp exercise. You’ll leave with a clear picture of:

  • Where the boundaries are wrong and why
  • Which communication patterns are going to cause you pain at scale
  • The two or three things worth changing now vs. the things that can wait
  • Concrete, actionable recommendations — not a list of “it depends”

Format: Half-day (~3 hrs) or full-day. Can be done remotely. Good for: Teams that are 3–6 months into a distributed system build, or preparing for a significant scaling event. Investment: Contact me


Design Workshops

Sometimes the problem isn’t that you’ve built the wrong thing — it’s that you haven’t yet agreed on what the right thing looks like. A design workshop brings your team together around a shared model before anyone writes a line of code.

A typical session covers domain modelling, service boundary identification, and a first pass at the event and command flows that will drive the system.

Format: Half-day to full-day, in-person or remote. Works best with 4–8 people — the architect, a couple of senior engineers, and someone who understands the business domain. Good for: Pre-build planning, re-architecture discussions, onboarding a new team onto an existing system. Investment: Contact me


Ongoing Advisory

For teams that want a senior technical voice available on a regular basis - not to build things, but to guide architecture strategy, pressure-test decisions, review designs, and help avoid expensive mistakes before they’re made.

I do offer Fractional CTO services to a limited number of companies. Contact me to see if it’s a good fit.


Who I Work With

I work best with:

  • Engineering managers and CTOs who are making architectural decisions and want an independent perspective from someone who has built and run distributed systems in production
  • Teams that have already started and suspect something is off — services are too coupled, deploys are painful, events have turned into chaos
  • Teams that are about to start something significant and want to get the foundation right

I work across the stack but my deepest expertise is .NET and event-driven architecture. If your team is building on a different stack, get in touch and we can figure out if I’m still the right fit.


How It Usually Starts

Most engagements start the same way: a short conversation where you tell me what you’re building and what’s worrying you. No preparation needed — just turn up and talk.

From there I’ll suggest what I think would be most useful, and we can agree on scope before anything is committed.

Get in touch

Or email: damian@damianm.com


Not Looking for Consulting?

If you want your whole team to develop this capability — not just get a one-off answer — my workshops might be a better fit.


About Damian

I'm a software architect and consultant with 25+ years of experience across enterprise companies and software startups, including work on some of Australia's largest and most trafficked platforms.

I created Nimbus — an open source .NET library for building event-driven distributed applications — which has been running in production at real companies since 2013. I deliver architecture training to engineering teams across Australia, and I'm the Technical Director of YOW! Conferences.

I speak at conferences and meetups on distributed systems, event-driven architecture, and domain modelling.