Mathias Verraes2moI was a guest in Karol Skrzymowski’s podcast “Loosely Coupled”, together with Martin Fowler, Xin Yao, and Andrew Harmel-Law. It was recorded live at DDD Europe 2026 in Antwerp.
Mathias Verraes1yI’ve reviewed conference talk submissions for 10 years, for Domain-Driven Design Europe and other events. Here are my assorted tips for writing your own submissions.
Mathias Verraes2yThere’s a moment where it’s too soon to invest in a radical new software design for your system. And then you reach a moment where it’s too late, too expensive to change it. Is there a sweet spot in between, a point where pivoting the software design is the right choice, at the right time?
Mathias Verraes3yDesign choices carry along the worldviews of the designer. This often is not apparent, especially when design ideas are for obvious technical improvements. Let’s look into a design challenge faced by a fictional Maker Lab.
Mathias Verraes3yBelow are the common patterns I use when writing tests for an EventSourced application. I’m documenting them here because I mention them regularly and I needed a place to point people to. I believe I talk about them in some of my Temporal Modelling talks.
Mathias Verraes3yI was at Full Stack Europe 2022 in Antwerp, and one of the speakers had to cancel. So I offered to do an improvised talk on Parsers Combinators. (My Covid Lockdown hobby was creating an open source library to help you build parsers, so I have some experience.)
Mathias Verraes3yThe new DDD Australia user group just had its first meetup, and I was invited to speak. A major bottleneck for fast high quality software development is that people in the organisation don’t understand their systems and domains well enough. So I did a (mostly improvised) session on using Bounded Contexts to manage meaning and understandability.
Mathias Verraes3ySoftware Captains is a organisation that helps startup CTOs through coaching, advice, and networking. In the interview, the founder Tom Klaassen and I discuss software design. We talk about challenges CTOs face, such making technical debt visible for non-technical colleagues, about how software quality is contextual, but still very important even for early stage startups.
Mathias Verraes3yHere’s the video of Rebecca Wirfs-Brock & my keynote at Domain-Driven Design Europe 2022, where we talk about the ideas presented in our essay “Critically Engaging with Models”, also available as an e-book on Leanpub.
Mathias Verraes3yRebecca Wirfs-Brock and I published a book last year called “Design & Reality” with essays on software design. It’s available on Leanpub.
Mathias Verraes4yThe Inverse Conway Manoeuvre is an organisational engineering device. It tells us to change our team and organisational structure to achieve the system design we want. More and more organisations reorganise based on this idea, and yet they don’t end up with the system they’d like. What are we missing?
Mathias Verraes4yI joined Alex Bolboacă on his podcast ‘Think. Design. Work Smart.’ We discussed DDD, the value of models, misconceptions about DDD (it’s not a Big Design Upfront method!) and more.
Mathias Verraes4yWhen we make decisions, we often do not explore options that have a risk of loss, even if that loss is balanced out by potential gains. I joined João Rosa’s “Software Crafts” podcast to talk about 3 heuristics that help you overcome that bias.
Mathias Verraes4yOne of us (Mathias) consulted for a client that acted as a broker for paying copyright holders for the use of their content. To do this, they figured out who the copyright holders of a work were. Then they tracked usage claims, calculated the amounts owed, collected the money, and made the payments. Understanding who owned what was one of the trickier parts of their business.
Mathias Verraes5yI had a conversation with Ryan Shriver of Singlestone Consulting — well, mostly a monologue, I didn’t warn Ryan that he should interrupt me more
Mathias Verraes5y“The transition to a really deep model is a profound shift in your thinking and demands a major change to the design.” — Domain-Driven Design, Eric Evans
Mathias Verraes5yImagine a wholesaler of parts for agricultural machines. They’ve built a B2B webshop that resellers and machine servicing companies use to order. In their Ubiquitous Language, an Order represents this automated process. It enables customers to pick products, apply the right discounts, and push it to Shipment.
Mathias Verraes5yThere’s a common bias in the tech industry, and I imagine everywhere. When there’s a new idea, and some very smart people will say that the new idea X is really just the old idea Y. The idea could be a model for looking at things, a way of doing things, a technology, a pattern. People will make the case that X is nothing but Y in new packaging.
Mathias Verraes5yAll models are wrong but simple models are more wrong than complex ones. Simple models are more appealing, easier to teach and spread and apply. Because of that, they can bring value faster, and they can cause harm faster. “Everything should be made as simple as possible, but no simpler.” (Einstein) is great advice, but the risk is that we forget the last bit. It’s not a joke, it’s a serious warning against reductionism.
Mathias Verraes5y(This is a small snapshot from a longer conversation I’m having with Rebecca Wirfs-Brock about Bounded Contexts. It’s very incomplete but I’m posting it anybody who get some value from it in its present form.)
Mathias Verraes5yDecision-making heuristics are patterns and ideas that can help us find another angle, generate new options, evaluate them, or otherwise address the problem. They don’t guarantee a good answer, they only give you some possible progress towards an answers.
Mathias Verraes6y“Technical debt” is a metaphor for all software design choices that turn out to be suboptimal, no longer valid, or just plain wrong. These choices incur a cost on future development, and the shortcuts taken today will later slow you down until you “pay back” the debt by fixing the problems. And it’s not only code
Mathias Verraes7yTrying to get people to agree on a single unambiguous definition of a software concept is usually impossible. In the very least, I can point out that such ambiguity exists when it comes to eventsourcing.
Mathias Verraes7yI wrote about something that I called the Forgettable Payload pattern. The abstract reads “Store the sensitive payload of an event in a separate store to control access and removal.” Please read the full pattern first. In short, it’s about being able to remove sensitive information from an eventstore, for example upon receiving a deletion request under the GDPR.
Mathias Verraes7yThe versions of this talk are all part overlapping, part different. You should probably pick one at random to watch, and if you want to find out more, skip around a bit in the others.
Mathias Verraes7yMy aim is to identify, name, and document patterns, that I’ve used or encountered in my consulting practice. All patterns are anti-patterns when used in the wrong context, so I try to add heuristics, trade-offs, and caveats.