Evgeny Borisov Naya Technologies
Evgeny Borisov
Naya Technologies
Baruch Sadogursky JFrog
Baruch Sadogursky
JFrog
Day 1 / 19:00  / Track 1 / RU

The adventures of Senior Holmes and Junior Watson in the world of software development [Joker Edition]

There will be tools, libraries and frameworks, which perplex common developers in their routines and lead to down times, screwing up deadlines, and prolonged depressions.

Read more
Oleg Šelajev Oracle
Oleg Šelajev
Oracle
Day 2 / 10:30  / Track 3 / RU

Compiling Java ahead-of-time with GraalVM

We'll talk about configuration of SubstrateVM, special aspects of its approach to code compiling and its limitations. We'll discuss which programs might and should be compiled ahead-of-time, look at applications already working and at their performance.

Read more
Nikita Lipsky Excelsior
Nikita Lipsky
Excelsior
Day 1 / 14:00  / Track 3 / RU

How to save yourself from Jar Hell with the help of Jigsaw Layers

We'll look which problems would appear if Jigsaw had had explicit module versions, and how Jigsaw Layers together with Jigsaw services allow us to solve the Jar Hell problem safely.

Read more
Kirill Tolkachev CIAN
Kirill Tolkachev
CIAN
Maxim Gorelikov CIAN
Maxim Gorelikov
CIAN
Day 2 / 12:00  / Track 1 / RU

Micronaut vs Spring Boot, or who's the smallest here?

In practice, developing and testing, testing and developing, we'll see the compromises in developing on SB2 and Micronaut. We shall see who's the best of the best: the most reactive, the handiest, the "cloudiest" — and is "micro" even good for production?

Read more
Gerrit Grunwald Karakun AG
Gerrit Grunwald
Karakun AG
Day 1 / 19:00  / Track 3 / EN

Multi Device Controls — a different approach to UX with Gluon, JavaFX and Polymer

A session about a research project with the goal to use mobile touch enabled devices to input data into desktop software (e.g. JavaFX, HTML5).

Read more
Sergey Melnikov RaiffeisenBank
Sergey Melnikov
RaiffeisenBank
Day 1 / 19:00  / Track 2 / RU

Profiling a black swan using Intel Processor Trace, or what to do when your code takes 20 ms to run instead of 2 ms

This talk deals with profiling small parts of code and learning why sometimes code works really slow. Sergey will show how to improvise a small profiler which will use Intel Processor Trace technology.

Read more
Nikita Koval JetBrains & IST Austria
Nikita Koval
JetBrains & IST Austria
Day 2 / 12:00  / Track 3 / RU

Channels in Kotlin coroutines

Channels algorithms in Kotlin coroutines, comparison with other languages and libraries.

Read more
Andrey Kurpatov
Andrey Kurpatov
Day 2 / 18:50  / Track 1 / RU

New reality of digital civilization

What can aggressive information environment do to our brain? What are the main problems of the human intellect? How to make our thinking more effective by using latest discoveries of the brain sciences? Andrey Kurpatov will tell what awaits us in the future and how we can prepare for it.

Read more
Evgeny Mandrikov SonarSource
Evgeny Mandrikov
SonarSource
Day 1 / 14:00  / Track 4 / RU

Java 4..11, Kotlin, Code Coverage and their best friend — bytecode: scandals, intrigues, investigations

Do you know what is inside of your class files? Are you ready to bet? Let's have fun by diving into bytecode pattern matching and explore how different compilers (Java/Kotlin) and their different versions transform your source code.

Read more
Anton Lapitskiy CUSTIS
Anton Lapitskiy
CUSTIS
Day 2 / 14:00  / Track 4 / RU

Attribute-based authorization: How we stopped distributing roles and started on policies

Anton will tell about varying approaches to the differentiation of access rights (RBAC and ABAC), about base architecture of ABAC solutions and say a few words about already existing products. Then he'll present their own framework for working with attributive access model.

Read more
Dmitry Aleksandrov T-Systems
Dmitry Aleksandrov
T-Systems
Day 1 / 17:30  / Track 2 / RU

Microprofile.io: Not by Spring alone

We'll tell about even more easy and, more importantly, standardized alternative to Spring Boot, designed precisely for microservices. Implementations of this specification, made by different companies, can work on various hardware from Raspberry Pi to large clusters. This specification proved successful and continues to evolve, offering new very useful features right out of the box.

Read more
Venkat Subramaniam Agile Developer, Inc.
Venkat Subramaniam
Agile Developer, Inc.
Day 1 / 10:30  / Track 1 / EN

Don't walk away from complexity, run

We'll look at what leads to complexities, the traps developers and organizations fall into, and what we can do to effectively deal with these common, recurring issues we see across domains and products.

Read more
Nicolai Parlog CodeFX
Nicolai Parlog
CodeFX
Day 1 / 12:00  / Track 1 / EN

Java 11 is here!

Learn all about the recent Java releases from 9 to 11.

Read more
Vadim Tsesko Odnoklassniki
Vadim Tsesko
Odnoklassniki
Day 2 / 14:00  / Track 2 / RU

Reactive ok.ru/music streamer

Serving hundred Gbps from several nodes: architecture, design, gotchas, and solutions.

Read more
Oleh Dokuka Netifi
Oleh Dokuka
Netifi
Day 2 / 10:30  / Track 1 / RU

Reactive hardcore: how to implement own Publisher<?>

Reactive-Streams brought a new, amazing standard for Reactive Libraries users as well as broader horizon of hardcore problems for the standard's adopters. During this talk, we will walk through all the steps of implementing RS Publisher<?> in Java. Finally, we will get an understanding how to build the CORRECT implementation of that interface, test it, and ensure that other popular solutions work similarly.

Read more
Marcus Hirt  Oracle
Marcus Hirt
Oracle
Day 1 / 12:00  / Track 2 / EN

Production time profiling and diagnostics on the JVM

An overview of a variety of platform independent JVM serviceability tools and technologies that can be used for solving problems with applications running on the JVM.

Read more
Josh Long Pivotal
Josh Long
Pivotal
Day 2 / 16:00  / Track 1 / EN

Reactive Spring

Together we'll explore the wacky, wonderful world of Reactive Spring.

Read more
Tagir Valeev JetBrains
Tagir Valeev
JetBrains
Day 1 / 17:30  / Track 1 / RU

Pattern matching and its imaginary friends

We'll examine how the authors of Java see pattern matching, which new features are needed for its comfortable use, and is there any light at the end of the tunnel.

Read more
Baruch Sadogursky JFrog
Baruch Sadogursky
JFrog
Tagir Valeev JetBrains
Tagir Valeev
JetBrains
Day 2 / 14:00  / Track 1 / RU

Java Puzzlers NG S04: Ha, it seems that with this release cycle puzzlers came here to stay!

No more puzzlers in Java, we thought — and then Oracle decides to bring in new ones every six months!

Read more
Benjamin Nothdurft codecentric AG
Benjamin Nothdurft
codecentric AG
Day 2 / 17:30  / Track 1 / EN

Applying (D)DDD and CQ(R)S to cloud architectures with Spring Boot and Docker

Benjamin wants to show, using an application as an example, how to get started with introducing domain models, bounded contexts and implementing CQ(R)S where it makes most sense while trying to avoid the technical debt trap, e.g. misconceptions and fallacies.

Read more
Sébastien Blanc Red Hat
Sébastien Blanc
Red Hat
Day 1 / 16:00  / Track 4 / EN

Building an effective identity and access management architecture with Keycloak

In this session, we will see how you can delegate your identity and access management to an external service that will leverage OpenID Connect, JWT, Single Sign On etc. We will also cover how to integrate your existing infrastructure (LDAP, Kerberos) with these modern architectures.

Read more
Pavel Finkelstein lamoda
Pavel Finkelstein
lamoda
Day 2 / 17:30  / Track 2 / RU

Kotlin — 2 years in production without breaks

Pavel will tell about his first meeting with Kotlin, first experiments and production usage. He'll walk you thru all core (in his opinion) aspects of enterprise development, look at difficulties they met and show their solutions of these difficulties. Also he'll talk a bit about interoperability and whether it is as good as described.

Read more
Harald Wendel TransferWise
Harald Wendel
TransferWise
Day 1 / 14:00  / Track 1 / EN

Transaction cascades, or how to build a transactional microservice architecture

At TransferWise they use Kafka and local database transactions to achieve transactional behavior across multiple microservices. In this talk Harald will describe their architecture and design decisions. He'll compare their own solution with other alternatives and show why they chose to build their own. He'll also give a quick recap on database transactions and Kafka.

Read more
Yuriy Artamonov Haulmont
Yuriy Artamonov
Haulmont
Day 1 / 16:00  / Track 3 / RU

Jlink and Custom Runtime Image — Frankenstein's workshop

In this session we'll demonstrate via examples new possibilities of Java 9 for self-contained systems, approach to migration of the applications and how this technology could be implemented for developing command-line tools and deploying of applications in containers.

Read more
Ivan Ugliansky Excelsior LLC
Ivan Ugliansky
Excelsior LLC
Day 2 / 16:00  / Track 2 / RU

Walking dead objects, or GC is always right

We'll talk about implementation details of different GC algorithms that cause some objects to be collected unexpectedly but others to stay on the heap for a long time after they have become unreachable. We'll also discuss whether this can be dangerous for your application and how to reduce the damage.

Read more
Robert Scholte Sourcegrounds
Robert Scholte
Sourcegrounds
Day 2 / 12:00  / Track 2 / EN

Apache Maven supports ALL Java

This session will highlight the most important features developers should know to work with Java 9 and 10, combined with some practical tips and warnings.

Read more
Derek Ferguson JP Morgan Chase
Derek Ferguson
JP Morgan Chase
Day 2 / 10:30  / Track 2 / EN

Machine learning in Java from nothing to production in one hour

In this session, Derek will show you how to create simple TensorFlow models, train sophisticated ones and obtain predictions from advanced neural networks — all from Java.

Read more
Andrei Pangin Odnoklassniki
Andrei Pangin
Odnoklassniki
Day 1 / 16:00  / Track 1 / RU

Sorting out memory of a Java process

We'll explore which structures of the virtual machine take in virtual memory, how to monitor and manage its consumption. We'll study different strategies of virtual memory management and learn what was changed in the new versions of JDK. We'll examine the real cases of native memory leak and get to know the tools of allocations analysis.

Read more
Jaroslav Smirnov OTS Lab / odgAssist
Jaroslav Smirnov
OTS Lab / odgAssist
Day 1 / 17:30  / Track 4 / RU

Multiagent transportation model for the 2018 FIFA World Cup in Russia on Java in 4 months, with blackjack and evolutionary algorithms

For the 2018 FIFA World Cup in Russia Jaroslav's team developed multiagent transportation model with decision support enterprise system and rendering husk for the Transport Directorate of FIFA World Cup 2018. Jaroslav will tell about development of this project and its architecture.

Read more
Denis Cutic Infobip
Denis Cutic
Infobip
Day 1 / 17:30  / Track 3 / EN

Public API infrastructure evolution

Denis will go through the challenges that were faced in the scaling process and were also driving the evolution of their public API infrastructure. The story is filled with lessons learned and pitfalls, how-tos, and how-not-tos.

Read more
Vladimir Plizga СFT
Vladimir Plizga
СFT
Day 1 / 16:00  / Track 2 / RU

Spring Boot 2: what they do not write in release notes

This talk is a "pitfalls digest", a collection of notes about which pitfalls you may encounter in the process of updating the Spring Boot framework to version 2.* and how to fix or bypass them.

Read more
Maxim Kazantsev Azul Systems
Maxim Kazantsev
Azul Systems
Day 2 / 16:00  / Track 4 / RU

Fuzzing for JVM testing: how and why

We will tell how and why we use generator of random Java programs, how this generator is built and what can be done for generating Scala, Kotlin and other such programs which can be compiled into Java bytecode.

Read more
Gregory Koshelev
 Kontur
Gregory Koshelev
Kontur
Day 2 / 17:30  / Track 3 / RU

Integrating .NET and Java virtual machines

Integrating .NET and Java virtual machines — from simple microservice to complicated in-process cooperation.

Read more
John McClean Oath
John McClean
Oath
Day 1 / 14:00  / Track 2 / EN

Correctness / performance / complexity: Is functional programming worth it?

This talk aims to arm you with the knowledge to make informed decisions around introducing immutability in collections (and other related functional concepts) to your application.

Read more
Pavel Kondratyuk Tinkoff.ru
Pavel Kondratyuk
Tinkoff.ru
Day 2 / 10:30  / Track 4 / RU

Reactive config

When developing big distributed apps, it is usually considered a good practice to separate the app configuration from its business logic. We've developed our own library for dynamic configuration, and we will tell about its internal design and how you can employ it in your own project.

Read more
Yegor Bugayenko Zerocracy
Yegor Bugayenko
Zerocracy
Day 2 / 16:00  / Track 3 / RU

Don't aim for quality, aim for speed

Yegor truly believes that quality is not what programmers should care about. They must care only about speed — close tasks as soon as possible — which means making the project move forward.

Read more
Oleg Nizhnikov Tinkoff.ru
Oleg Nizhnikov
Tinkoff.ru
Day 2 / 17:30  / Track 4 / RU

Modern FP using Tagless Final

There is a new way of app composition gaining popularity in the FP community. It allows to define the accurate description of the components' work without overhead charges and is a perfect realization of Dependency Inversion Principle. We'll discuss the history and the formal, technical and practical aspects of implementing this approach using Scala as an example.

Read more
Marc Hoffmann mtrail GmbH
Marc Hoffmann
mtrail GmbH
Day 2 / 14:00  / Track 3 / EN

Lambda compilation and other gimmicks of modern JDKs

We explore the technical details of compiled lambda expressions and learn about the new JVM capabilities — which come with several performance benefits and could also be used for other JVM languages.

Read more
Konstantin Knizhnik PostgresPro
Konstantin Knizhnik
PostgresPro
Day 1 / 12:00  / Track 4 / RU

Postgres-10k: Scaling Postgres for several thousands of active clients

Konstantin will try to explain issues with Postgres scalability at MPP systems and possible ways of solving this problem.

Read more
Artem Shutak Grid Dynamics
Artem Shutak
Grid Dynamics
Day 2 / 12:00  / Track 4 / RU

How to tune Spark performance for ML needs

Artem will tell about a set of methods tried on a "live" project, which helped make execution time of some jobs 5-20 times better. The talk's aimed at engineers working with big data and especially with Spark.

Read more
Alexander Belokrylov BellSoft
Alexander Belokrylov
BellSoft
Aleksei Voitylov BellSoft
Aleksei Voitylov
BellSoft
Day 1 / 12:00  / Track 3 / RU

Should we try ARM, honey? Theory, applications and workloads

You'll learn about evolution of the Java ecosystem on ARM, features of the ARM port OpenJDK and performance of some workloads. We will tell how in two years AARCH64 became a real gem.

Read more
Alexey Fyodorov JUG.ru Group
Alexey Fyodorov
JUG.ru Group
Andrey Dmitriev JUG.ru Group
Andrey Dmitriev
JUG.ru Group
Vladimir Sitnikov Netcracker
Vladimir Sitnikov
Netcracker
Andrey Kogun  KROK
Andrey Kogun
KROK
Dmitry Aleksandrov T-Systems
Dmitry Aleksandrov
T-Systems
Day 1 / 19:00  / Track 4 / RU

Round table with Joker organizers

Q&A session with Joker 2018 organizers and the Program Committee. You ask questions, we answer them — it's as simple as that.

Read more