Training


DDD training course illustration

Software Development means having to understand your domain and how to leverage AI and all the necessary tools, patterns and practices effectively.

Mastering those can take a lot of time and a fair amount of (expensive) trial and error.
This is where I can help you, by providing training courses that will facilitate your understanding of the principles and practices of software architecture and design in a pragmatic way.

Courses

AI Best Practices for Software Engineers

Learn how to effectively integrate AI into your software engineering workflow, from understanding model behaviour to building reliable agentic systems.

  • Understanding and Managing Context Window Usage
  • From Prompt Engineering to Harness Engineering
  • Creating a Pragmatic Agentic Workflow with Human in the Loop
  • Multi-model Development
  • Reusable Skills, Agents and MCP

Domain-Driven Design

Learn how you can use Domain-Driven Design in a practical way to help you design your software.

  • Entities, Value Objects, Aggregates
  • Repositories, Factories, Services
  • Domain Events
  • Bounded Contexts
  • Anti-Corruption Layer
  • Ubiquitous Language
  • Context Mapping

Event Sourcing

Understand the principles of Event Sourcing and how it can be applied to build robust systems.

  • Event Store
  • Command Query Responsibility Segregation (CQRS)
  • Snapshotting
  • Event Replay
  • Handling Eventual Consistency

DDD, CQRS and Hexagonal Architecture — the Good Parts

Often seen as the holy trinity of modern application development, these three patterns are easy to misapply. This workshop cuts through the complexity and focuses on the parts that deliver the most value, leaving you with a solid and practical foundation.

  • DDD
  • A view from 10,000 feet
  • Unlocking the power of Value Objects
  • No more anemic objects by using Entities
  • Ubiquitous Language
  • CQRS
  • Expressing clear intent with Commands and Queries
  • One or multiple persistences
  • Hexagonal Architecture
  • Primary drivers
  • Application and inversion of control
  • Core domain
  • Secondary drivers

All courses are hands-on, mixing the necessary theory with practical situations and exercises aiming to provide you with the best experience possible.

Contact me to know more details and how I can help you to improve your software development skills.