About

I help teams and organizations create software easy to understand at scale.

Over the past years I've worked with Java, Spring, and API-first approaches (OpenAPI and AsyncAPI) to help teams move from domain models and events to running code: from the first Event Storming sticky notes to services, messages, and tests in CI/CD. I enjoy the full path: modeling the business, shaping the architecture, and then going deep into the implementation details so the design doesn't get lost on its way to production.

I'm the creator of ZenWave 360º, a set of tools to bridge that gap between domain and code. With it, I try to encode the patterns I've seen working: ubiquitous language distilled into DSLs, specs as a single source of truth, and generated code that is useful instead of getting in your way. My goal is simple: fewer accidental complexities and more time spent on real business problems.

Most of my day-to-day work happens in large, regulated environments where asynchronous APIs and events are not just a technical choice, but an organizational commitment. There I focus on event governance: helping define how events are named, evolved, validated, tested, and deployed; how pipelines, contracts, and tooling support this; and how business events become actual growth opportunities instead of just another topic in a broker. I don't usually talk about specific companies or projects, but the constraints and lessons from those contexts heavily influence the ideas and tools I share publicly.

I care a lot about the human side of software: how we talk about domains, how we make decisions as a team, how we make complex systems feel less intimidating and more learnable. My background outside pure computer science (economics, anthropology, education, mental training) quietly shapes how I design workshops, write documentation, and structure architectures so that people can reason about them.

I speak and write about topics like:

If any of this resonates with the problems you and your team are facing, you'll probably find something useful in my talks, examples, or in ZenWave 360º itself. And if not, at least I hope you walk away with a slightly clearer mental model of how events, domains, and APIs can fit together in the real world.