PyCon CZ

PyCon CZ 23
15–17 September

Make Your Software Architecture Shine with Domain Driven Design a workshop with Anastasiia Tymoshchuk

Sunday 17 September 10:00 (3 hours)
Room 302

Domain Driven Design (DDD) has a huge set of tools, which could be used to design your perfect architecture - loosely coupled and highly cohesive. Anastasiia has been using DDD for a few years and created her own way to design a new architecture for a product, a feature, redesign, refactoring and also for exploring existing products, their ecosystem and functionality.

In this workshop attendees will apply DDD to their own projects and will learn:

  • how to start with Eventstorming to explore the user journey
  • how to move forward and explore the ecosystem of the product/software/feature/service
  • how to finalise a new architecture with C4 diagrams.

But despite all the attempts to create a new perfect architecture, it could be affected by the team and organisation structure. Conway’s Law says: “Any organisation that designs a system will produce a design whose structure is a copy of the organisation’s communication structure”.

Anastasiia experienced this so many times in different teams and organisations, that in the past few years she started applying Team Topologies together with DDD. This worked pretty well and as a bonus Anastasiia will go through the hidden icebergs of this approach as well.


All the attendees are required to bring their laptops or pair up with someone who has one.

We will use Miro board to collaborate but optionally you can draw everything using pen and paper.

You can use your own project as an example, either an existing or a future application. In that case please spend some time thinking about its design before the workshop. We will redesign it together using DDD.

What do you need to know to enjoy this workshop

Python level

You can write basic scripts.

About the topic

No previous knowledge of the topic is required, basic concepts will be explained.

Anastasiia Tymoshchuk

I have worked in the IT industry for more than 11 years, including experience in e-commerce as well as game development. I have a lot of experience with various software architectures in different domains. Currently working as an Associate Director of Engineering at Native Instruments, helping to build engineering culture and engineering strategy in my team. I am also one of the organizers of PyBerlin meetup based in Berlin.