Level-up your Java coding skills.


Book now

Introduction

Do you want to write code that is easy to read and test? Develop real-world Java applications that are easy to maintain? Move fast without compromising quality?

Then this course is for you.

During this intensive and practical 2-day workshop, you will learn how to develop modern, clean, and maintainable applications using the latest Java best practices. This is not a trivial Java 15 course for complete beginners. Here you'll learn real-world stuff from class design and unit testing to large-scale architecture, controlling quality, and getting out of technical debt.

Highlights

  • The course is based on real-world project codebases, stories and examples.
  • The course demos are built using real-world libraries such as Spring, Hibernate, and Guava.
  • The course includes practical Lab work and an optional homework assignment.
  • The course is updated to support Java 15 additions and functional programming idioms (but is relevant for apps that run on older Java versions).
  • You will get a list of books, videos, GitHub projects to learn from, and lifetime support from Eduards.

What's under the hood?

(1/9) Effective code design

  • Finding the right level of abstraction
  • Using cognitive load as a driver for refactoring
  • Balancing use vs. reuse paradox
  • Understanding reification
  • Avoid Hasty Abstractions (AHA)
  • Do or Die Principle (DoD)
  • KISS, SOLID, DRY, ABS, YAGNI
  • Just-enough design and Lean code

(2/9) Effective functions

  • Are lambdas always a good choice?
  • Nulls vs. optionals
  • SLAP principle
  • The Step-down rule
  • Command-query separation
  • Replacing getters with queries
  • Replacing setters with domain-driven methods
  • Making conditional easy to read

(3/9) Effective class design

  • Stateful objects or pure functions?
  • Objects or data classes?
  • Anemic or rich domain model?
  • Designing entities
  • Designing value objects
  • Designing domain events / event bus
  • Designing exception class hierarchy

(4/9) Effective service layer

  • What is a service layer and why we need it?
  • What's the relation with the domain model?
  • Two approaches to services: procedures and commands
  • Implementing services with PipelinR library
  • Commands / Handlers / Pipelines
  • Cross-cutting concerns (logging, transactions, resilience)
  • Offloading and scheduling work

(5/9) Effective packaging

  • How to group classes?
  • How much layering is needed?
  • Packages vs. modules
  • First Guess Principle
  • Minimum Visibility Principle
  • Common Closure Principle
  • Modularity patterns
  • Dependency management
  • Balancing coupling and cohesion

(6/9) Effective persistence

  • DAOs
  • Repositories
  • Unit of Work pattern
  • Transaction management
  • Transactional queue / outbox
  • ACID, locking, and isolation modes
  • CQRS and denormalization
  • Designing Aggregate Roots
  • Combining Hibernate and jOOQ

(7/9) Effective validation

  • Secure by design
  • Simple validation
  • Business rule validation
  • Why Bean Validation sucks
  • Bean Validation vs. Fluent Validator
  • Implementing a small validation library

(8/9) Effective testing

  • What is a unit?
  • Qualities of a good unit test
  • How to make (finally) TDD work
  • How to test integrations, APIs, concurrency, async code
  • How to test architecture rules and constraints
  • Libraries that simplify testing (Spock, Testcontainers...)

(9/9) Effective resilience

  • Fault tolerance patterns
  • Retries
  • Timeouts
  • Bulkheads
  • Rate limiting
  • Circuit breakers
  • Hystrix vs. Resilience4j vs. Failsafe

Ready to upgrade your coding skills? Join in!

Audience

Java developers, architects and team leaders eager to improve their Java coding, design and architecture skills.

Certification

You earn a Certificate of Accomplishment after completing an exam. Use it to boost your CV and LinkedIn profile.


Example certificate

Language

The course runs in a diverse international group and is taught in English.

What people say?

97% rate this course "excellent"

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

Munich, Germany, 2017

Riga, Latvia, 2017

Private training, 2017

Private training, 2018

Private training, Turkey, 2019

Presents to attendees

Trainer

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.

Riga, Latvia

16-17 Apr 2021

1499 999€
Sold out

Ask me to organize a private training via [email protected]

London, UK

25-26 Jun 2021

1499 999€
Sold out

Ask me to organize a private training via [email protected]

Berlin, Germany

9-10 Sep 2020

1499 999€
Sold out

Ask me to organize a private training via [email protected]