Devoxx Poland 2017

Adam Kučera

This is a live streamed presentation. You will automatically follow the presenter and see the slide they're currently on.

Title Text



  • Quick summary of talks which I found interesting
  • Sometimes quite general recommendation, you might already know most of them
  • Forgive my already "clouded" memory :)
  • Feel free to watch to videos of any of those*

    * when they're online


  • Typical opening keynote
  • Move from imperative programming (writing everything ourselves) to declarative programming (relying on frameworks and libraries) 


  • Rely on automated tests, they will really save you from hidden bugs and spare you a lot of time.

Consumer Driven Contracts and Your Microservice Architecture

  • Spring Cloud Contract
  • How to described your API between microservices using a Groovy contract and how to create a stub from this contract to test against


  • Spring Cloud Contracts might be a very convenient way how to specify APIs and test integrations.

Four Distributed Systems Architectural Patterns

  • Good introduction to distributed systems
  • Modern 3-tier (with scallable database)
  • Sharding
  • Lambda & Streaming (reactive programming, Kafka...)


  • None of the architectures is the silver bullet, for each use case one could be better than another. Generally, streaming architecture was perceived as the best, but also as almost the most complicated.

Cracking the Code to Secure Software

  • "Security design patterns"
  • Use domain primitives (immutable)
  • Use entity snapshots (immutable representations of mutable entity)
  • Dealing with legacy code: add new layer translating to domain primitives
  • Boundary testing, extreme testing, domain DoS


  • Use immutable domain primitives wherever possible. (Too bad for all of us Jackson users out there). Test.

Git Anti-Patterns: How To Mess Up With Git and Love it Again

  • Rather introductory speech about GIT and a list of bad practices
  • Git as Dropbox, long living branches, branch highways...


  • Commit early, commit often, perfect later, publish once.

Fostering an evolving architecture in the agile world

  • Quite interesting and amusing talk about a system for Dutch public company managing the Rotterdam port
  • A story of the whole system
  • Many architects -> Agile -> Microservices
  • Lessons learned


  • Do not blindly follow SCRUM rules etc., adjust to needs of your own system and team.

Spring Framework 5: Themes and Trends

  • What's new in the Spring 5
  • RC3 went out yesterday (24th of July)
  • We've covered some of it in the last JavaComp


  • Internal usage of Java 8 + JDK 9 compatibility
  • Reactive Spring (Spring WebFlux)
  • Kotlin support
  • Core improvements (@Nullable usage etc...)

Betting on performance: a note on hypothesis-driven performance testing

  • A scientific approach to develop software
  • When you are choosing a way how to implement your system, you have multiple options.
  • You can make hypothesis about some of these options and bet on them.


  • When dealing with performance, you can implement multiple options, measure performance and decide what's better.


  • Introduction to WebAssembly - portable format for compiled apps on web.
  • Wide area of usages, even for really performance demanding apps (3D games...)
  • So far mostly C++ focused, not really my area of expertise.
  • Basic explanations how it works, formats...


  • The next big thing for the web or just a hype?

Microservices - The Naked Truth Of The Maintainability

  • Nice talk about pros and cons of microservices
  • Micro ≠ small
  • Contracts, Circuit breakers, Monitoring, Automation as code


  • Use those ↑

The end

The end