Training & Consultancy

Currently available training programs

The following training programs are currently available. Click on "More information" to read more about the program and take a look at feedback from attendees. If you'd like to browse through the slide deck to get a better idea of the contents of a particular training, just send me an email (

Each program fits in one day, but each program also has (advanced) bonus materials that could be covered on a second day. When you hire me for on-site training, you could consider two or three days of training, combining several programs. All of the programs are part of an overarching vision on software development, and each program provides a different perspective on that same vision.

Advanced Web Application Architecture

Advanced Web Application Architecture

Separating core from infrastructure code using design patterns like Application service, Repository, Entity, Read model. Grouping code in layers: Domain, Application, Infrastructure. Distinguishing ports and adapters (i.e. applying Hexgaonal architecture).

More information

Domain-Driven Entity and Value Object Design

Domain-Driven Entity and Value Object Design

Promoting primitive-type values to value objects, guaranteeing consistency using assertions, defining relations between value objects using composition and transformation, implementing immutability. Designing entities based on the concepts of identity, change, lifecycle, and invariant protection.

More information

Domain-Driven Aggregate Design

Domain-Driven Aggregate Design

Designing aggregates using intention-revealing methods, protecting domain invariants, communicating between aggregates using domain events, modeling entities as state machines, playing with immediate versus eventual consistency to optimize for consistency or scalability.

More information

Advanced Application Testing

Advanced Application Testing

Increasing testability by separating core from infrastructure code, setting up end-to-end tests, writing use case tests using scenarios and contexts, writing adapter tests for your (hexagonal) port adapters, learning when to use test doubles like stubs, mocks and spies.

More information

Building Autonomous Services

Building Autonomous Services

Using projections to build up local read models, creating process managers to respond to events in other services, translating events to prevent coupling between bounded context, applying the Reservation pattern to overcome concurrency problems and allow for eventual consistency of read models.

More information

Are you looking for something else? Send an email to

About the training


My workshops are well-balanced: they contain equal portions of theory and practice. You can start implementing advanced concepts right-away and verify the correctness of their results with the trainer.

Classes are limited to 15 participants to give everybody an equal opportunity to learn.

Concepts in plain sight

When explaining a technical concept, it will not be buried beneath a pile of framework code or implementation details. The concepts are in plain sight, ready for you to grasp.

Sandbox projects contain back-to-basic PHP code, so when you've finished your training, you can then use any framework you like to let your code blossom.

Advanced topics

I offer lots of advanced workshop topics. We don't focus on the basics, we dive straight to the core of a concept.

There are a lot of different subjects we can cover, it's up to you to select which will be most useful for you or your team.


Very pleased that I attended this workshop. Matthias is a very good teacher, he helped us during the whole workshop just to easier understand whats going on here. Very insightful.

Luka Gado

Matthias did a great job. One of the best workshops I have ever took. It guides you all the way but also gives a space to make up your own solutions. You feel so good about yourself that 8 hours passes with ease.

Anka Bajurin Stiskalov

The workshop was strongly hands on centred and helped me very much to embrace these concept I had not the chance to work with yet. Matthias was very clear, positively challenging and engaging so that even though new to the subject, I felt very comfortable coming out with thoughts and questions.

Valerio Chiessi


In-house training

€ 2500,- /day

  • 1-4 days
  • Somewhere in Europe
  • Up to 15 participants

Get in touch:

Public training

€ 250,- pp./day

  • 1-4 days
  • Carefully selected program
  • At least 5 participants

Get in touch

If you'd like to know more about hiring me to do a training for you, please send an email to


Besides training on a number of topics, I also offer consultancy for software development teams. I can help you:

  • Improve your testing skills
  • Escape from legacy land
  • Write code that's easy to understand, and easy to change
  • Apply domain-driven design to your application

If you'd like to discuss your situation and find out if I can help you, please send an email to