Since my experience with teaching remote training days has been very positive, I'm offering all of the programs below as remote sessions.

Let's talk about what I can do for you!

Get in touch

Training & Consultancy

Many training programs available

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 can 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.

Static Analysis and Automated Refactoring

new With PHPStan you can catch many programming mistakes before they reach your production server. Rector can fix many programming mistakes for you. After this workshop you're ready to start using these tools in your projects!

Moving Forward with Legacy Code

new Applying the Mikado Method to help you actually finish large-scale refactoring projects. Performing safe refactorings that don't break existing behavior. Using modern PHP tools to cover you while doing so.

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).

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.

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.

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.

Decoupling from Infrastructure

Learn how to build decoupled applications from the start using design patterns like application services, entities, and domain events, using a domain-first and test-driven approach.

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

(limited availability)

€ 2800,- /day

  • 1-4 days
  • Only in the Netherlands
  • Up to 15 participants

Get in touch

Remote training

€ 2500,- /day

  • 1-4 days
  • Up to 15 participants

Get in touch

Get in touch

If you'd like to know more about hiring me to do a training for you, 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