Talks & hands-on
Talks
I am an expert in a range of cutting-edge topics and have had the privilege of delivering interactive presentations at international conferences, both in-person and online.
My areas of expertise include Collaborative Software Design, Domain-Driven Design, Deep Democracy, Sociotechnical System Design, Software Design, Technical Leadership, and Software Architecture.
My presentations are not just about imparting knowledge; they’re about fostering collaboration, sparking innovation, and challenging participants to think differently.
Hands-on workshop
I deliver both standard and bespoke hands-on workshops at public and internal company conferences. My workshops are immersive, hands-on experiences that delve deep into subjects like Collaborative Software Design, Domain-Driven Design, Deep Democracy, Sociotechnical System Design, and more.
Participants have the opportunity to engage in real-world scenarios, collaborate on solutions, and apply learned techniques firsthand.
Whether you’re looking for a structured approach to a specific topic or a customized workshop to address unique challenges, my sessions are designed to equip attendees with practical skills and insights they can immediately apply in their professional journeys.
Recent talks & hands-on
Introduction to Domain-Driven Design and Collaborative software design
Are you eager to create software that meets both user and stakeholder needs while achieving business goals? Do you want to design and architect software that remains adaptable and resilient as your business grows? Curious about how your team can take ownership of...
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams
Software is increasingly crucial in our lives, but developing effective software systems is still a major challenge. This issue often comes from teams focusing on solutions rather than deeply understanding the business problems they are trying to solve. A crucial...
Collaborative software design for team cognitive load
When navigating the complexities of software design and development, new ideas and future requests frequently cross software and team boundaries. The most effective approach to these design challenges is through collaborative modelling sessions, where teams are...
Effective software design: The role of men in debugging patriarchy in IT
Effective software design relies on integrating diverse perspectives throughout its development process. Research shows that teams with a neuro-diverse background excel in decision-making due to their ability to consider a wider range of ideas, foresee a greater...
Navigating the Future of Software Development: Embracing Collaborative modelling
Software is increasingly crucial in our lives, but developing effective software systems is still a major challenge. This issue often comes from teams focusing on solutions rather than deeply understanding the business problems they are trying to solve. A crucial...
Reshaping Cultural Perspectives in Software Design
Software stakeholders and users approach technology through the lens of their cultural norms and worldviews. As software designers, we often introduce new concepts and terminology to better address those needs. This can mean adapting or even reshaping their cultural...
How Domain-Driven Design enabled scaling a big ball of mud product
Many products start out with a simple, naive model able to prove market fit. And most of the time that one model grows, because more features need to be put in at a fast pace. This can have a huge impact once the product needs to scale. https://vimeo.com/881638281...
Collaborative Software Design: How to facilitate domain modeling decisions
Designing a software system is difficult. Understanding the context in which a software system lives is more difficult. In order to understand that context, developers need to communicate with the business. But there is a lot that can go wrong while communicating with...
Deep Dive into Model-Driven Design: Refining Domain Models in Code
Most software products begin with an initial software model, one that is typically naive and superficial, grounded in basic understanding. This initial phase is natural, as it aligns with the early stages of discovering and exploring a new product with stakeholders....
Domain Driven Design & Data Mesh
Data mesh is a decentralized sociotechnical approach for data management. Focusing on the technology, we tend to neglect the socio aspect of moving to new decentralized approaches. If we want to invest in data mesh architecture work, we must also invest in the people...
Collaborative modelling domain boundaries
As a business, we want to make sure our software can handle changes when the business changes. We want to define boundaries that support the flow of the business value. Within Domain-Driven Design we have the perspective of strategic design. A perspective where we can...
Facilitating collaborative design decisions
If we want to make sustainable design decisions for our architecture that are embraced by everyone, the most effective way is to do this collaboratively. Everyone can feel a part of the decision and can potentially give the input they have. The group is aligned and...
Disentangling legacy software approached with Domain-Driven Design
If one thing unites us as software developers, it must be legacy software. Almost and perhaps everyone in their career will deal with them. Almost everyone I talk to does not like to work on legacy software because legacy software is considered to be outdated and...
Autonomy, is that what we really want?
There has been a focus on autonomy in information technology; From autonomy in code, to autonomy while coding, autonomous systems with microservices to autonomous high-performing teams. When you read Daniel Pink’s research in the book Drive, it makes sense; autonomy...
Does culture impact software design?
DDD is about understanding and communicating complexity. We have long recognized that the most effective way to communicate complexity is via human language. But language poses a challenge when working in a team comprised of members of different (sub)cultures and...
How cognitive biases and ranking fosters an ineffective architecture and design
The power of collaborative modelling comes from having a diverse group of people who, together, have a lot of wisdom and knowledge. You would expect that all this knowledge will be put to use, co-creating and designing a model....
Visual and Collaborative modelling
The way agile software teams gain knowledge about what to build is either by the product owner or business analyst serving as a proxy to domain knowledge. Domain knowledge usually ends up as second-hand news in either functional design documents or as user stories in...
Tackling socio-technical complexity in the heart of your team
As a software engineering team, we want to solve complex business problems in the most efficient way possible. We invest a lot in technology to improve our team flow and try to make our technology process sustainable. We’ve got quite compulsive about automation and...
Towards Autonomously Aligned Teams with Domain-Driven Design
I’ve been involved in several transformations over the years, from DevOps to Digital to Agile. These transformations typically focus on transitioning people into near-autonomous teams of no more than eight people who will work in an agile manner. Every company I’ve...
A quest at mapping Domain-Driven Design Heuristics
“We all use heuristics (even if we haven’t articulated them to others) to discover, understand, explore, create, modify, or extend complex software systems. Billy Vaughn Koen, in Discussion of the Method: Conducting the Engineer’s Approach to Problem Solving, defines...
EventStorming; Continuous learning between multiple disciplines
To understand what our users need to make we sure build and test the right thing, we need first-hand experience of real-life stories before we can model, test and create our software. EventStorming is a technique that uses visualisation to minimise assumptions by...
I got Trapped! Systems thinking traps of IT Teams and how to battle them
Donella Meadows book, Thinking in Systems, is a concise and crucial book offering insight on how to think about systems, how to control systems and how systems change and control themselves. A system is a group of interacting, interrelated or interdependent parts...
Crunching ‘real-life stories’ with DDD EventStorming and combining it with BDD Example Mapping
To really understand what your users will need, you want to have a first-hand experience from 'real-life stories' before you can model and create your software. While both the DDD and BDD techniques emphasis on ‘real-life stories’ by doing collaborative deliberate...
From EventStorming to CoDDDing
To really understand what our users need so that we can build the right thing, we want to have a first-hand experience of ‘real-life stories’ before we model and create our software. To quote Alberto Brandolini “it is not the domain expert’s knowledge that goes into...