We offer 3 one day long workshops on 13th of May. We will start at 10:30am and work untill 5:30 pm with an hour break for a lunch. You will need to bring your laptop.

Workshops are paid additionaly at 749PLN (185 EUR) + 23% VAT. The price includes lunch. In order to register please use a button next to the workshop and provide your details.

The workshops will be delivered at Hotel Wyspiański, Westerplatte 15 St., Kraków

Workshop: Get Back in Control of Your SQL

Mastered by Lukas Eder


SQL is a powerful and highly expressive language for queries against relational databases. SQL is established, standardised and hardly challenged by alternative querying languages. Nonetheless, in the Java ecosystem, there had been few relevant steps forward since JDBC to better integrate SQL into Java. All attention was given to object-relational mapping and language abstractions on a higher level, such as OQL, HQL, JPQL, CriteriaQuery. In the mean time, these abstractions have become almost as complex as SQL itself, regardless of the headaches they're giving to DBAs who can no longer patch the generated SQL.

jOOQ is a dual-licensed Open Source product filling this gap. It implements SQL itself as an internal domain-specific language in Java, allowing for the typesafe construction and execution of SQL statements of arbitrary complexity. This includes nested selects, derived tables, joins, semi-joins, anti-joins, self-joins, aliasing, as well as many vendor-specific extensions such as stored procedures, arrays, user-defined types, recursive SQL, grouping sets, pivot tables, window functions and many other OLAP features. jOOQ also includes a source code generator allowing you to compile queries in modern IDEs such as Eclipse very efficiently.

jOOQ is a good choice in a Java application where SQL and the specific relational database are important. It is an alternative when JPA / Hibernate abstract too much, JDBC too little. It shows, how a modern domain-specific language can greatly increase developer productivity, internalising SQL into Java

In this workshop, we will delve into the history of Java and SQL. We'll learn about great new features in recent SQL standards, and we'll apply this knowledge on our own laptops, working with two of the best RDBMS in the market: Oracle and PostgreSQL. We'll implement a small webserver with Spring and jOOQ, leveraging the many features of jOOQ and SQL to get up and running quickly. Whether you're using jOOQ or not, after this workshop, you'll have a strong desire to leverage SQL to the max for your application.

Participants are expected to bring a laptop with Oracle XE 11g, PostgreSQL 9.3, JDK 6+, Maven, and Eclipse (or your favourite IDE)

Lukas Eder

Lukas Eder

Java and SQL aficionado.

Workshop: Java 8 Workshop

Mastered by Raoul-Gabriel Urma


Java 8, released in March 2014, brings the largest update to the language since the introduction of generics in 2004. Why is Java 8 changing again? Because of two trends that could not be ignored:

1) The increasing need to exploit the power of multi-core processors in a programmer-friendly way
2) The increasing demand of processing collections of data with database-like operations (e.g. filter, map, grouping)

Neither of these trends is effectively supported by the traditional object-oriented imperative approach centred around mutating objects, and applying iterators. However, they are easily supported using ideas from functional programming, which Java 8 has taken inspiration from.

This new version of Java incorporate features popular in many other programming languages to respond to these two trends: the ability to represent a piece of behaviour in a concise form (called lambda expressions) and database-like operations on collections (called the new Streams API). In addition, it brings other popular ideas that will impact how you write code on a day to day: default methods (implementation code inside interfaces), the class Optional (an alternative to the null reference), the class CompletableFuture (composable asynchronous programming) and a new Date and Time API designed with immutability in mind.

Why take this course?

Java 8 encourages a different style of programming that:
- lets you cope for requirement changes (less engineering efforts!)
- lets you take advantages of multi-core architecture easily (faster code!)
- lets you process large collections with SQL-like operations (do more in less time!)
- lets you write more concise code (better readability & maintainability!)

In this intensive one-day workshop we teach you how to make use of Java 8 features to achieve all of the above. The course will contain lectures, quizzes, live coding examples and unit test exercises. The workshop is structured as follows and based on the upcoming book “Java 8 in Action: Lambdas, Streams and functional-style programming”:

1) Why you should care about Java 8?

2) Passing code with behavior parameterisation
- Coping with requirement changes
- Behaviour parameterisation
- Anonymous classes
- Real word examples: Comparator, Runnable & GUI events

3) Lambda expressions
- Syntax
- Where and how to use them
- Putting in practice: Execute around pattern
- Using functional interfaces
- Type checking, type inference & restrictions
- Method references

4) Processing data with streams
- Processing collections with database-like operations
- Streams vs Collections: laziness & internal iteration
- Filtering & slicing
- Finding & matching
- Mapping: map & flatMap
- Reducing
- Numeric streams: primitive specialisations & ranges
- Infinite streams

5) Collecting data with streams
- Collectors
- Reducing & summarizing
- Grouping
- Partitioning

6) Refactoring design patterns to lambda expressions
- Strategy
- Template method
- Observer
- Chain of responsibility
- Factory

7) Default methods
- Evolving APIs
- Default methods in a nutshell
- Application of default methods
- Multiple inheritance: rules

8) Optional
- Design better APIs
- Reducing null pointers exceptions

Raoul-Gabriel Urma

Raoul-Gabriel Urma

Coauthor of Java 8 in Action, researcher, speaker and instructor.

Workshop: Mastering Continuous Inspection with SonarQube

Mastered by Patroklos Papapetrou


This one-day course, by one of the authors of SonarQube In Action, is the ideal hands-on workshop to learn the core concepts of source code quality and how to eventually adopt continuous inspection in any software development lifecycle, using SonarQube. It is intended to teach developers, testers and software architects how to use this open-source tool to continuously track and improve the quality of their source code.

Here’s a short outline of what we’re going to deal with during this workshop:
  • Understanding the importance of Technical debt
  • The 7 axes of quality
  • Picking a metric to improve
  • Strategies
  • Implementing with Continuous Inspection & code reviews

Patroklos Papapetrou

Patroklos Papapetrou

Software Gardener/Clean Code Architect, co-Author of SonarQube In Action at Manning.





Organizers & Key partners