Course description

Do you want to feel proud of your work? Write code that your colleagues will admire? Move fast without compromising quality? Build long-living software that is easy and fun to maintain? Get out of technical debt without big upfront time investment? Professionally articulate technical decisions to your team and management? Build remarkable engineering career?

Then this training is for you.

During this intensive, practical and entertaining 2-day workshop you will learn principles, practices and patterns for writing readable, maintainable and effective code.


  • The course is based on real-world project code, stories and examples
  • The course includes practical Lab work
  • The course is updated to support Java 9 and functional programming idioms
  • The course will show many frameworks in action including Spring, Hystrix and others
  • The course runs in a small group with a lot of discussion and experience exchange
  • Attendees will receive optional coding assignment for skill polishing. Homework will be reviewed and supplemented by constructive feedback.


  • Understanding the economics of software design (clean code rationale, design entropy, busting "quality is expensive" myth, consequences of bad code)
  • Design principles, rules, laws and dilemmas (use-reuse paradox, specific-generic dilemma, Law of Demeter, KISS, SOLID, DRY, YAGNI, just-enough design)
  • Effective Naming (principle of least astonishment, command-query separation, eliminating getters and setters, side-effects)
  • Effective Conditionals (how and when to avoid branching, how to eliminate nested branching, making branching easy-to-read)
  • Effective Functions (nulls vs. optionals, single level of abstraction, step-down rule, lambda or not to lambda?)
  • Effective Classes (OO meets functional, objects vs. data structures, abstraction, coupling, cohesion)
  • Effective Comments (when and how to avoid, alternatives)
  • Effective Application/Service Layer (commands, reactions, funnels)
  • Effective Domain modeling (DDD, protecting invariants, value objects, entities, aggregates, event bus, strong and eventual consistency)
  • Effective Persistence (transaction management, unit of work pattern, DAO vs. repository, testing data)
  • Effective Validation (simple and complex rule validation, why Bean Validation sucks, writing custom validator)
  • Effective Exception Handling (when and how to handle exceptions, designing exception hierarchy, checked vs. unchecked)
  • Effective Resilience (failure modes, responding to failures, stability patterns, Hystrix)
  • Effective Concurrency (CompletableFuture, RxJava, testing concurrency and asynchrony)
  • How to stay clean and move fast (incremental refactoring, effective code reviews, pairing, CoPs, brown-bags, quality forecasting with Sonar)
  • … and much more!


Forward-thinking Java developers, architects and team leads willing to significantly improve their Java expertise, productivity and career opportunities.


After 2 days of intensive work, you earn a certificate of accomplishment.

View example certificate


The course is taught in English.

Happy attendees

Over the period of last 3 years, the course has been delivered (publicly and privately) more than 50 times all over the world – Austria, Sweden, Denmark, United Kingdom, Estonia, Latvia, so to name a few. The course regularly receives very high ratings from the participants.

Munich, Germany, 2017

Riga, Latvia, 2016

In-House, 2016

⭐⭐⭐⭐⭐ I wanted to know how I could improve the quality of my code and your course gave me some tools to achieve that. I liked that it was about more than writing code. You gave some tips on how to deal with management and what you can do as a developer to change that for the better and that you need to stay true to yourself. I like that the course doesn't really end's here. That there is homework and that you encourage us to stay in contact. You inspired me to become a better developer and gave me the energy to become the best that I can be.
— 🇧🇪 Liesbeth de Keyzer
⭐⭐⭐⭐⭐ The course was absolutely above expectations. Usually courses just reuse "Clean code" book and provide some "common sense" recommendations. But not this one! More than 95% of information was top new and mind-blowing. I've got new practical tips to use in my everyday work and a completely new look on the things I do. Moreover, it inspired me for further growth as a professional and gave different directions, how to do it! Thanks, Eduard, this was the best training I ever attended!
— 🇱🇻 Alex Kartisevs
⭐⭐⭐⭐⭐ This was the most advanced and best course I've been on! Very entertaining! I learned that I should use more functional Java and that courses can be fun.
— 🇸🇪 Jahziah Wagner


Eduards Sizovs is a hands-on software architect and software development coach who helps awesome teams around the globe become more awesome – work smarter, run faster and enjoy the journey. Eduards is proficient in major aspects of an IT landscape – coding, software and enterprise architecture, automation, continuous delivery, Agile processes, engineering practices, leadership, motivation, teamwork and hiring.

Eduards leads Latvian Software Craftsmanship Community – the fastest-growing software development community in Latvia and organizes DevTernity – the premium-quality international software development conference in Riga, Latvia.

He is a well-recognized international speaker, who had spoken at the largest conferences in Latvia, Lithuania, Estonia, Ukraine, Belarus, Germany, Croatia and the UK.

For years I've been working extremely hard to dig through neverending amounts of information, hype, patterns, practices, case studies and try it all in a real-world environment. Now, my job is to pass the most valuable learnings to you in a live, dynamic and interactive form.
Eduards' Signature





Group Price

2+ people from the same company



12 people max


* Price does not include VAT (if applicable)

* Price for in-house training does not include travelling and accommodation costs (if training is hosted outside of Riga)

* This training is a subject to training cancellation policy