
Training
Clean Code
- Clean code & code smells
- Test-driven development
- Refactoring & legacy code
- very high share of hands-on practice
Credit: NASA, ESA, and J. Olmsted (STScI)
Craft skills for professional software development
As the DORA "State of AI-assisted Software Development" report shows, using coding agents amplifies both the good and the bad properties of an existing codebase.
Clean Code therefore remains a highly relevant skill in the age of AI.
In the Clean Code training, you learn to write maintainable, readable and high-quality code - as a daily practice, not an exception.
- Recognize code smells - and apply design principles such as SOLID, DRY, KISS and YAGNI pragmatically
- Develop test-first - master the red-green-refactor cycle in pair and ensemble programming
- Write effective tests - with JUnit 5, AssertJ, and readable, meaningful test names
- Refactor safely - using IDE tooling and a repertoire of refactoring techniques
- Handle legacy code - find seams, characterize unknown code, and pay down technical debt deliberately
Topics in focus
Clean code fundamentals
Principles, naming, functions and code smells - plus design principles such as SOLID, DRY, KISS and YAGNI as pragmatic guidelines.
Test-driven development
Red-green-refactor, coding katas in pair and ensemble, ZOMBIES as a testing strategy, and BDD test names using given-when-then.
Testability & test frameworks
Writing testable code, using JUnit 5 and AssertJ confidently, and improving tests through code review.
Refactoring
Using IDE refactoring tools effectively, transforming code safely step by step, and learning a refactoring catalog.
Working with legacy code
Recognizing and managing technical debt, finding seams as points of intervention, and using approval testing to characterize unknown code.
Optional deep dives
Depending on interest: mocking & test doubles, a short introduction to domain-driven design, architecture patterns, or property-based testing.
How the training works
- Short but thorough introductions - a compact introduction to the goal and background of each topic block.
- Deliberate practice - coding katas in pair programming and as an ensemble, on real code instead of slides.
- Reflect together - review the exercises, common pitfalls, and how to transfer the learning to your own projects.
Very high share of hands-on practice - clean code is practiced, not just explained.


Who is the Clean Code training for?
For everyone who wants to write maintainable code that remains easy to evolve over time and safely improve legacy code.
- Software developers who want to make clean code and TDD part of their daily practice
- Teams who want to establish shared quality standards for their codebase
- Tech leads who want to structure how their team handles legacy code and technical debt
Prerequisites: Programming experience in Java or a comparable object-oriented language.
Your takeaway from the Clean Code training
Write clean code
You apply clean code principles and recognize code smells before they become a problem.
Develop test-first
You confidently apply the TDD cycle and write readable, meaningful tests.
Refactor safely
You improve existing code without putting its functionality at risk.
Handle legacy code
You apply strategies for incrementally improving hard-to-maintain code.
Your trainers

Nicole Rauch
Clean Code & Software Craftsmanship Trainer
Nicole is a freelance software developer and software development coach with an extensive background in compiler construction and formal verification methods. Her repertoire spans clean code and test-driven development as well as specification by example, domain-driven design, React/Redux, and functional programming. She serves on several conference and journal advisory boards, co-organizes conferences, and co-founded the Softwerkskammer, a German-speaking user community for software craftsmanship.
More about Nicole Rauch
Martin Günther
Software Architect & Domain-Driven Design Trainer
Martin helps companies understand complex domains, develop sound architectures, and bring interdisciplinary teams together effectively. With deep technical understanding and active hands-on development experience in Java/Kotlin, he keeps both the big picture and the implementation details in view. Passionate about structured collaboration, he facilitates workshops using methods such as Event Storming and Liberating Structures to guide teams toward practical solutions. A graduate in business mathematics, he has been using coding agents such as Claude Code and GitHub Copilot in client projects since 2025. He regularly shares his knowledge at national and international conferences.
More about Martin GüntherClean Code training: Format & Organisation
Duration
3 days
Format
In-house training, on-site or remote
Prerequisites
Programming experience in Java or a comparable object-oriented language
Language
German or English
Dates
In-house training dates by arrangement.
Group size
Up to 10 participants per training
Price
On request

Your contact: Kathi Asel
I'm happy to answer your questions and find the right setup for your in-house training with you.
Ready for Clean Code?
Want to train a whole team together? The in-house training is tailored to your context - on-site or remote. Use the contact form, tell us your preferred date and a few key details. We'll check availability and send you a matching offer for the training.