Development PracticesConference50min
TDD & DDD From the Ground Up (Live Coding)
This session demonstrates how to start software projects with Test-Driven Development and evolve toward Domain-Driven Design as complexity grows. Through live coding of a university enrollment system, attendees learn to apply DDD patterns, enabling easier adaptation and greater maintainability as requirements change.
Chris SimonChris Simon - Technology Coaching & Advisory
talkDetail.whenAndWhere
Thursday, October 9, 16:30-17:20
Room 8
Are you interested in using Domain-Driven Design (DDD) to create maintainable and scalable software, but not sure how to get started? Or perhaps you've heard that DDD is only suitable for complex domains - and when starting out, you're not sure if your project will need it?
Join me for a live coding demonstration that will show you how to apply Test-Driven Development (TDD) from the very beginning of a project so you can bring DDD in when you need it.
We start with the simplest implementation - a CRUD system to help a university handle enrolments. We'll gradually add more complex requirements, such as the need to ensure courses don't become over-enrolled. Through gradual refactoring we'll develop the DDD tactical patterns of repositories, aggregates and domain services.
Mid-way, inspiration will strike! What if the model were changed? What if we allowed all enrollments and then allocated resources to the most popular courses as required so we never have to prevent a student from enrolling? We'll now see how the TDD tests and the neatly refactored domain models make it much easier to embark on this dramatic change - in other words, how much more maintainable our DDD codebase has become.
Join me for a live coding demonstration that will show you how to apply Test-Driven Development (TDD) from the very beginning of a project so you can bring DDD in when you need it.
We start with the simplest implementation - a CRUD system to help a university handle enrolments. We'll gradually add more complex requirements, such as the need to ensure courses don't become over-enrolled. Through gradual refactoring we'll develop the DDD tactical patterns of repositories, aggregates and domain services.
Mid-way, inspiration will strike! What if the model were changed? What if we allowed all enrollments and then allocated resources to the most popular courses as required so we never have to prevent a student from enrolling? We'll now see how the TDD tests and the neatly refactored domain models make it much easier to embark on this dramatic change - in other words, how much more maintainable our DDD codebase has become.
Chris Simon
Chris is a technology coach and advisor helping technology teams drive business success. He has a particular focus on helping startups realise their vision and new CTOs flourish in their roles. He also supports executives & boards with strategic technology advice, and engineering teams with training, mentoring and consulting in architecture, quality, domain-driven design and test driven development.
He is a regular meetup & conference speaker and to support teams using Domain-Driven Design, he recently launched Contextive and co-founded the DDD Australia meetup & Analysis, Design & Architecture Conference.
He is the technical co-founder of InLoop, home of Australian Fintech success stories Flexischools and LanternPay. Although born and raised in Australia, from July '25 to June '26 is he is based in France.
He is a regular meetup & conference speaker and to support teams using Domain-Driven Design, he recently launched Contextive and co-founded the DDD Australia meetup & Analysis, Design & Architecture Conference.
He is the technical co-founder of InLoop, home of Australian Fintech success stories Flexischools and LanternPay. Although born and raised in Australia, from July '25 to June '26 is he is based in France.

talkDetail.transcript.loginToSeeTakeaways
talkDetail.transcript.loginToSeeInsights
comments.speakerNotEnabledComments