Open Source Projects
Over the years, I've created several open-source repositories to support my work as an architect, consultant, trainer, and engineer.
These projects are not toy examples. They are educational resources that demonstrate how architectural concepts translate into working software. I use them during workshops, training sessions, conference talks, blog posts, and discussions with development teams.
If you're a software engineer, technical leader, architect, or CTO looking for practical examples, these repositories will help you explore real-world approaches to software design and architecture.
Training Center Microservices
A complete educational platform that demonstrates how to design and implement microservices using Domain-Driven Design, Event Storming, and Hexagonal Architecture.
The repository shows the journey from business discovery to implementation, helping teams understand not only what decisions were made but also why they were made.
What you'll find inside:
- Event Storming outcomes
- Bounded Contexts and Context Maps
- Architectural Decision Records (ADRs)
- Microservice architecture
- DDD and Hexagonal Architecture examples
Software Archetypes
Many business systems solve similar problems. The Archetypes repository collects recurring business capabilities and software building blocks that appear across domains and industries.
For selected archetypes, the repository goes a step further and demonstrates complete implementations using Domain-Driven Design and Ports and Adapters Architecture. This allows engineers and architects to see how business concepts can be translated into maintainable software structures and tactical design patterns.
What you'll find inside:
- Business archetypes
- Domain modeling inspiration
- DDD-based implementations
- Ports and Adapters architecture examples
- Tactical design patterns
Legacy Code Task Manager
Legacy Code Task Manager is a playground for practicing refactoring and system modernization. The codebase is intentionally designed to be difficult to work with, creating an environment where engineers can experiment with techniques for improving an existing system.
The repository provides a safe place to practice making incremental improvements, introducing better design, and evolving software without starting from scratch.
Design Patterns
A collection of practical examples that demonstrate how design patterns solve real design problems. The focus is not on memorizing definitions but on understanding when a pattern is useful, what trade-offs it introduces, and how it can improve software design.
What you'll find inside:
- Design pattern implementations
- Examples of code before a pattern is applied
- Opportunities to practice introducing patterns yourself
Why I Share These Projects
I believe software architecture is best learned through practice.
Books, articles, and conference talks provide valuable knowledge, but working with real code helps turn concepts into skills. These repositories were created to make that learning process easier.
Feel free to explore the code, experiment with the examples, and use them as inspiration for your own projects.