Artist's impression of a galaxy with a bright core

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.

Pair programming: one developer types on a laptop while a colleague points at the code
Glasses in front of a monitor showing source code

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

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

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ünther

Clean 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

Kathi Asel

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.