Practical Clean Code training for Java developers.

Book now


This practical training will teach you how to write clean and readable code in Java 15. Through a series of hands-on and easy-to-follow refactorings, you will learn all fundamental principles and patterns that every seasoned Javist should know to write good code. This course is a fast-track to the knowledge that usually takes years to master: OOP, OOA&D, FP, GoF Patterns, DDD Patterns, Implementation Patterns, SOLID, GRASP.

Throughout this course we’ll be refactoring code smells taken from real production codebases. This ensures that everything you’ll learn here will be immediately applicable at your daily work.


  • The course will demonstrate not only plain Java refactorings, but also refactoring of enterprise code that uses Spring
  • The course will provide you with practical advice on how to get out of technical debt (without big rewrites)
  • Attendees will receive references to books, blogs, and videos for independent self-development


  • The economics of software design (clean code rationale, design entropy, busting ”quality is expensive” myth, consequences of bad code, maintaining high coding standards, managing technical debt)
  • The Principles of Readable Code
  • Refactoring names for better readability
  • Refactoring functions for reduced cognitive load
  • Refactoring primitives into value objects
  • Refactoring classes for better internal structure and The Step-Down Rule
  • Refactoring helpers and utils to objects
  • Refactoring and getting rid of "glue" code
  • Refactoring eager initialization to lazy initialization
  • Refactoring cross-cutting concerns into AOP aspects
  • Refactoring null-unsafe code to null-safety and fail-fast principle
  • Refactoring to the normalized object hierarchy, Liskov-Substitution Principle, and composition
  • Refactoring to the highest (and single) level of abstraction
  • Refactoring god objects to high cohesion and Single Responsibility Principle
  • Refactoring fat interfaces to slim interfaces and Interface Segregation Principle
  • Refactoring to Open-Closed Principle
  • Refactoring to Forwarding Collections
  • Refactoring to The Law of Demeter
  • Refactoring to loosely-coupled objects with dependency injection and Dependency Inversion Principle
  • Refactoring domain objects for lower coupling with DDD patterns (Specification, Query, Object Mother, Event, Role)
  • Refactoring getters and setters to domain-specific methods
  • Refactoring to GoF design patterns
  • Refactoring tests using Behaviour-Driven Development
  • … and much more!


The course is highly recommended for teams that work together.


Java developers with experience in enterprise software development.


Yes, you'll earn a certificate of accomplishment.


The course is taught in English.


Eduards Sizovs

Eduards Sizovs is a distinguished software architect and software development trainer who helps awesome teams around the globe excel at software architecture, engineering practices and soft skills. Eduards is an Oracle Certified Master and Java Enterprise Architect (OCMEA), Certified Scrum Master, Certified Product Owner, Certified Project Management Professional (PMP), and an ICF certified coach. Eduards holds two degrees in Computer Science (programming and software architecture) and international MBA degree (IT process organization, leadership, management). Eduards is an author of upcoming Java Architecture and Software Mentoring books.

Eduards leads DevTernity – the top tech conference in Europe, and is the founder of a tech startup DevTube (#1 Hackernews, #3 ProductHunt).

He is an award-winning international speaker, who had spoken at the largest software conferences.

For years I've been working extremely hard to distill neverending amount of information, hype, patterns, practices, and case studies. I tried them all in a real-world environment. Today, my goal is to pass the most valuable lessons to you in a practical, entertaining, and simple way.
Eduards' Signature

Limited offer. Grab your ticket today.


Private training for your team(s)

in your office or remotely