From Micro to MacroBenchmarks
Mar 10th
Which code/framework is faster in my use case? What is the maximum throughput? How my system degrade? We have to deal with these questions on a daily basis but we still choose to leave them unanswered as we “don’t have time to benchmark it”.
In this session, you will get a gentle review of the JVM internals, get a guide of how to build proper benchmarks, avoid the most common pitfalls and hands-on with the most popular benchmark frameworks for the JVM. After this session, you will be able to build your own benchmarks in minutes and finally test by yourself what is faster.
Denis Wilson Souza Rosa
Mar 10th
Speaker and Developer Advocate at Couchbase, he started programming even before the college and never stopped coding since then. He is Java & NoSQL specialist, open-source contributor, and an enthusiast of Microservices & DevOps
Modern and Open Way to Build Cloud-Native Microservices: MicroProfile
Mar 10th
Ever wondered what makes a cloud-native application “cloud-native”? Ever wondered what the unique challenges are and how best to address them on fully-open Java technologies? In this session, you’ll learn what it means to be cloud-native and how that impacts application development. You’ll learn about Eclipse MicroProfile, an industry collaboration defining technologies for the development and management of cloud-native microservices. Once you’ve developed your microservice, you’ll learn how to package it in a Docker container and deploy it to a Kubernetes cluster.
Finally, you’ll learn how to use Istio to manage your microservice interactions. Come to this session to understand the Cloud Native Ecosystem: MicroProfile, Kubernetes and Istio, with a live demo on creating microservices using MicroProfile and Open Liberty and deploying the cloud-native microservices to Kubernetes and Istio. After this session, you should understand how to best develop Cloud Native Microservices by using MicroProfile to work well with Cloud infrastructure, such as Kubernetes and Istio.
Emily Jiang
Mar 10th
Emily Jiang is a Java Champion. She is Liberty Microservices Architect and Advocate, Senior Technical Staff Member (STSM) in IBM, based at Hursley Lab in the UK. Emily is MicroProfile guru and has been working on MicroProfile since 2016 and leads the specifications of MicroProfile Config, Fault Tolerance and Service Mesh. She is a CDI Expert Group member.
She is passionate about Java, MicroProfile, and Jakarta EE. She regularly speaks at conferences, such as QCon, Code One, Devoxx, DevNexus, JAX, Voxxed, EclipseCon, GeeCon, JFokus, etc. You can find her on Twitter @emilyfhjiang andLinkedIn.
Artificial Intelligence: from Zero to AlphaZero
Mar 10th
In this talk, we will develop a neural network backed artificial intelligence from scratch in Java showing base concepts of reinforced learning approach and how to connect it with neural networks.
Ivan Hetman
Mar 10th
Ivan Hetman is a Lead Java Developer at N-iX. He is a PhD in mathematics (calculus). The best things he likes In programming are algorithms, artificial intelligence, and reverse engineering. Also, he is interested in strategic computer games, chemistry, bicycles, and swimming.
RSocket as a wire protocol
Mar 5th
Many of us have faced the problem of different data sources integrity; many felt the pain of configuring connections and connection-pools for different databases and not only; and everyone, of course, wanted most of these things to be an inevitable part of a solution we work with …
Is it possible to solve all these problems using the protocol? In this talk, we will share some of the experiments in the field of using RSocket as a wire protocol for different databases. On the example of the interaction of different databases, for example, with Kafka, we will see how much easier life becomes if they all communicate on the same “common language”.
The state of Reactive Streams
Mar 4th
Reactive Streams: what it actually is and what advantages we gain by using it? Can you use this technology on your language platform and should you use this paradigm at all? In this talk, Oleh will share the current state of Reactive Streams and what happens to this specification on different language platforms. We’ll learn what libraries can be used today if you’re JS developer or dedicated .NET/Java/Ruby/Python back-end developer.
Deep Dive: Static analysis tools as the best friend of quality
Mar 4th
We have spent many years testing our applications and systems manually and with test automation tools. During this time many bug root causes have been classified and could be detected automatically with special static analysis tools. Most of them could be applied at the early stages of development even before code is integrated into the main development branch. In this talk, I will go through available solutions and demonstrate what kinds of issues may be detected automatically reducing the time and effort of traditional testing.
Deep Dive: Modern CI/CD in the microservices world with Kubernetes
Mar 4th
In this Deep Dive session, we will go through the design process of modern CI/CD for the microservices-based system with Kubernetes support. We will discuss how to verify consistency between microservices, apply different levels of quality gates and promote artifacts between environments. Thanks to Kubernetes we will review different approaches of environment resources optimization for development needs during CI/CD cycles.
Saga about distributed business transactions in the microservices world
Mar 4th
Most people nowadays think microservices architecture is a great way to build any system. They visit conference talks, read books and review tutorials, where ‘hello world’ applications are built just in several minutes using microservices approach. But the reality is not so wonderful and one of the biggest pain is hidden inside distributed business transactions. In the monolith application, this topic is almost completely covered with DB level transactions. In a distributed world, you have to face many issues trying to implement reliable and consistent business logic.
In this talk, we will review different types of problems related to distributed business transactions, popular SAGA pattern, frameworks and techniques to simplify your life without compromising the quality of the system.
Coroutines on JVM: is it just hype or a real deal?
Mar 4th
We have been using Spring Webflux with Kotlin in production for quite a while and recently decided to give coroutines a try. A few thousand LoC later, let’s take a look at them with the benefit of hindsight.
Can coroutines help in taking the reactive plunge? How do they impact performance? Is it still an “early adopter” technology?
Yura Nosenko
Mar 4th
From full-time coding to product engineering. From solution architecture to application low-level abstractions. JVM and beyond. Software is my true passion.
Know-how as code: the (Java) developer’s guide to the code generation
Mar 4th
Java developers, especially those who are engaged in custom development, are constantly struggling to write less boilerplate code, be it trivial setters, getters, constructors, etc. or CRUD repositories and controllers. Often the answer is code generation in different forms: source code generation support in IDE, bytecode generation using Lombok, annotation processors generating new code, various frameworks that allow you to get an (almost) ready-made application from the model description and much more, not excluding new and traditional JVM languages that allow you to write more concise code and implement DSL for solving applied problems.
With undeniable benefits in the simplest cases, there are some limitations that do not allow to realize what is required in a particular project, and worst of all, when the generated code becomes a source of hardly detectable defects, and special crutches on top of generated code are needed to fix it.
In this talk, we will give a retrospective of the most commonly used approaches, overview their strengths, limitations and practical applicability, and most importantly, we’ll try to take control of the code generation situation so that it becomes a really useful tool for an effective developer.
Andrey Kogun
Mar 4th
Andrei has been working in IT for more than 15 years, for the last 8 years — in CROC. During his career, he took part in many custom development projects, mainly e-document flow systems and business processes automatization for several big Russian companies as a senior developer and an architect.
At the universities of Moscow, he delivers lectures in development basics with the use of Java technologies. Organizer and leader of Moscow Java developers community.
25+ recipes to use Optional Effectively which Is Not Optional
Mar 3rd
In this session, we will learn how to use the Optional class the way it was intended? Here I will show you common mistakes, anti-patterns, and panic code that most of the developers do when they use Optional. So, let’s tackle this topic with 25+ recipes that try to address Optional in your code through an elegant and painless approach, and covers all enhancements added to it until Java 12 release.
Mohamed Taman
Mar 3rd
Sr. Enterprise Architect @DevTech Beograd, Serbia, a Java Champion, an Oracle Groundbreaker Ambassador, Java/ Mobile/ Web / Big Data / Cloud / Blockchain (HashGraph) / DevOps Architect, JCP, Duke Award winner 3 times, International Speaker, Books & Videos Author.
Demystifying Certificates and TLS For Java Developers
Mar 3rd
What exactly is an SSL Certificate? Do rolling out tools with mTLS enabled seem impossible? Can you test that your infrastructure tools properly uphold the security claims they make regarding mTLS? Does the thought of rotating the certificate authority your service mesh rely on scare you? In this talk, we will begin our journey looking at the RFCs behind these technologies. Next, we will use OpenSSL, CFSSL, and mkcert to validate what we have learned about X509 v3 certificates. We will then bootstrap Consul to quickly demonstrate server, client, and browser usages of certificates. After that, we’ll do a deep-dive into how Kafka uses certificates to secure its brokers and clients, and possibly (KIP-515) its connections to Zookeeper.
10 lessons learned from using Kafka in more than 1000 microservices
Mar 3rd
Kafka is the bedrock of Wix’s distributed Mega Microservices system.
Over the years we have learned a lot about how to successfully scale our event-driven architecture to roughly 1400 mostly Scala microservices.
In this talk, you will learn about 10 key decisions and steps you can take in order to safely scale-up your Kafka-based system.
For example:
- how to achieve and maintain good performance and availability across all your services;
- how to keep costs down;
- how to increase the dev velocity of event-driven style code;
- how to tackle multiple DCs environments;
- any many more…
Kotlintest and the Order of the Phoenix. What did Kotlin give to the testing world?
Mar 3rd
Do you write in Kotlin but still using Java infrastructure for testing? With the Kotlin ecosystem, the number of tools for Kotlin testing is growing too. Pavel will talk about Kotlin’s role in testing and about its ways to simplify the life of test developer — either he’s developer, QA or somebody else.
Pasha Finkelstein
Mar 3rd
IT guy with psychological background — he has tried everything from humanitarian to exact science and from technical support to programming and data engineering. Such life inevitably develops a wide outlook and curiosity. He likes to share things he has learned.
Vladimir Plizga
Mar 3rd
Since his school days Vladimir was enthusiastic about programming and from then on has managed to code everything: from Soviet programmable calculators to modern SCADA systems in production. For the last several years he has been involved in backend development of Internet banking and other follow-up services at CFT (Center of Financial Technologies), where he actively stands for microservices and other popular things. Constantly bothers with ideas about optimization of difficult development/server software testing tasks, nurtures solutions for them while jogging or swimming and then puts them into life, experimenting shamelessly on his colleagues.
Concise Spring Boot applications with Kotlin
Mar 3rd
Java is a simple but very verbose language. Often it feels like it’s too verbose and we miss many features that other languages can offer. Can we continue using our favorite frameworks, benefit from JVM reliability and robustness but use more modern and concise programming language? Yes, thanks to Kotlin!
Spring & Kotlin is a great match – a fantastic foundation for building modern applications. If you haven’t used Kotlin ever before there is nothing to worry about. In this talk, you will learn step by step how to develop Spring Boot application leveraging Kotlin idioms and Kotlin specific DSLs baked into the Spring ecosystem. You will see what’s already possible and what can be the future of developing Spring applications with Kotlin.
Sentinel: microservice reliability through flow control
Mar 3rd
Alibaba Sentinel is a relatively new player on the microservice tools market, introducing a set of new approaches to microservice ecosystems’ reliability. It is essentially the next step after more conventional and established fault-tolerance libraries like Hystrix. As part of this talk, we’re going to explore the potential reliability scenarios, that can lead one to use Sentinel, flow control concepts as well as some practical aspects of integrating Sentinel into your system.
Go experience report from a Java developer’s standpoint
Mar 3rd
The non-goal of this talk is to teach Go syntax or learn its basic constructions. It is rather a philosophical view of two different ecosystems: Java and Go.
The first thoughts that come to mind when mentioning the Go programming language are cloud-nativeness, concurrency, low memory footprint, fast compilation, and fast execution. And these still remain hot topics in 2020.
This talk shows what we, as the seasoned java developers, can learn and use from the Golang experience. We will cover modeling instruments and approaches available in both ecosystems such as package design, building blocks, error handling, dealing with collections, documentation, testing, building and debugging tools, etc.
The talk is based on the assumption that programming language is a tool and tightly coupled to philosophy and thought expression. The target audience is the engineers who want to understand why the Go programming language is considered to be the de-facto standard when it comes to cloud-native development and tooling. In fact, Go has become so popular that a report on it is submitted to the Java conference.
Sergio Kovtunenko
Mar 3rd
Active attendee of the diverse java and cloud-native conferences. Local speaker, inspirator, and lecturer within Vinnytsia. Fond of modern technologies and open-source solutions.
Bootiful Logging
Mar 3rd
Your Spring Boot application is up and running. You are ready to move it to production and obviously, you want to add some logging. How do you do that while avoiding unnecessary work and getting the most out of your logs?
The practical examples are based on Spring Boot and the Elastic Stack (or ELK Stack) though the general principles will generally apply:
- Don’t parse with regular expressions if you can avoid it.
- Do use the features of log appenders for more structured events.
- Don’t write log files in Docker or Kubernetes.
- Do add correlation IDs for distributed tracing.
Stop making logging complicated and get it to production quicker.
How to Properly Blame Things for Causing Latency: An Introduction to Distributed Tracing and Zipkin
Mar 3rd
This presentation reviews concepts, data model and architecture. It also talks about the difference between logging, metrics, and tracing. The demo will have code, specifically covering Spring Boot integration with Spring Cloud Sleuth and Zipkin Brave. However, code expertise isn’t required. When you leave, you’ll know something about distributed tracing, and on your way to rightly blaming!
Contract testing for distributed microservices
Mar 3rd
There are lots of challenges in building complex distributed systems. One of the caveats that help to move forward with iterative features delivery is proper organized testing of the entire system.
With the contract testing approach, we can define contracts between consumer and producer services. These contracts allow to generate tests on the producer side, create Wiremock-based stubs and use them on the consumer side for verifying API compatibility.
Contract testings allow getting fast feedback in case of API became incompatible for downstream services. This is a perfect initial layer in CI pipeline before bootstrapping and running resource expensive end-to-end infrastructure for verification.
With demo sessions, we will take a look at these features and discuss how to use them in Spring ecosystem and other languages/frameworks.
High-Performance Systems Design
Mar 3rd
Performance Engineering is a broad topic tightly related to the performance quality attribute of the system architecture and design. This time we will talk about performance tactics, principles, patterns, and anti-patterns. We will learn the approach that can be applied to projects for in-depth analysis and design from performance perspectives.
Performance
Mar 3rd
In today’s Software Development world the number one demand from employers is to deliver features as soon as possible. Everything else is secondary. That means engineers are doing only one thing: writing new code, debugging, and writing new code again. And most of the time this code is running in one of the very convenient clouds. Rarely anyone ever stops and thinks about performance as a whole. If performance is an issue the to-go solution is to throw more money at it. Which usually means buying more computing power in the cloud. But is this really the best way of solving that issue? We should make ourselves aware of how wasteful our industry is sometimes and think about ways to avoid that.
Dynamic Language Runtime On Java Platform* (*or how JRuby works)
Mar 3rd
In this talk, we take a deep look at what happens inside the runtimes for dynamic languages. Taking JRuby as an example, we walk through code samples, take a look at the runtime execution pipeline to see how Ruby source code is transformed that JVM could execute it efficiently. After the talk, participants gain fundamental knowledge of how dynamic runtimes work in general and fill the gap between source code and what happens underneath.
Demystifying Garbage Collection in Java
Mar 3rd
This talk is meant to demystify how garbage collection (GC) works in a Java runtime. The beginning of the talk will be focused on what GC is, discuss truths and myths, and how it is useful for the lifetime of a program. After laying out the basics I’ll explain how each GC algorithm work and how they can be implemented in real-world JVM (e.g. OpenJ9, Hotspot). How can these algorithms be put together to make a good GC policy, and how one can better select a configuration/policy for their application? These are some of the questions that I will be addressing during this talk. I will do so by tying these algorithms to OpenJ9 GC policies and compare them to other policies such as G1 and Shenandoah.
Different programs have different behaviors; by using the more appropriate policy for your application, it can improve its performance considerably. Lastly, I will conclude the talk by mentioning one advanced feature of OpenJ9 GC called double mapping arraylets, which is a way to improve memory management of large arrays in region-based GCs. By the end of the talk, you will have a better understanding of how the JVM manages its memory and be able to choose the more appropriate GC policy for your application.
Micro optimizations in Java. Part 2.
Mar 3rd
It will be the second part of my “Micro Optimizations in Java” talk that I made a few years ago on the JEEConf. Time goes and every day we discover new and new hot paths in our code that we have to optimize in order to keep our hardware cost as low as possible while handling hundreds of billions of requests a month. In this talk, I’ll continue to demonstrate typical java constructions that slow down your code execution. And will show you what you can do with it.
Alan Scherger
Mar 3rd
I’m an operations-focused developer. I have experience running and developing with the Netflix stack, starting with Asgard. I now, of course, study, manage, and sometimes even contribute to tools such as Mesos, Kubernetes, Nomad, and Spinnaker. When I’m not starring into pixels, I can be found picking-up and putting-down heavy things at a strength training gym, or unoriginally exploring coffee shops and boardgames whenever friends are free.
Find the performance elephant in the room
Mar 3rd
How many of you have been tasked with improving performance or solving a performance bottleneck? How many times have the data you gathered confused the situation more than it helped? It is very common for the data to point to a symptom and not the actual cause. During this talk, I will discuss a few common performance issues and how they manifest in profile data. For each of the issues, I will cover how I gathered the data, my initial suspicion about the problem and what I did to solve the actual problem. The talk will cover JVM object allocation, garbage collection logs, Java and JVM profilers and data structures.
Java After Eight
Mar 3rd
Many projects are still on Java 8 and yet, Java 14 is already out! The small releases after 9 created the illusion of nothing much happening, but nothing could be further from the truth – a lot changed since then that shapes the look of everyday Java code:
* new language features like records, switch expressions, `var`, and text blocks
* new APIs like stack walking and the reactive HTTP/2 client
* additions to existing APIs, like `Stream` and `Optional`
In this talk, we’ll take a simple Java 8 codebase, update it to 14, and refactor it to use the new language features and APIs. You’ll be surprised how much the code changes!
Finding an optimal ride to Kubernetes
Mar 2nd
Years ago, the choice by default for microservices was Spring Cloud. There are thousands of systems where Netflix stack covers all microservices needs: configuration management, load balance, service discovery, obtaining secrets and much more. In the new era of clouds without vendor locks, the new default is Kubernetes. Container orchestrator out of the box covers a huge part of microservices concerns, but for use this, it is required to change the code and remove a couple of dependencies.
At our company, we recently transferred tens of systems to the new approach. Each team has chosen its most comfortable way. This talk will observe moving strategies, problems that need to be taken into account, and our experience in choosing the most optimal ride to Kubernetes.
Building a secure Java app is possible
Mar 2nd
Securing Java web applications from inside and outside threats is a challenging task. In enterprise projects, it’s always not enough time to think about security and requirements. You always have certain limitations for different sources. So what? You skip caring about security.
If you’ve always struggled to understand: 1) how to define if your app is secure; 2) what steps to follow to make sure your code and customers are safe, this talk is exactly for you!
We’ll go through top vulnerabilities and review ways to prevent and fix their appearing with a simple web demo project. Based on simple examples you’ll see that making java app secure is an achievable goal even if the resources of your project are limited. We’ll end up with a brief overview of automatic tools that can help to identify vulnerabilities as well as maintain application security on a regular basis.
Go and make your app secure!
Maria Kharlamb
Mar 2nd
Senior Java Developer/ Team Lead with 6+ years of experience in Java, master’s degree in cybersecurity and a black belt in karate. 🙂 Lives in London, leads 2 teams of java developers onsite in client office and believes that the one who owns information owns the world which is why information security is one of the most important subjects in the IT industry.
Quarkify your Enterprise Java – coding that sparks flow
Mar 2nd
You’ve probably heard of “supersonic subatomic Java” with Quarkus, a new runtime for modern Java applications. Whether you’re just starting out in the world of Enterprise Java or whether you’re already an experienced Java EE / J2EE developer, this session will guide you towards how to build modern cloud-native microservices in the year 2020. We’ll have a look at how to build and develop modern projects, best practices, technologies such as Quarkus, Maven, Docker, Kubernetes, and more. We’ll see what fulfills the needs of our projects and how to build effective development and deployment workflows. Join us for a supersonic, subatomic start into the new world of cloud-native Java!
A Java developer’s quest for productivity
Mar 2nd
Most developers continue doing their job as they always have. However, once in a while it makes sense to look and reflect whether we’re doing things in the most effective way. This session shows 20 tips for Java developers on how to maximize their efficiency. We’ll have a look at how to improve our IDE usage, command line experience, and automation. We see which technology enables us to develop with efficiency, and how to keep feedback loops short. Altogether, all the points cover the topic of how to become a better developer.
NoSql missing manual
Mar 2nd
We will go over common patters you would need to keep in mind when working with NoSQL databases, based on experience with Couchbase and Aerospike:
– error handling;
– optimistic locking;
– pessimistic locking;
– idempotency;
– unique keys generation vs atomic operations;
– dealing with expiration;
– touching multiple keys w/o transactions;
— querying multiple keys;
— updating multiple keys.
Changing NoSQL vendor on production during a coffee break
Mar 2nd
This talk will firstly cover standard data-storage migration approaches for the microservices and the challenges you’ll be faced with using/implementing them. After that, we will talk about event-driven design pattern (microservices local state) that enables simple storage/schema migration. At Playtika our latest use-case was migration for at least 100 microservices from Couchbase to Aerospike, under the hood we used Spring Data project. Combining of the 2 approaches enables you fast, reliable and head-ache free migrations.
Practical Intro to Reactive Programming
Mar 2nd
A full reactive stack may not be on your radar, but reactive APIs are becoming more common and widely used, from database access with R2DBC to HTTP remote calls with the WebClient to full-on reactive, remote communication with RSocket. These libraries do some pretty useful things that would otherwise be quite difficult. However, to take advantage you need to be more comfortable with reactive programming. This session aims to introduce you to reactive programming with practical steps, doing practical useful things that will make you want to learn more.
Streaming with RSocket and Spring
Mar 2nd
Spring Boot 2.2 comes with built-in support for RSocket. This session starts with an introduction to the protocol and its benefits. Then we move on to look at the Spring Framework programming model, the Spring Security integration, and Spring Boot configuration. We’ll see this in action with a browser client and two backend services.
6 signs you have no clue about modern Java
Mar 2nd
In this talk, I’d like to be a myth-buster for 50 mins just to convince people that the upgrade path is the only way to make both Java and their apps/businesses successful. But this is a game of two: Java community and Java consumers. There should be no blockers in the evolution of both. So, as part of this talk, I’d like to myth-bust 6 common signs that people have no idea of what’s going on with modern Java.
Spring into Quarkus
Mar 2nd
Quarkus is a next generation Java application development stack and tooling for applications following microservices and cloud-native architecture. It is focused specifically on addressing the most prominent disadvantages of traditionally built Java applications such as boot time and memory footprint, at the same time dramatically enhancing the developer experience.
While Quarkus is primarily promoting Eclipse MicroProfile API for application development, admittedly the equivalent Spring API is a lot more popular in the industry at this point. This talk will help Spring experts to get a quick start using Quarkus for their applications and benefit from a significant reduction in boot time and memory consumption that Quarkus is known for in both JVM and native executables.
REST or gRPC? I want it all, and I want it now!
Mar 2nd
gRPC became more and more popular. It has a set of advantages over REST. However, the support of gRPC in the browsers is not mature enough. It would be great to have gRPC for inter-service communication but REST for client-to-service communication. Do we have to implement our API twice? Short answer: No.
Join the talk, and you will learn how with the help of gRPC and Envoy you can have both, REST and gRPC APIs.
Netty in web-games and more
Mar 2nd
Main core Netty components, tips, and tricks you need to know about Netty. WebSocket the main transport for web-games and long-polling as a fallback for `old folks`.
Andrey Mizurov
Mar 2nd
Over 8 years, he has been developing 3 of which Oracle has dedicated to the DBMS, so he saw all the normal and abnormal forms. Recently, he has been developing a transport layer for web games.
Code Coverage on JVM: Practice and Mechanics
Mar 2nd
Let’s have a look at how to do code coverage measurement on JVM, both from a user point of view and from inside by diving into implementation details of one of the most popular code coverage tools for Java and Kotlin – JaCoCo.
Fear and Loathing in JVM interop
Mar 2nd
We had 1 week, 2 Scala devs, 1 Scala artifact, a bunch of Kotlin libraries, 1 Kotlin book, a couple of microservices, 2 build systems and an IntelliJ Idea… Not that we needed all that for the task, but once you get locked into a serious drug collection, the tendency is to push it as far as you can…
Improve your Java apps in containers with Java 13
Mar 2nd
Java 13 received an improvement to an ACDS (application class-data sharing). JEP 350 stands for improved startup and footprint, extended the existing Class-Data Sharing (“CDS”) feature to allow application classes to be placed in the shared archive. This feature may help to reduce the time needed by JVM to startup your Java code, so, would be very useful for containerized applications (serverless, in particular). Moreover, with some very handful tooling like jdeps and jlink powered-up with Docker multi-stage builds you may significantly improve the way apps being packaged and executed within a container.
In this talk, I’d like to give some practical recommendations on how to build efficient containers for Java applications with Java 13, here’s a few of them:
– why Java 13 is so necessary;
– a purpose of jdeps;
– the purpose of jlink and docker multi-stage.
Spring On The JVM: Runtime Revisited
Mar 2nd
This session summarizes recent runtime trends in the Java/JVM ecosystem from a Spring Framework perspective: R2DBC and RSocket, reactive programming vs coroutines vs fibers, HotSpot vs OpenJ9 vs GraalVM native images.
Scooby RAM, where are you?
Mar 2nd
Java, the runtime, likes memory. And it is also a fact well known to those who know it well, that subtle differences in code, result in drastic changes to applications memory and runtime profiles. I’ll take you through the memory lane part of my work, and show how do I approach analysis, problems, and troubleshooting. Tools, what information can they surface, and how to navigate back to the code. Techniques and libraries, how do they affect what the application does. Feel invited if you believe troubleshooting memory in Java is ‘magic’, or ‘only tuning the GC can save us’.
Maksym Govorischev
Mar 2nd
Java engineer with primary experience in Java and adjacent technologies. Participated in the design and implementation of various types of systems, from MVPs and prototypes for startups to big corporate applications, API platforms, and microservices ecosystems.
Maciej Walkowiak
Mar 2nd
Maciej is an independent software consultant with over 12 years of professional experience. His areas of focus are helping companies in making architectural choices as well as designing and developing systems based on Spring stack and AWS. Open Source enthusiast, active Spring community member, a contributor to several Spring projects. In meantime, he runs a YouTube channel – Spring Academy – where he teaches Spring and shares news from Java & Spring ecosystem.
Philipp Krenn
Mar 1st
Philipp lives to demo interesting technology. Having worked as a web, infrastructure, and database engineer for over ten years, Philipp is now working as a developer advocate at Elastic — the company behind the Elastic Stack consisting of Elasticsearch, Kibana, Beats, and Logstash. Based in Vienna, Austria, he is constantly traveling Europe and beyond to speak and discuss open-source software, search, databases, infrastructure, and security.
Adrian Cole
Mar 1st
Adrian works at VMware, on the Spring Cloud team. He spends most time on distributed tracing with Zipkin, usually in Java.
Roman Tsypuk
Mar 1st
Big fan of JVM-based languages: Java, Kotlin, Groovy, as well as Spring ecosystem with Cloud and K8S integration.
His primary expertise is cloud and distributed systems. Actively advocating TDD and DevOps practices. Enjoys contributing as a speaker on meet-ups and conferences to share the knowledge. Radio HAM and contributor to open-sourced projects.
Oleksandr Navka
Feb 27th
Software engineer with 7 years of experience. All this time I have worked with Java projects based on Spring ecosystems. Provided Java trainings inside and outside the company about Java, Spring, Hibernate and functional programming.
Dmitrii Sugrobov
Feb 27th
Dmitrii is a software engineer, DevOps believer, and evangelist at Leroy Merlin. Leroy Merlin is a DIY retail company that is part of the Adeo group with a presence in 15 countries with headquarters in France. Dmitrii improves the processes associated with the life of the code during and after its being crafted. In the last 5 years his work connected with JVM-based languages.
Chris Thalinger
Feb 27th
Chris Thalinger is a software engineer working on Java Virtual Machines for over 14 years. His main expertise is in compiler technology with Just-In-Time compilation in particular. Initially being involved with the CACAO and GNU Classpath projects, the focus shifted to OpenJDK as soon as Sun made the JDK open-source. Ever since Chris has worked on the HotSpot JVM at Sun, Oracle and now at Twitter.
Charlie Gracie
Feb 27th
Charlie has over 15 years of experience working on JVM and runtime technologies. He is currently working for Microsoft in the Java Platform Team. The majority of his runtime experience is in Garbage Collection and multi-threaded scalability. His passion is improving the performance of the runtime and the applications running on them.
Dmytro Dumanskiy
Feb 27th
Blynk co-founder and CTO with 15 years of experience with Java. Designed and implemented high-load, distributed and big data systems. My specialization is performance optimizations and improvements. Active netty contributor and maintainer of blynk-server and clickhouse4j.
Alex Dukhno
Feb 27th
Alex is Java Engineer at Hazelcast. He is learning and practicing different types of programming languages for fun and some time for profit. That leads him to delve into runtimes and compilers to understand why happening what is happening. Alex also organizes meetups in Odesa and an active member of the Odesa open source community.
Orkhan Gasimov
Feb 27th
I am a passionate technologist with 17 years of experience in the software engineering industry. I love to motivate people, I love high-tech, and I’m proud to take part in the development of technologies that supercharge the world.
Nicolai Parlog
Feb 18th
Nicolai is a thirty-year-old boy, as the narrator would put it (if he’s generous), who has found his passion for software development (mostly Java) and who codes for a living as well as for fun. He also writes, speaks, streams, trains, and consults about it, and organizes a conference. His home is at codefx.org.
Oleh Dokuka
Feb 4th
Mainly Java Software Engineer / Consultant focused on distributed systems development adopting ReactiveManifesto and ReactiveProgramming techniques. Open-source geek, the active contributor of ProjectReactor. Along with that, public speaker and author of the book “Reactive Programming in Spring 5.0”.
Denys Makogon
Feb 4th
Software enthusiast, a fan of designing and developing platform and software as a service application for various cloud infrastructures. He’s a principal software developer, developer advocate at Oracle, concentrating on product development along with bringing well-designed and production-ready integration with cloud solutions, a contributor to various open-source projects, cloud-related technologies along with having fun with IoT devices and photography.
Blogger, photographer, traveler. Denis is a regular attendee and speaker at OpenStack summits (Atlanta, Austin, Paris, Barcelona, Boston) and PyCons (Hong Kong, Singapore, Italy), PyLondinium, Decompile.De. Co-author of OpenStack Application development, OpenStack Trove Essentials.
Alexey Loubyansky
Feb 3rd
Alexey is a member of Quarkus development team at Red Hat. Before joining the Quarkus team he was one of the JBoss/WildFly AS core developers for 15 years and contributed to a number of its subsystems including EJB2.x and EJB3.x, JCA, Microcontainer, Management architecture and tooling, patching and provisioning mechanisms.
Serge Bishyr
Feb 3rd
Software engineer at Lohika and active open source contributor. Always curious and open-minded. 6+ years of experience building distributed systems in different domains, like a health-care alarming system, networking debugging application, aviation, etc. Member of the program committee at Morning@Lohika monthly meetups.
Sergii Karpenko
Feb 3rd
Over 15 years of experience working as Java software engineer. Current interest – reactive programming.
Rossen Stoyanchev
Feb 3rd
Rossen is a committer on the Spring Framework team with contributions to the development of Spring’s RSocket programming model, the design and creation of Spring WebFlux, and the continued evolution of Spring MVC over several major and minor versions. Prior to joining Spring engineering, Rossen taught and consulted teams building Spring applications. Rossen’s background in Java also includes applications in finance, insurance, accounting, and distributed networking.
Anastasiia Smirnova
Feb 3rd
An active maintainer of spring-data-aerospike project, passionate open-source committer, and an open-minded developer.
Sebastian Daschner
Feb 3rd
Sebastian Daschner is a Java Developer Advocate at IBM, a consultant, author, and trainer. He is the author of the book ‘Architecting Modern Java EE Applications’. Sebastian is participating in open-source standardization processes such as the JCP or the Eclipse Foundation, helping to form the future standards of Enterprise Java, and collaborating on various open-source projects. For his contributions in the Java community and ecosystem, he was recognized as a Java Champion, Oracle Developer Champion, and JavaOne Rockstar. Besides Java, Sebastian is a heavy user of cloud-native technologies and anything related to enterprise software. He evangelizes computer science practices on https://blog.sebastian-daschner.com, his newsletter, and on Twitter via @DaschnerS. Sebastian kickstarted the JOnsen and jSpirit unconferences that connect Java developers throughout the globe. When not working with technology, he also loves coffee and travelling the world.
Natan Silnitsky
Jan 22nd
Natan Silnitsky is a backend-infra engineer @Wix.com.
He is on the Data streaming team in charge of building event-driven libraries and tools on top of Kafka. Before that, he was part of a task force that was responsible for building the next generation CI system at Wix on top of Google’s Bazel build tool.
Has many years of experience as a developer of large scale web services – First in .Net, later in Scala.
Natan’s passions include clean code, dev velocity, and great software design.
Evgeny Mandrikov
Jan 22nd
Evgeny is a contributor to various open-source projects, including OpenJDK, and a speaker at international conferences and JUGs. He is also one of the project leads of widely adopted code coverage tool for Java and Kotlin – JaCoCo, and the award-winning EclEmma project at the Eclipse Foundation that integrates JaCoCo into Eclipse. In his day job at SonarSource Evgeny develops SonarQube’s static source code analysis for languages such as Java, C/C++, C#, JavaScript.
Marharyta Nedzelska
Jan 22nd
I’m a Software Engineer @ Wix and Kyiv Kotlin user group leader. Interested in Kotlin, Scala, Typescript, Microservices, and Machine Learning. For now, I am working with different technologies including Kotlin, Scala, Node.js and Typescript. I am also working on making Kotlin one more programming language for JVM at Wix and try to spread the light of Kotlin to other developers.
Andrzej Grzesik
Jan 22nd
ags likes distributed systems in all shapes and forms. Coding since the age of 8, loves simplicity and continuous delivery. While he has written in many languages, he favors the JVM. Since “most software problems are people problems”, he stirs communities, organizes and speaks at conferences (proud to be a JavaONE Rockstar!). He is passionate about all things data, because of science! In his spare time… cycling, photography, and books. And he is a Java Champion!
Juergen Hoeller
Jan 22nd
Juergen Hoeller is co-founder of the Spring Framework open-source project and has been serving as the project lead and release manager for the core framework since 2003. Juergen is an experienced software architect and consultant with outstanding expertise in code organization, transaction management and enterprise messaging.
Mikalai Alimenkou
Jan 22nd
Senior Delivery Manager, Java Tech Lead and experienced coach. Expert in Java development, scalable architecture, Agile engineering practices, and project management. Having almost 15 years of development experience specializes in complex distributed scalable systems. Active participant and speaker of many international conferences. Founder and independent consultant at training center XP Injection. Organizer and founder of Selenium Camp, JEEConf and XP Days Ukraine conferences.
Holy Graal
Apr 27th
Too many languages we have, too many frameworks for each of them. Some of them are so awesome that you wish you can use it in your regular project. Java is for high performance server, Node.JS is for simple performance server, Python/R is for DS/ML, C/C++ for embedded, etc. Is it possible to unite them all under the same application?
I will show you how it is possible. Some theory and a lot of practice is on the way.






