Conference program

Conference program is forming and call for papers was opened. We will publish all submitted talks here after initial review stage. Final version of the conference program will be published on April 6th. If you have any questions related to the program and talk submission please send them to review@jeeconf.com.

Training days (May 20-21)

!!! Attention !!! Registration on training days and payment for them should be done separately from main conference days. Follow conference program and announcements on the conference site to choose the most suitable trainings.

May 20 May 21
9:30-18:30
9:30-18:30
9:30-18:30  
9:30-18:30  

Detailed schedule on May 22nd

english language – presentation in English.

Track A (700 seats)
General topics
Track B (150 seats)
JDK/WEB
Track C (150 seats)
JVM languages
Track D (250 seats)
Big Data/Cloud
Track E (100 seats)
Tools/Approaches
9:00-9:40 Registration and welcome coffee
9:40-10:00 Conference opening (Track A)
10:00-10:45 Pragmatic Functional Refactoring with Java 8

 
JDK: CPU, PSU, LU, FR – WTF???

Overview of reactive web application development in Scala with Spray/Akka HTTP and Play

 
Scaling a solution of an NP-hard problem in a cluster of machines using Apache ZooKeeper

Kyrylo Holodnov (Ukraine)
Know Your User’s Location

Anton Moiseev (Russia)
10:45-11:00 Break
11:00-11:45 First steps in GC tuning

Just what are you doing, HotSpot?

Gleb Smirnov (Estonia)
DSL in Clojure

Misha Kozik (Ukraine)
Painfree Object-Document Mapping for MongoDB

Philipp Krenn (Austria)
 
Hey, I’ve seen something like it before!

Maxim Ivanov (Russia)
11:45-12:00 Break
12:00-12:45 Making This Rhinoceros Thunder

 
RESTful services and OAUTH protocol in IoT

Lessons from Implementing a Modern B2C System in Scala

Yuriy Guts (Ukraine)
Big Data analysis approaches in Java world

Serhiy Masyutin (Ukraine)
Delivering Native User Experience in Client-Side Java Applications

Nikita Lipsky (Russia)
12:45-14:30 Lunch time
14:30-15:15 Spring Puzzlers

Atomics, CAS, and Nonblocking Algorithms

5 Bullets to Scala Adoption

Tomer Gabel (Israel)
Elastic stack in BigData

Andrii Golovei (Ukraine)
JVM Q&A Panel

15:15-15:30 Break
15:30-16:15 Java Concurrency Applied

MVC 1.0 by Example

Ivar Grimstad (Sweden)
 
JVM Languages Q&A Panel

ETL all the things!

Dmitriy Morozov (Ukraine)
Spring Boot for Devops

Nicolas Fränkel (Switzerland)
 
16:15-17:00 Coffee break
17:00-17:45 My manager sucks!

Packed Objects, Object Layout & Value Types – a Survey

Volker Simonis (Germany)
 
Building an Enterprise-less online bank

Anton Keks (Estonia)
Introduction to Real-Time Big Data with Apache Spark

Microservices, ‘Enterprise’ and Conway’s law

17:45-18:00 Closing of first conference day (Track A)
18:00-20:00 Whiskey party

Detailed schedule on May 23th

english language – presentation in English.

Track A (700 seats)
General topics
Track B (150 seats)
JDK/WEB
Track C (150 seats)
JVM languages
Track D (250 seats)
Big Data/Cloud
Track E (100 seats)
Tools/Approaches
9:00-9:40 Registration and welcome coffee
9:40-10:00 Opening of the second conference day (Track A)
10:00-10:45 Building “Bootiful” Microservices with Spring

Josh Long (USA)
Everything you wanted to know about writing async, high-concurrency HTTP applications in Java, but were afraid to ask

Building domain-specific languages with Groovy

Fault tolerance – look, it’s possible!

“Codename One” – Java to Obj-C bridge

10:45-11:00 Break
11:00-11:45 Speed up Your Java by Turning it into Binary

CompletableFuture is here

Dmitry Chuyko (Russia)
Scala Rock-Painting

Dmytro Mantula (Ukraine)
The modernization of legacy systems with microservices, Hystrix and RxJava

Holger Kraus (Germany)
 
Spring Q&A Panel

11:45-12:00 Break
12:00-12:45 Java Generics: Past, Present and Future

 
Heap, off you go

Groovy under Macroscope

Sergei Egorov (Estonia) and Baruch Sadogursky (Israel)
What’s In Your Cloud?

Josh Long (USA)
How to write IDE for your DSL in one day

12:45-14:30 Lunch time
14:30-15:15 Spring Data, ta da!

Web-application I have always dreamt of

About concurrency abstractions with Observable’s, Future’s, Akka (actors) in Scala

 
App infrastructure for microservices with Spring Cloud 1.0.0

Igor Khotin (Ukraine)
Less JS! Web components for back-end developers

Olga Semeniuk (Belarus)
15:15-15:30 Break
15:30-16:15 Side-By-Side Performance Comparisons

Gleb Smirnov (Estonia)
Node.js and Evented I/O Alternatives on the JVM

Niko Köbler (Germany)
Productivity in Scala

Big Data: from mammoth to elephant – transforming legacy solutions with Hadoop infrastructure

Spring Boot. Boot up your development

Sergey Morenets (Ukraine)
16:15-17:00 Coffee break
17:00-17:45 Do we need JMS in 21st century?

Write code faster with fewer errors: is it possible?

The Epic Groovy Puzzlers [Season 2]: The revenge of the parentheses

How to Manage 10K request per second in HA manner

Improve your tests quality with Mutation Testing

Nicolas Fränkel (Switzerland)
17:50-18:20 Conference closing (Track A)

Submitted talks

Do we need JMS in 21st century?

Abstract: JMS is known as standard way to implement distributed work with messaging in Java world. There are many JMS providers, both open source and commercial. Large percent of developers use JMS for almost every case when they want to sent message and process it on the other side. But now there are many alternative solutions to organize message queues: AMQP, Redis, ZooKeeper, Apache Kafka or even custom solutions based on Cassandra. Why not to use them instead of JMS? In this talk we will discuss key “issues” in any messaging system and then with this knowledge in mind look once again at JMS and alternative approaches using practical cases from my experience. May be after this talk some more people will stop using JMS and start using their mind. :)
Format: Talk (45 minutes)
Language: Russian

Java Concurrency Applied

Abstract: Every Java developer knows that concurrency is evil and it is very hard to write correct concurrent code, frequently it breaks all expectations. But what tasks do arise in real commercial Java project except traditional running peace of code async?

In this talk I will present some tasks we solved in our projects and solutions we came to. It is practical journey to expand your horizons in applied Java concurrency.

Format: Talk (45 minutes)
Language: Russian

How Java developers must test their applications

Abstract: In the modern development all developers understand importance of testing. In theory, most of Java developers even understand that they need to write unit and integration tests, or functional tests as the best result. But there is a question from many of them “HOW?”. In the real life everything is not so easy like in samples from the internet. In this talk I will present my expericence, tools and techniques for testing different layers of the application witj RDBMS, NoSQL storages, file system, MVC frameworks, multithreading, REST services and other common parts of almost every Java application. This talk will have very low number of slides, only code, only hardcore!
Format: Master-class (1 hour 40 minutes)
Language: Russian

CompletableFuture is here

Abstract: Many have said that Java has no future. But it is now 2015, the new APIs and trendy lambda dances in Java 8. And a crowd of advanced neighbors​​ that have their own means of asynchronous processing for ‘going to production quickly.”

Let’s talk about other languages ​​and libraries a bit. For a long time we already have Future and ExecutorService for asynchronous execution. However, with the advent of CompletableFuture in JDK 8, the way opened from callback hell to clean and more functional code.

We look at practical examples of the challenges CompletableFuture ‘with streams and lambdas’ takes and about it’s efficiency.

Format: Talk (45 minutes)
Language: Russian
Speaker: Dmitry Chuyko

Side-By-Side Performance Comparisons

Abstract: Suppose you want to have a general understanding of how the performance changes when you add a new JVM argument. For instance, you develop an agent, and you want to make sure that the clients’ performance does not suffer when it’s attached. Or you want to see if it is a good idea to enable a JVM option by default.

There are surprisingly many ways to do it wrong. The talk will cover some of them and discuss the general problem of benchmark suites for Java.

Format: Talk (45 minutes)
Language: Russian
Speaker: Gleb Smirnov

Just what are you doing, HotSpot?

Abstract: Most engineers face problems that are new to them from time to time. Sometimes reading the docs is enough to solve it. Sometimes, there is someone who can help you out. Some other times, you have to dig in by yourself. When things get as deep as JVM, many engineers tend to back down.

But come on, HotSpot is not a mysterious machine. It is opensource, after all! All the seemingly weird JVM behavior can be reproduced, and explained if one goes just a bit deeper.

This talk will take the audience to the fun world of the JVM sources and review several case studies that are initially puzzling, but are actually quick to be dissolved.

Format: Talk (45 minutes)
Language: Russian
Speaker: Gleb Smirnov

Introduction to Real-Time Big Data with Apache Spark

Abstract: This presentation will be useful to those who would like to get acquainted with Apache Spark architecture, top features and see some of them in action, e.g. RDD transformations and actions, Spark SQL, etc. Also we will cover real life use cases related to one of ours commercial projects and recall roadmap how we’ve integrated Apache Spark into it.
Format: Talk (45 minutes)
Language: Ukrainian

Where Is My Memory?

Abstract: Memory leaks and other memory exhaustion situations are frequent enemies of Java application developers and administrators. They can crash your application or make it unbearably slow. This tutorial explains different ways to monitor the memory usage of Java applications and how to distinguish between normal and critical situations. It also explains what information is necessary and when and how to collect it to start solving memory-usage-related problems in your application. You’ll also learn what a memory dump is and how to use it. The presentation also briefly discusses what class loader leaks are and how they differ from object leaks. The session ends with a brief discussion of what other tools are available and if they are useful.
Format: Talk (45 minutes)
Language: Russian

First steps in GC tuning

Abstract: Correctly configured Garbage Collector is essential for application performance. Unfortunately, there are more than 200 JVM configuration parameters which influence GC in one way or another. Their very obscure names make your command line looks like a magic incantation.

The goal of this talk is to demystify Garbage Collector optimisations. I will explain the basics of Garbage Collector tuning, starting from data collection and analysis. I will show how to formulate optimisation hypotheses, choose right parameters for it and verify if they worked. You will not become a GC expert, but you will not be afraid of GC tuning anymore.

Format: Talk (45 minutes)
Language: Russian

Heap, off you go

Abstract: Automatic memory management and garbage collection is one of the biggest advantages of JVM compared with previous platforms. But it has a price: GC overhead and pauses. When every millisecond counts this price can be too high. You can get away and not pay it by taking responsibility back into your hands.

I will describe what does “off-heap” memory means for java application developer and how he can use it in order to speed his application up. The majority of this talk is live code demonstration. I will use different ways to implement off-heap data storage and will show how fast one and the same piece of code runs with each implementation.

Format: Talk (45 minutes)
Language: Russian

MVC 1.0 by Example

Abstract: JSR 371: Model-View-Controller (MVC 1.0) Specification is targeted to be a part of the upcoming Java EE 8 release. In this session I will quickly go through the nuts and bolts of this JSR. I will then jump right into a demo showing the key concepts by building an application based on MVC 1.0 from scratch. As we go I will also make a quick comparison with other frameworks, such as Spring MVC. This session will be based on a live coding demo backed by a set of introductory slides.
Format: Talk (45 minutes)
Language: English
Speaker: Ivar Grimstad

Improve your tests quality with Mutation Testing

Abstract: Unit testing ensures your production code is relevant. But what does ensure your testing code is relevant? Come discover mutation testing and make sure your never forget another assert again.

In the realm of testing, the code coverage metrics is the most often talked about. However, it doesn’t mean that the test has been useful or even that an assert has been coded. Mutation testing is a strategy to make sure that the test code is relevant.

In this talk, I will explain how Code Coverage is computed and what its inherent flaw is. Afterwards, I will describe how Mutation Testing work and how it helps pointing out code that is tested but leave out corner cases. I will also demo PIT, a Java production-grade framework that enables Mutation Testing on a simple code base. If time allows, a demo will also show how PIT can be integrated with SonarQube.

Format: Talk (45 minutes)
Language: English

Spring Boot for Devops

Abstract: Spring Boot is a product from Spring, that provides many configuration defaults for a new Spring project, so that one can set up a project in minutes.

However, this is only one of the many features of Spring Boot. One of its module also provides many important Non-Functional Requirements out-of-the-box: monitoring, metrics, exposing those over HTTP, etc. In this presentation, I’ll demo some of those, that will make DevOps more than a little happy.

Format: Talk (45 minutes)
Language: English

JDK: CPU, PSU, LU, FR – WTF???

Abstract: For the time beeing, there are 4(!) different types of Oracle JDK Updates: Critical Patch Update (CPU), Patch Set Update (PSU), Limited Update (LU) and Feature Release (FR). We will talk about differences between these types of updates, about reasons led Oracle to this model. As a result, you will understand what version of JDK/JRE you should use in production, in test environment and on your develment machine and what to expect from another JDK release.
Format: Talk (45 minutes)
Language: Russian

Atomics, CAS, and Nonblocking Algorithms

Abstract: This talk will introduce you in disadvantages of locking, CAS operations, Java atomic variable classes and a couple of nonblocking algoritms: nonblocking stack and nonblocking queue. If we have time, we will also talk about ABA problem. The talk is based on JCIP (§15) and TAoMP (§§ 5, 7, 10, 11). It will be interesting for Java programmers who have heard about CAS and lock-free, but who have no experience in writing non-blocking code.
Format: Talk (45 minutes)
Language: Russian

Big Data: from mammoth to elephant – transforming legacy solutions with Hadoop infrastructure

Abstract: You run your SQL-centric infrastructure for 10 years and slowly starting to note you can’t do this way anymore – everything is getting too expensive but your business requires things which are simply impossible without radical cahnges.

This is exact situation we had 2 years before. So we’d like to shouw our experience:

  • Why and how we came into Big Data?
  • Why we choose Apache and Hadoop?
  • What to do and what is already done?
  • What lessans were learned?
  • Hadoop and relational databases: fight or synergy?
  • Reactive Big Data manifest.
Format: Talk (45 minutes)
Language: Russian

5 Bullets to Scala Adoption

Abstract: So you’ve heard of this newfangled “Scala” thing and think it might be worth checking out. Good for you! Unfortunately, it’s also daunting. Your first search for Scala is likely to pitch it as a “statically-typed hybrid object-oriented and functional language”, which is technically true but doesn’t really help much. Instead, this talk will provide an overview of the language, focusing on five highly practical advantages Scala has over Java without a brain hemorrhage-inducing paradigm shift, followed by some tips and recommendations on Scala adoption in the real world and (as time allows) open-ended Q&A.
Format: Talk (45 minutes)
Language: English
Speaker: Tomer Gabel

Painfree Object-Document Mapping for MongoDB

Abstract: Morphia is MongoDB’s JPA-like Object-Document Mapping (ODM). However, there is no object-relational impedence mismatch since documents fit the concept of object-orientation much better. This removes a lot of JPA pain, which makes database interactions fun again.

On a practical level we take a look at the available annotations and how to map your objects as well as how to easily query data in MongoDB. Next we discuss some patterns on how to solve common requirements, such as the proper use of generics, auto-increments, and the encryption of sensitive data. The talk concludes with some tips and lessons we’ve learned from using Morphia in production for three years.

Format: Talk (45 minutes)
Language: English
Speaker: Philipp Krenn

Fault tolerance – look, it’s possible!

Abstract: The world of old-school approaches to develop software look like are going away. We have no rights to ignore errors that might never happen; connections that might never will be broken or interrupted, processes that might never be killed; networks that might never be slow and this list could continue further…

Let’s endue our software with capabilities to survive in the wild world of reality. In this talk I’m going to depict fault tolerance concepts and patterns, to provide guidance for implementing resilient software.

Format: Talk (45 minutes)
Language: Russian

Spring Puzzlers

Abstract: Everyone knows, that Spring is one of the most powerful and useful frameworks for Java. So how deep are you familiar with it?

  • Level 1 – You know how to use Spring basic without understanding how it actually works under the hood.
  • Level 2 – You understand Spring internals, so you can customize it in accordance with the needs of your project.
  • We offer you an upgrade to Level 3 – to obtain knowledge of very particular but important details about Spring. This session includes many intricate riddles about Spring, which were gathered from real production java projects. Solving them will help you to acquire very important knowledge about Spring and will protect you from different mystical bugs.

Format: Talk (45 minutes)
Language: Russian

Building an Enterprise-less online bank

Abstract: I am pleased to tell you about the architecture of an online banking platform based on Play Framework and PSJ – Plain Simple Java. I will show why it’s better, faster and cheaper than building on the overused Java Enterprise stack. Online banking solutions on this platform now serve Bank Saint Petersburg and UBRD in Yekaterinburg, both of which have won many awards right after launch.

Play Framework greatly helped to give a quick start and put architecture on the right track, but of course the real life has made some corrections, especially related to integration with backend systems: online bank is responsible for the overall user experience, so it must work around any flaws of IT systems in the bank and outdated legal requirements. I will talk about what is particularly good about Play Framework and what we had to do differently, as well as how Agile practices help us to fight poorly designed backend-systems.

Format: Talk (45 minutes)
Language: Russian
Speaker: Anton Keks

Write code faster with fewer errors: is it possible?

Abstract: Developers want to make very few errors in their code and to spot them as early as possible: with the help of unit tests, or earlier, during compilation, or best of all, immediately after they typed something wrong in their IDE. This is what static code analyzers are for. Some of them are built-in, others need to be run separately, some check just about any code, the others require it to be annotated first, and there are tools that are a little bit of all. Do the ends justify the means? Is it even worth trying? What kind of errors can be spotted by static code analysis? How sure can we be if what an analyzer gives us is a real error or a false positive? This talk hopefully helps you answer these questions.
Format: Talk (45 minutes)
Language: Russian

RESTful services and OAUTH protocol in IoT

Abstract: From the software development perspective Internet of Things (IoT) is about programming sensors, connecting them with each other and integrating them with existing business applications.

While IoT-enabled devices can use a variety of proprietary software, RESTful Web services and OAUTH protocol play a role of a glue that allows to integrate multiple devices into an application workflow. This presentation will demonstrate a sample architecture of such an application. You’ll also see a live demo of using commercial consumer devices as a part of an application that utilizes REST API, OAuth, Websockets, JavaScript and Java. This presentation will give you an idea of how to authenticate users and integrate new IoT devices as they become available on the market.

Format: Talk (45 minutes)
Language: Russian
Speaker: Yakov Fain

The Epic Groovy Puzzlers [Season 2]: The revenge of the parentheses

Abstract: More strange, more bizarre, more fun! The Groovy Puzzlers hits with its second season in which we implemented the lesson learned from the first one – do more of the same (always as a duet)! Expect even more “NO WAY!”, “WHOA!”, “WTF!”, O_o and prizes flying around, and expect to learn more about Groovy’s darkest secrets! As usual, the traps we fell into here in JFrog and contributions from top-notch Groovy authors and users!
Format: Talk (45 minutes)
Language: Russian

Everything you wanted to know about writing async, high-concurrency HTTP applications in Java, but were afraid to ask

Abstract: With tens of millions of clients continuously downloading binaries from our repositories, we decided to offer an OSS client that natively supports these downloads.

In this talk, we will share the main challenges in developing a highly-concurrent, resumable, async download library on top of Apache HTTP client. We will cover other libraries we tested and why we decided to reinvent the wheel. We will see important pitfalls we came across when working with HTTP and how using the right combination of techniques can improve performance by an order of magnitude. We will also see why your initial assumptions may completely change when faced with other players on the network.

Consider yourself forewarned: lots of HTTP internals, NIO and concurrency ahead!

Format: Talk (45 minutes)
Language: Russian

Spring Boot. Boot up your development

Abstract: One of the most frequent tasks in software development is deployment and configuration of applications. Spring Boot is modern framework that allows to simplify and speed up both tasks bringing standards and rules in the development process.
Format: Talk (45 minutes)
Language: Russian

Spring Data, ta da!

Abstract: Have you ever migrated from one database to another or needed to change ORM? Have you ever moved from relational database to NoSQL. Or maybe you worked on projects which had a combination of both of them above and planned to introduce additional database? How much did you suffered trying to save your infrastructure features? In the current session, I’ll show you how you can reduce the pain by using Spring Data.
Format: Talk (45 minutes)
Language: Russian

Big Data analysis approaches in Java world

Abstract: Your project got data. Big data. Your business wants using it. On regular basis. Today data varies from mobile app logs to video streams and business needs assistance now and then. How can you get support from technology? You will learn how In-Memory Data Grid, Massively Parallel Processing and Map-Reduce can help. Also you’ll get an overview of a real life use case when sensor data is analized with HP Vertica, Java and R.
Format: Talk (45 minutes)
Language: Russian

“Codename One” – Java to Obj-C bridge

Abstract: Is the good time of Java world “Write once, run anywhere” coming back? Codename One is the only Java iOS tool that currently comes close to this concept. Java bytecode is translated to native C/ObjC code and compiled using Xcode for seamless mobile application development. We will review this open-source platform and see its capabilities.
Format: Talk (45 minutes)
Language: English

My manager sucks!

Abstract: Software developers can be divided into two groups: those who think that their manager sucks, and those who believe that managers are not needed at all. Managers can be divided into two groups too: those who think that they know how to write software and those who know how to deliver the product. In this talk we’ll discuss all points of views to put your mind at ease and come up with a definition of a good manager and a good employee.
Format: Talk (45 minutes)
Language: Russian
Speaker: Yakov Fain

Node.js and Evented I/O Alternatives on the JVM

Abstract: Node.js (or I/O.js) as an evented I/O runtime is very popular and is used widely. But how do you integrate Node in enterprise architectures? There are mature monitoring processes for JVM runtime environments and a significant part of the business logic is implemented in Java libraries. In addition, JavaScript code execution in Node.js is only single threaded, is it worth at all?

The seamless integration and a (nearly complete) compatibility to Node.js applications in JVM environments promise Nodyn from RedHat, but it’s using alternative JavaScript engines from V8 like Nashorn and DynJS; additionally there’s Netty and Vert.x.

This approach deals with the ability to be able to execute JavaScript code not only non-blocking and asynchronously, but also in highly distributed environments using the Vert.x Eventbus. Additionally, there are other advantages of using a JVM-based scripting engine when developing for enterprise environments.

Come and see my Beer-as-a-Service in action!

Format: Talk (45 minutes)
Language: English
Speaker: Niko Köbler

Web-application I have always dreamt of

Abstract: Through years of work have been trying many of Java frameworks which provides different level of abstractions on both server and client-side. Pure Servlet+JSP, JSF, GWT, Struts, Spring MVC, Vaadin, Play!, DWR, you name it. Sometimes it felt good, sometimes not, and with each year number of “good” applications reduced to the critical minimum.

Later I tried to bring all the good points I had ever seen together to create “a perfect being” and after years of struggling I feel that I have reached the goal. Let me share it…

Format: Talk (45 minutes)
Language: Russian

How to write IDE for your DSL in one day

Abstract: Xtext is a new framework for developing parsers for your DSL language linked with power of the Eclipse platform. During this talk I will show how advantages of this tool can help as to build powerful IDE for own DSL language during just one day.
Format: Talk (45 minutes)
Language: Russian

Pragmatic Functional Refactoring with Java 8

Abstract: You may be hearing a lot of buzz around functional programming. For example, Java 8 recently introduced new features (lambda expressions and method references) and APIs (Streams, Optional and CompletableFutures) inspired from functional ideas such as first-class functions, composition and immutability. However, what does this mean for my existing codebase?

In this talk we show how you can refactor your traditional object-oriented Java to using FP features and APIs from Java 8 in a beneficial manner. We will discuss things like:

  • How to adapt to requirement changes using first-class functions.
  • How you can enhance code reusability using currying.
  • How you can make your code more robust by favouring immutability over mutability.
  • How you can reduce null pointer exceptions with Optional.
Format: Talk (45 minutes)
Language: English

Java Generics: Past, Present and Future

Abstract: Generics are one of the most complex features of Java. They are often poorly understood and lead to confusing errors. Unfortunately, it won’t get easier. Java 10, release planned for 2018, extends Generics. It’s now time to understand generics or risk being left behind.

We start by stepping back into the halcyon days of 2004 and explain why generics were introduced in the first place back. We also explain why Java’s implementation is unique compared to similar features in other programming languages.

Then we travel to the present to explaining how to make effective use of Generics. We then explore various entertaining code examples and puzzlers of how Generics are used today.

Finally, this talk sheds light on the planned changes in Java 10 with practical code examples and related ideas from other programming languages. If you ever wanted to understand the buzz around higher kinded types or declaration site variance now is your chance!

Format: Talk (45 minutes)
Language: English

Packed Objects, Object Layout & Value Types — a Survey

Abstract: Java is often criticized for not supporting C-style structs. This makes it hard to efficiently implement certain types of data structures like for example arrays of small objects.

However, recently this problem has been addressed by several different approaches. My talk will briefly introduce Packed Objects , an extension available in IBM’s Java SDK 8, Object Layout , a layout-optimized Java data structure package proposed by Gil Tene and Value Types , an OpenJDK proposal for small, immutable, identityless value types.

I will describe the commonalities and differences of the three approaches and explain how they can improve the memory overhead and locality of Java objects. Finally I will deep-dive into the implementation of the Object Layout library and explain how it can be transparently intrinsified and optimized in the HotSpot VM.

Attendees of my talk will become familiar with the development of an emerging Java technology. The will also get a good impression of what it means to implement such an extension in the Java Virtual machine and gain some insights into the HotSpot VM.

Format: Talk (45 minutes)
Language: English

Delivering Native User Experience in Client-Side Java Applications

Abstract: A modern internet service is not just a web client today. It is common to write native mobile clients at least for the major platforms (iOS/Android).

And this trend is extending to the desktop as well, forcing ISVs to look for cross-platform solutions.
Now recall that Java offers a variety of rich UI frameworks, from Swing to JavaFX, for all major desktop platforms right now.

However, to be called a native client, an application written in Java should deliver native user experience:
it should install in a native manner, come with no external dependencies, look good, start and work fast, and not consume too much memory.

In this talk we will consider how these requirements are addressed by different Java implementations and solutions.

Format: Talk (45 minutes)
Language: Russian
Speaker: Nikita Lipsky

Java restart with WebFX

Abstract: The purpose of the WebFX project is to investigate the capabilities of using JavaFX to build rich web applications. Actually, it is an attempt to create a new web where HTML is replaced with FXML — the markup language for JavaFX UI, and the logic can be written in any programming language that is available on top of Java platform from JavaScript, Groovy, JRuby to Java, Kotlin and Scala. Java ReStart is a complimentary project that acts as transport layer for WebFX allowing FXML pages to reference arbitrary Java byte code on a web server and hence any custom JavaFX UI components and Java third-party libraries. In addition, Java ReStart allows to run arbitrary Java applications instantly from a web server downloading only required parts of applications on demand and executing them in parallel with downloading.

I would like to give an overview of the projects, make a live demo, compare the proposed technologies with traditional web and native clients, show how the technologies differ from Java applets and Java Webstart, reveal benefits in compare with RDP-like approaches. Finally, I will share my vision on how to evolve the projects.

Format: Talk (45 minutes)
Language: Russian
Speaker: Nikita Lipsky

Building domain-specific languages with Groovy

Abstract: Domain-specific languages (aka DSLs) brings their creators to the new level of abstractions power. They indulge two primary desires of each developer: to play with challenging and interesting problems and to make future tasks easier and more pleasant to work with.

What usually stops everyone from implementing really nice DSL is either poorness or complexity of instruments for their creation. Groovy is modern JVM language which features makes it first choice for simple and enjoyable DSLs implementing.

In this talk, we will look at the instruments that Groovy provide for DSL builders and use it for creating our own DSL. We will cover features ranging from what Groovy can suggest for standard Java developer to transform his ugly Java DSL into something acceptable in 5 minutes to advanced features like Metaobject protocol and AST transformations.

Format: Talk (45 minutes)
Language: Russian

Productivity in Scala

Abstract: Scala can be really complicated, and it’s normal that you don’t know how to start learning it. So it really simple to miss possibilities for the beginners to learn Scala effectively.

This talk is about what tools and practices can be used for the beginners. We will observe Scala Worksheet and its practices. We also will make a review for the most common mistakes in Scala code. Moreover I’ll tell you about refactoring tools and implicits debug tools. This talk will have some introduction to Scala, so any knowledge of this language is not required.

All of this will help people, who want to start learning Scala, to do it in more effective way and it also will help people, who already know Scala, to use it in more powerful way.

Format: Talk (45 minutes)
Language: Russian

DSL in Clojure

Abstract: Clojure is a great language, especially for writing DSLs. Talk overviews DSL examples, common problems and approaches to their solving. Also we will discuss Instaparse, Clojure library which makes context-free grammars as easy to use as regular expressions.
Format: Talk (45 minutes)
Language: Russian
Speaker: Misha Kozik

ETL all the things!

Abstract: The talk will compare Cascalog, fully-featured data processing and querying library on top of Hadoop, and Sparkling – A Clojure API for Apache Spark. How both of these compare in terms of performance and code complexity for Big Data processing and why you shouldn’t be writing MapReduce jobs in plain Hadoop API.
Format: Talk (45 minutes)
Language: Russian

Microservices, ‘Enterprise’ and Conway’s law

Abstract: Microservices are today’s hype. It seems that if you’re not doing them – you’re old fashioned and Doing It Wrong. But to do it properly you have to work in certain environment – ‘you have to be That tall’ as Martin Fowler wrote. In particular if you ignore things Conway’s law you’ll fail miserably.

In this talk I’d like to tell you about our (small agile software house working for Big Company) experiences – when is it possible to change the company you’re working for and when it’s better to accept its constraints – and what can you do to make it still a bit better place to live – which rules and practices seen on Netflix gorgeous talks can be easily used and which are more problematic.

Be aware that I’ll use old-fashioned words like OSGi, but I’ll try to omit most technical details and focus more on bigger picture – how we tried to move from good (?) old ESB towards fashionable microservices and where and why we decided to stay.

Format: Talk (45 minutes)
Language: English

Lessons from Implementing a Modern B2C System in Scala

Abstract: Whenever a functional language is mentioned, everyone talks about typical applications like DSL, parsing, data mining, or scientific computing. But what about mainstream consumer-facing applications? Can you build your next project with Scala? What if your system must run in the cloud, on desktop computers, and on specialized hardware, can you still do it? We’ll share our experience of implementing such a system for a German fitness startup that utilized custom-built devices, biometrics, cross-platform integration, and, of course, Scala. We’ll discuss the challenges we ran into and pitfalls you can avoid when your team decides to go functional.
Format: Talk (45 minutes)
Language: Ukrainian
Speaker: Yuriy Guts

Making This Rhinoceros Thunder

Abstract: Nashorn, being part of OpenJDK is in unique position of being a JavaScript runtime embedded in the Java ecosystem. I’ll explain some of its under the hood workings (some of them are new in the just released Java 8u40). That understanding will let you get the most performance and functionality out of it when you use it to build Java+JS hybrid services and applications for the JVM.
Format: Talk (45 minutes)
Language: English

Scaling a solution of an NP-hard problem in a cluster of machines using Apache ZooKeeper

Abstract: NP-hard problems play an important role in cryptography and are frequent in graph theory. Large number of computers don’t reduce a complexity of an algorithm, but a solid architecture and design of distributed system can provide good scalability. In this talk, I will solve a non-standard NP-hard problem and will give examples how to solve it in a cluster of machines using Apache ZooKeeper.
Format: Talk (45 minutes)
Language: Russian

App infrastructure for microservices with Spring Cloud 1.0.0

Abstract: In this talk we will cover a new trend in distributed enterprise architecture – microservices. How the leading technology companies like Netflix and Amazon come to use that approach. How does it help them to scale their infrastructure. And how the newest set of tools in the Spring family would help you to apply those design principles in practice.

Spring has always been about patterns and Spring Cloud brings you implementation of several widespread ones for distributed apps.

We will talk about the problems we’ve encountered while trying to move our projects in cloud, what pain Spring Cloud promises to fix, how it fits the new cloud world vision. And what should come first – DevOps or Microservices.

Format: Talk (45 minutes)
Language: Russian
Speaker: Igor Khotin

Hey, I’ve seen something like it before!

Abstract: We’ll talk about how development methodology has changed in the Java world for the last 15 years. You will see examples of architectural mistakes, frequently involving buzzword heavy hyped technologies, like “NoSQL”, “Microservices” and so on. Often popular “innovative approaches” aren’t more than yet another viewpoint to a known technological business problem. If you are responsible for architectural decisions, the thought “Hey, I’ve seen something like it before!” is helpful and gives you a chance to avoid inventing the wheel from scratch once again.
Format: Talk (45 minutes)
Language: Russian
Speaker: Maxim Ivanov

Scala Rock-Painting

Abstract: At the end of 2013, an online course “Functional Programming in Scala” by Martin Odersky caught buzz among my friends-java-developers. After graduating the course with honours, I have decided that I can easily cope with any Scala-based project. But the reality appeared not so colourful.

In my lecture I’m going to show some pros and cons of Scala with examples from real life. I’ll tell you about the perks Scala provides us with, and traps that can turn our lives into hell. I will show the elegance of Scala, explain how different perception of elegance can be, and how it can end up.

My lecture might be especially interesting for those who are already familiar with the syntax of the language, but did not have a chance to work with it in real projects.

Format: Talk (45 minutes)
Language: Russian

How to Manage 10K request per second in HA manner

Abstract: The main topic of talk is building high availability high throughput system for receiveing and saving different kind of information with horizontal scalling possibility using HBase, Flume and Grizzly hosted on Amazon EC2 low cost instances. Talk describes HBase HA cluster setup process with useful hints and EC2 pitfalls, Flume setup process with providing comparasion between standalone and embedded Flume versions and show difference and usecases of both versions. A lot of attention payed to Flume2Hbase streaming features with tweaks and different approaches for speeding up this process. The data entry point example showed with using light Grizzly Server. Presentation contains real life metrics, useful approaches and hints.
Format: Talk (45 minutes)
Language: Russian

The modernization of legacy systems with microservices, Hystrix and RxJava

Abstract: As a software developer you are not very often in the situation where you develop a completely new system from scratch based on recent techonologies. More often just small features have to be integrated in already existing systems. A change of the basic software architecture and an introduction of new programming paradigms are very difficult in this context. It is all the more important to make the modernization of a legacy systems an ongoing part of the feature-driven development process. In this talk I will show step by step how to transform a big, monolithic legacy system towards a modern microservice based architecture. And I will demonstrate how two open libraries from Netflix can support this process. Hystrix will help us to improve the overall stability of the system and RxJava will help us to handle asynchronous processes in a more elegant way. Based on examples I will show how the suggested modernization process could be realised.
Format: Talk (45 minutes)
Language: English
Speaker: Holger Kraus

Elastic stack in BigData

Abstract: Elastic stack is very popular in over days. Lets go dive to world of near real time search. Make Hadoop search faster, ship a huge log data and visualize it with Elastic products. Configure ElasticSearch, Logstash, ES Hadoop in pair, describe all interesting features and differences with another systems.
Format: Talk (45 minutes)
Language: Russian

Less JS! Web components for back-end developers.

Abstract: Encapsulating functionality: Web Components – set of new standards from Google. It’s time to adopt or maybe look back? It’s seems, we have had something similar, or it is absolutely different? JSF components – Oh, no! Or give a chance? Go forward to a client’s browser or review new features in server? How to start using Polymer under Spring Boot or maybe it will be PrimeFaces. Glance from back-end (and slightly manager) perspectives.
Format: Talk (45 minutes)
Language: Russian
Speaker: Olga Semeniuk

Speed up Your Java by Turning it into Binary

Abstract: Java was designed to abstract the hardware, the memory, disk and network, today we write programs without worrying about how the memory is used. As volumes get larger we’ve tended to scale horizontally with distributed computing but there is a lot more we can do to scale both before and after distributing that can give us over an order of magnitude in performance. Twenty to thirty years ago programmers spend most of their time getting incredible amounts of functionality from just a few kilobytes of RAM, much of these techniques appear to have been forgotten as we now happily walk around with gigabytes in our pockets. By turning your Java into binary, for example using just 2 bytes to store a date rather than Java’s Date we use 24 times less memory, add a lot of similar savings up and put them into a single byte[] and the savings for both memory and serialisation can be over 2 orders of magnitude. John will walk through simple examples (with code demos) before moving on to more complex XML example & more demos. Finally using Java 8 lambdas John will demonstrate complex XML processing on a big-data scale but on a laptop.
Format: Talk (45 minutes)
Language: English
Speaker: John Davies

Groovy under Macroscope

Abstract: In this session we will talk about Groovy compile-time metaprogramming: the AST transformations. Those are the wizards that improve, check and manipulate your code in compile time, allowing you to keep your source nice, tide and readable. In the first part of the presentation, Baruch will show you what Groovy has to offer out of the box in this regard (and it’s A LOT!) and then Sergei will teach you how to unleash the power of AST to create your own magic by writing custom AST transformations, tailored to your business needs.
Format: Talk (45 minutes)
Language: Russian

Building “Bootiful” Microservices with Spring

Abstract: We get it already! Microservices help you build smaller, singly-focused services, quicker. They scale out. They’re more agile because individual teams can deliver them at their own pace. They work well in the cloud because they’re smaller, and benefit from elastic, horizontal scaling. But what about the complexity? There’s a cost associated with adding services and coordinating the interactions between them. In this talk, we’ll look at Spring Cloud, which builds atop Spring Boot and the Netflix OSS stack, and see how it lets you easily integrate service-discovery, security, reliability patterns like the circuit breaker, and centralized and journaled property configuration (and more) to build resilient microservices that scale.

We’ll look at service discovery and registration with a Eureka service registry and Spring Cloud’s Eureka integration, centralized, journaled configuration with Spring Cloud’s Config server, refreshing bean configuration in-situ with the `@RefreshScope`, building an API gateway using Zuul and reactive programming, and isolating failure cascades using the Hystrix circuit-breaker.

Format: Talk (45 minutes)
Language: English
Speaker: Josh Long

What’s In Your Cloud?

Abstract: The promise of the cloud is the reduction of friction between development and deployment. It’s continuous delivery. It’s the ability to think about apps, not kernels. In this talk, we’ll look at how Cloud Foundry, the open-source PaaS from the Linux Foundation that underpins IBM’s BlueMix and HP’s Helion products, and serves large users like Baidu and NTT, can be used to deploy, scale, auto-heal, monitor and analyze applications. We’ll look at how to use the API to master your runtime and we’ll also look at the next generation of Cloud Foundry, code-named Lattice, and its Docker-first support.
Format: Talk (45 minutes)
Language: English
Speaker: Josh Long

About concurrency abstractions with Observable’s, Future’s, Akka (actors) in Scala

Abstract: The presentation is going to introduce you to the available concurrency abstractions available for Scala developers – Rx’s Observables, scala.concurrent.Future, and Akka’s actors. It’s going to be a Scala code-heavy presentation.

However Scala is the language of choice the libraries are not limited to the Scala language and Java API is either the main research language with Scala’s as an alternative or yet another API.

Format: Talk (45 minutes)
Language: English

Overview of reactive web application development in Scala with Spray/Akka HTTP and Play

Abstract: The talk is to introduce you to the world of reactive web programming in Scala using Spray toolkit (that’s soon to be Akka HTTP) and Play Framework. I’m going to show you how to get started and why you should have a special place for Spray/Akka HTTP and Play Framework in your toolbox.

The talk is very Scala code heavy so expect a mixture of slides and IntelliJ IDEA.

Format: Talk (45 minutes)
Language: English

Why financial analytics is better to implement in Scala

Abstract: One of the subject areas in which the Scala has notable advantages over Java – a software for financial analyst. This talk will explore the opportunities in Scala:

  • Development of Internal DSL
  • Development of External DSL
  • The representation of the domain as a set of “combinators”
  • Scala as Hybrid Functional/Object-Oriented language
  • Generics of a Higher Kind
  • Path Dependent Types
Format: Talk (45 minutes)
Language: Russian
Speaker: Ivan Golovach

Know Your User’s Location

Abstract: Have you ever felt irritated that you needed to enter your address on a Web site to find the nearest post office or a movie theatre? Modern Web applications must use geolocation API to automate discovery of the user’s current location. This can dramatically improve the user experience. It’s not just about convenience, the more your app can find out automatically, the more likely people will use it.

In this presentation I will discuss different approaches for determining the user’s location on the client side of a Web application. We’ll talk about practical challenges like concurrent requests, timeouts, inaccurate data, dirty data and fallback options. We’ll also look at some technical aspects like futures, async functions and generators. This talk is based on our experience gained while developing and deploying a Web application in production. All code examples will be given in Dart programming language, which directly matches the upcoming syntax of new JavaScript version (a.k.a. ES6).

Format: Talk (45 minutes)
Language: Russian
Speaker: Anton Moiseev
Mikalai Alimenkou

Mikalai Alimenkou

XP Injection / ZoralLabs, Ukraine

Java Tech Lead and experienced coach. Expert in Java development, scalable architecture, Agile engineering practices and project management. Having more than 10 years of development experience, specializes on complex distributed scalable systems. Active participant and speaker of many international conferences. Founder and coach in training center XP Injection. Organizer and founder of Selenium Camp, JEEConf, XP Days Ukraine and IT Brunch conferences. Founder of active “Anonymous developers club” (uadevclub).

Gleb Smirnov

Gleb Smirnov

Plumbr, Estonia
Deals with stability-critical high-performance applications, including, but not limited to financial systems. A mutation analysis adept who also strives to raise the general awareness of HotSpot internals, mainly via articles and talks. Currently doing performance at Plumbr, Estonia.

Taras Matyashovskyy

Taras Matyashovskyy

Lohika, Ukraine

Primary focused on the development of complex distributed systems, R&D activities, but enjoys life beyond programming. Agile & lean practitioner, Certified Scrum Master and simply “great product-oriented” developer. Currently interested in microservices architecture, big data trends and searching of decent life partner. Founder of Morning@Lohika tech talks in Lviv.

Nikita Salnikov-Tarnovski

Nikita Salnikov-Tarnovski

Plumbr, Estonia
Co-founder of Plumbr, the memory leak detection product, where he now contributes as core developer. Besides his daily technical tasks he is an active blogger, JavaOne RockStar and frequent conference speaker (Devoxx, JavaOne Russia, 33rd Degree, TopConf, JavaDay, GeekOut, Joker, Jazoon etc).

Prior to founding Plumbr, Nikita was a Java EE developer and performance consultant in the Baltics, and has worked with tens of different Java EE applications over the years. In the last four years he specialized in troubleshooting and performance optimization.

Josh Long

Josh Long

Pivotal, USA
Josh Long is the Spring Developer Advocate. Josh is the lead author on Apress’ Spring Recipes, 2nd Edition, the O’Reilly “Pro Spring Roo” book, the Pearson “Livelessons for Spring” and a committer on several Spring projects and the Activiti BPMN framework. When he’s not hacking on code, he can be found at the local Java User Group or at the local coffee shop. Josh likes solutions that push the boundaries of the technologies that enable them. Josh’s interests include big-data, mobile, REST, NoSQL and integration. He blogs on the Spring blog and on his personal blog.

Attila Szegedi

Attila Szegedi

Oracle, Sweden
Attila Szegedi is a Principal Member of Technical Staff at Oracle, working on the Nashorn JavaScript runtime. He is also known for his work on Mozilla Rhino (another JavaScript runtime), a contributor to Kiji, Twitter’s server-optimized Ruby runtime, the author of Dynalink – the dynamic linker framework for languages on the JVM, as well as one of the principal developers of the FreeMarker templating language runtime.

Richard Warburton

Richard Warburton

Monotonic Ltd, UK
Richard is an empirical technologist and solver of deep-dive technical problems and works independently as a Software Engineer and Trainer. Recently he has written a book on Java 8 Lambdas for O’Reilly and teaching people via java8training.com and Pluralsight. He’s worked as a developer in diverse areas including Statistical Analytics, Static Analysis, Compilers and Network Protocols. He is a leader in the London Java Community and runs Java Hackdays. Richard is also a known conference speaker, having talked at Devoxx, JavaOne, JFokus, Devoxx UK, Geecon, Oredev, JAX London and Codemotion. He obtained a PhD in Computer Science from The University of Warwick.

Yakov Fain

Yakov Fain

Farata Systems, USA
Yakov Fain is Java Champion and a co-founder of two software companies: Farata Systems and SuranceBay. He authored several technical books and lots of articles on software development. He leads Princeton Java Users Group. Recently Yakov co-authored the book “Enterprise Web Development” (O’Reilly). Two of his books will be published this year: the second edition of “Java 24-Hour Trainer” (Wrox) and Java For Kids” (No Starch Press, drafts are available here: http://yfain.github.io/Java4Kids_NoStarchPress/).

Volker Simonis

Volker Simonis

SAP, Germany
Works for SAP in the SAP JVM Technology group. He is an OpenJDK contributor from the very beginning and helped SAP and the SAP JVM team to engage in the OpenJDK project. He’s the project lead of the OpenJDK PowerPC/AIX porting project, a JDK 8 committer and JDK 9 reviewer.

Dmitry Chuyko

Dmitry Chuyko

Oracle, Russia
Java SE Performance Engineer. Before Oracle Dmitry had more than 10 years of production experience mixing Java with any kinds of hard techs.

Aleksey Shipilёv

Aleksey Shipilёv

Oracle, Russia
Aleksey is the Java SE Performance Engineer working for Sun/Oracle for 5 years. The primary skills include performance engineering, benchmarking, JVMs, JITs, and class libraries. Maintains multiple projects, including jmh, jcstress, and jol. Prior joining Sun, Aleksey was employed by Intel where he worked in Apache Harmony performance team for 3+ years.

Baruch Sadogursky

Baruch Sadogursky

JFrog, Israel

Baruch Sadogursky (a.k.a JBaruch) is the Developer Advocate of JFrog, the creators of Artifactory Binary Repository, the home of Bintray, JavaOne 2011 and 2013 Duke Choice Awards winner.

For a living he hangs out with the JFrog tech leaders, writes some code around Artifactory and Bintray, and then speaks and blogs about all that. He does it repeatedly for the last dozen of years and enjoys every moment of it.

Baruch is @jbaruch on twitter and mostly blogs on http://www.jfrog.com/blog/.

Evgeny Borisov

Evgeny Borisov

Self employed, Israel

Since 2001 Evgeny was working as Java Developer, Team Leader, Java Architect and Java Trainer. Today he has his own consulting company.

Jacek Laskowski

Jacek Laskowski

Japila Software, Poland
Jacek Laskowski (twitter: @jaceklaskowski) is an independent IT professional offering services as a team and tech leader, open source software developer, technology advocate, course instructor, blogger, conference speaker, community leader and organiser, technical advisor and IT business liaison. Jacek is operating on the JVM platform with Scala and Java as the two main languages of choice, and helping people get the most out of it.

His resolution this year is to promote the Scala language in Poland as a leader of the Warsaw Scala Enthusiasts group and working with top-notch software houses in Poland. Jacek is the founder and a former leader of Warszawa Java User Group in Warsaw, Poland. In 2015 he was accepted to an exclusive group of passionate Java technology and community leaders who are community-nominated and selected under a project sponsored by Oracle and became a Java Champion.

Ivar Grimstad

Ivar Grimstad

Cybercom, Sweden

Ivar Grimstad is an experienced software architect focusing on Enterprise Java. He is member of the Java Community Process and in the Expert Groups for JSR 371 (MVC 1.0) and JSR 375 (Java EE Security API).

He has been working with Java since the beginning and has over the years tried out everything from lightweight mobile applications to large scale enterprise applications. His experience covers all aspects of designing architectures based on a variety of technologies including standard Java EE as well as more lightweight frameworks such as Spring and a variety of open source products.

Ivar is always focusing on quality and on using the right tools and technologies for the right task to optimize the software development process. Ivar is a frequent speaker at conferences, locally as well as internationally.

Nicolas Fränkel

Nicolas Fränkel

Hybris, Switzerland

Nicolas Fränkel is a Software Architect with 12+ years experience in consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). He’s generally focused on Java and JavaEE technologies, but he’s narrowed interests like Software Quality, Build Processes and Rich Internet Applications.

He’s currently working for a eCommerce solution vendor leader. He also double as a teacher in universities and higher education schools, and a trainer for experienced pros, and triples as a book author.

John Davies

John Davies

C24, UK
OMG, 30 years in technology! Hardware, assembler, C/C++ and almost 20 years of Java. From head of trading technology to global head of architecture in large investment banks, now co-founder and CTO of C24. Founded in 2000, sold to NASDAQ’s Iona Technologies in 2007 and bought back in 2011, C24 is a product company working mainly in the investment banking world with financial messaging standards. For the last few years C24 has been developing a new Java binding technology (SDO’s) that creates binary “objects” but with a classic Java API. Full query resolution, less memory, fewer objects so less GC and significantly better performance.

Anton Keks

Anton Keks

Codeborne, Estonia
Anton Keks is a software craftsman, co-founder of Codeborne, the only extreme programming shop in the region, frequent speaker at conferences, and a lecturer in Tallinn Technical University. He is also a strong believer in open-source software and agile development methodologies, author of a popular network tool – Angry IP Scanner, and a regular contributor to other open-source projects. Before founding Codeborne, Anton has led a team of developers of the award-winning internet-bank of Swedbank for 5 years, gradually introducing agile methods. During this time he has also co-founded Agile Estonia non-profit organization that organizes regular agile conferences in Estonia. During spare time he plays guitar, rides motorbike and travels to remote corners of the world.

Alexey Fyodorov

Alexey Fyodorov

Odnoklassniki, Russia

Java developer for 8+ years. Worked for Oracle for 3 years (JCK Team, Java Platform group). Leader of the St. Petersburg Java User Group, and CodeFreeze community, organizer of Russian Java conferences JPoint and Joker. Interested in Java runtime, multithreaded programming, Java compatibility and software engineering trade-offs. Since 2015 Technology Evangelist at Odnoklassniki.

Philipp Krenn

Philipp Krenn

Ecosio, Austria

Philipp Krenn is running everything database related and the general infrastructure of the Vienna based B2B startup ecosio. When not fighting MongoDB, MySQL, Jenkins, or AWS, he is giving NoSQL and cloud computing trainings or organizes his meetups ViennaDB and Papers We Love Vienna.

Izzet Mustafaiev

Izzet Mustafaiev

EPAM, Ukraine

Active member of EPAM Kyiv Agile User Group and JUG KPI, actively participated in JEEConf, XPDays, AgileEE, JavaDay, EPAM SEC.

Roman Nikitchenko

Roman Nikitchenko

V.I.Tech, Ukraine

Embedded Telecom system engineer with more than 20 years of experience who has moved to enterprise Java area and quickly became leading Big Data solution architect with unique combination of knowledge. Current primary technology stack includes Apache Hadoop, HBase, ZooKeeper, Spark and is growing very fast. Ability to account many aspects of Big Data currently not so visible for normal enterprise Java architect because of previous history makes the difference.

Nikolay Chashnikov

Nikolay Chashnikov

JetBrains, Russia

Nikolay works on IntelliJ IDEA in JetBrains, where he tends to make the IDE more intelligent and powerful to allow developers, including himself, to be more productive in our day-to-day work.

Holger Kraus

Holger Kraus

innoQ, Germany

Holger Kraus is a senior consultant at innoQ Deutschland GmbH. He has several years of experience in designing and developing large IT systems in different industries. Currently, his primary focus lies on architecture and implementation for distributed web applications within the Java Enterprise ecosystem.

Sergey Morenets

Sergey Morenets

IT-School, Ukraine

Sergey works in IT since 2000 with 15 year of Java SE/EE experience. Occupied senior Java developer/Team Lead positions in more than 15 Java projects. Winner of 2013 JBoss Community Recognition Award. He participated as a speaker at 7 JUG events (6 in Odessa and 1 in Dnipropetrovsk). Has been working for more than 2 years as Java lecturer. Author of “Development of Java applications” book.

Serhiy Masyutin

Serhiy Masyutin

Lohika, Ukraine

More than 14 years of professional experience in most of IT branches. Tons of languages and tools. Serhiy likes when it is done nicely, robust, useful, in time.

Aviram Eisenberg

Aviram Eisenberg

Ignite, Israel

Being a Java software architect, successful entrepreneur and acclaimed Agile speaker, Aviram Eisenberg combines a deep technical expertise with the managerial grid. On his entrepreneurial road he became a founder and CEO of Ignite – a global software development company with headquarters in Israel that specializes in Mobile, Web and Gaming Development. In Ukraine Ignite is present at Kyiv, Kharkov & Zhytomyr. For being active in a dev community he was chosen a chairman of the Israeli Software Development Forum.

Niko Köbler

Niko Köbler

Freelancer, Germany

Niko works as an independant and self-employed software architect, developer and trainer for Java and JavaScript enterprise solutions, integrations and web development. At the moment he is focussing on running Node.js applications in JVM environments and integrating best of both worlds.

He advises and supports clients across industries, conducts workshops, trainings and architecture reviews. Niko is a co-lead of a local Java User Group, writes articles and speaks regularly at international tech conferences. He is tweeting at @dasniko.

Victor Polischuk

Victor Polischuk

Infopulse, Ukraine

Java technical leader at Infopulse Ukraine. Production experience counts 13 years including about 11 years of Java development. Expert in Java и JavaScript. Smartass.

Nikita Lipsky

Nikita Lipsky

Excelsior LLC, Russia

Nikita is an initiator and a team lead of Excelsior JET project – certified Java SE implementation with AOT compiler developed by Excelsior LLC. Working on the project since 1997 he took part in almost every activity of the project from the JVM core to product management and support. Last couple of years he is experimenting (in a spare time) with open source projects exploring approaches and a concept of the next web.

Yaroslav Yermilov

Yaroslav Yermilov

EPAM, Ukraine

Has 4 year experience working in the Java world starting from Intern in EPAM Systems to Senior Software Engineer today in the same company. Most of this time works in Big Data area, developing various extensions for Hadoop-family tools. Out of work, is fond of data science and Groovy language.

Alexander Podkhalyuzin

Alexander Podkhalyuzin

JetBrains, Russia

Alexander graduated from Saint-Petersburg State University in 2010, department of mathematics, he has a lot of prizes from international and regional mathematical competitions. In 2008, Alexander started to work for JetBrains, where he became Scala plugin for IntelliJ IDEA team leader. From 2012 he started teaching Scala in Saint-Petersburg Academic University.

Misha Kozik

Misha Kozik

Zoomdata, Ukraine

Java and Clojure developer. Passionate about practical functional programming, natural language processing and bigdata technologies. Maintain personal programming blog at mishadoff.com

Dmitriy Morozov

Dmitriy Morozov

Zoomdata, Ukraine

Dmitriy is software engineer and geek at heart with passion to data analytics and data visualization. Also he is a great fan of functional programming. When not coding he can be found riding his road bike or playing bass guitar.

Maciek Próchniak

Maciek Próchniak

TouK, Poland

Maciek Próchniak is algebraic topologist, for more than 8 years developing on JVM for food and pleasure. This includes various subjects varying from architecture to operations and from integration to web development. Recently trying hard to code more functionally, preferably in Scala. Likes to speak at conferences from Bergen to Cairo on wide range of topics – from Scala type system to noSQL databases. For 5 years happy @ TouK, and even more happy husband and father.

Yuriy Guts

Yuriy Guts

ELEKS, Ukraine

Solutions Architect and R&D Engineer at ELEKS. Being a polyglot programmer, Yuriy is keen on exploring emerging technology and discovering hidden opportunities. He is an active member of Ukrainian IT community, being a frequent blogger at ELEKS R&D Blog, contributor to Lviv .NET User Group and teacher at Lviv Code School.

Kyrylo Holodnov

Kyrylo Holodnov

Grammarly, Ukraine

Kyrylo has almost five years of professional experience in Java/Java EE development. He worked at NetCracker, Infopulse, Yandex before joining Grammarly team. Studied computer science at Yandex School of Data Analysis. His primary interests are machine learning and information retrieval.

Igor Khotin

Igor Khotin

IntroPro, Ukraine

Software designer, UNIX plumber, coach and consultant with 15 years of experience in IT industry. Has been involved in wide range of projects – from ERP and CRM systems to Massive Multiplayer Online Games and scalable solutions for media entertainment industry. Currently, he is researching new technology trends to rethink and change the business.

Maxim Ivanov

Maxim Ivanov

Laximo, Russia

Maxim has 15 years of experience as a Java developer, team lead and software architect. His career started with projects involving J2EE and CORBA and now he has lots of experience with enterprise solutions, working as software architect and mentor for his team.

Dmytro Mantula

Dmytro Mantula

GlobalLogic, Ukraine

Have been developing in Java for about 10 years. Switched to Scala 2 years ago and since then have forgotten about such things as NPE, iterator, debugger, return. Co-organizer of “Kyiv Club of Anonymous Developers”, Stage Coordinator at JEEConf.

Valerii Moisieienko

Valerii Moisieienko

Noosphere, Ukraine

5+ years Java commercial expirience, 3+ years HBase commercial expirience, Oracle certified professional, Java instructor expirience. The main points of interest are design and development highload systems, statistic gathering and analytic systems, MMO game backends.

Vladimir Kozhaiev

Vladimir Kozhaiev

Freelancer, Ukraine

Graduated student of the Institute of Cybernetics. Scientific interests: domain specific languages, graphical languages.

Olga Semeniuk

Olga Semeniuk

IS Predict, Belarus

Java developer, researcher, R developer, focused by intelligence systems and software quality. Inspired by machine learning and prediction systems. Likes learning and sharing knowledge and tools, trying to make software development as much simple as possible through right tools and using these tools right.

Andrii Golovei

Andrii Golovei

EPAM, Ukraine

Java developer in EPAM systems and work with BigData stack (Hadoop, ElasticSearch, Storm ….). Working credo is: “BigData should be BIG”.

Sergei Egorov

Sergei Egorov

TransferWise, Estonia

Developer of MacroGroovy. Java geek with passion in compilers and language internals.

Anton Moiseev

Anton Moiseev

Farata Systems, Russia

Anton is a software developer. He’s been developing enterprise applications for 8 years with Java and .NET technologies. He has a solid background developing rich Internet applications using various platforms. Currently he’s building insurance applications based on Java EE platform. Anton has a strong focus on Web technologies implementing best practices to make the front-end work seamlessly with the back-end. He’s a huge enthusiast of programming languages.

Ivan Golovach

Ivan Golovach

GolovachCourses, Ukraine

Developer, Java Tech Lead, trainer, owner of educational company.

Tomer Gabel

Tomer Gabel

WIX, Israel

A programming junkie and computer history aficionado, Tomer’s been around the block a few times before settling at Wix as a system architect. In the last couple of years he’s developed a major crush on Scala, promoting it within the Israeli software industry as part of Java.IL (Israeli Java user group) and Underscore (Israeli Scala user group) and organizing the annual Scalapeño conference in Tel-Aviv.