top of page

CoffeeJUG 2024

11th April

CoffeeJUG "A Healthy diet for your Java application"

Have you ever faced OutOfMemoryError? Was it in your CI or during the local run? Maybe you faced it as a user while playing your favorite video game or using online banking to pay your bills. That’s annoying, isn’t it? Every time we give the application more and more memory, it seems never enough… In Sonar we know how important it is to use memory efficiently. As our tools are often a part of your ci jobs, we care how much you spend on the infrastructure and try to minimize the cost. So in this session, I will try to share some tips for investigating, fixing, and preventing potential memory leaks and reducing the memory footprint. In simple words, I will show how you can help your applications eat memory « healthier »..

By Marharyta Nedzelska

my_photo - Маргарита Амбарцумова.jpeg

21st March

CoffeeJUG "Java 22 Unwrapped: What You Need to Know"

Uncover the latest improvements and enhancements of JDK 22 release.

By Oleh Melnyk

photo_5420179793783149488_y - Oleh Melnyk.jpg

29th February

CoffeeJUG "Working with technical improvements. Reasons. Methods. Estimation"

This talk is dedicated to technical improvements implementation.
Sometimes people have a lot of ideas how to improve or optimize at the project, but not always decide even to promote their ideas.
First of all implementing all ideas is a challenge for proactive beginners who wants to do a lot and has no understanding why it is not possible to do all of that now.
But it can't be said that it is not a challenge for more experienced people. It's easier for them to start implementing something but not every trial is successful. I believe that everyone knows situations when teams committed to implement technical improvement but didn't meet the deadline.
So this talk will be a kind of sharing my experience and observations regarding working with technical improvements.
The first section will cover the general info regarding technical improvements, their importance, factors that influences on length of the period to promote an idea.
Then one section will be dedicated to methods and algorithms of how to start and finish with implementation.
And the third section will be about the most difficult part - how to estimate technical improvements in real time..

By Polina Serhiienko

photo - Polina Serhiienko.jpg

25th January

CoffeeJUG "Evolving your APIs, a step-by-step approach"

When you publish your first HTTP API, you’re more focused on short-term issues than planning for the future. However, chances are you’ll be successful, and you’ll “hit the wall”. How do you evolve your API without breaking the contract with your existing users? In this talk, I’ll first show you some tips and tricks to achieve that: moving your endpoints, deprecating them, monitoring who’s using them, and letting users know about the new endpoints. The talk is demo-based, and I’ll use the Apache APISIX project for it.

By Nicolas Fränkel

id_7 - Nico F.jpg

CoffeeJUG 2023

12th December

CoffeeJUG "Harry Potter & Apache Iceberg Table Format. The magic of Apache Iceberg"

In the presentation we will: explore table formats, Hive format issues, Apache Iceberg concepts and architecture, real-time coding demo, quality control.
After the presentation, you will have an understanding of Apache Iceberg's key role in modernizing data warehouses. A live-coding will provide a hands-on understanding of Iceberg's functionality.

By Taras Fedorov

ava - тарас федоров.png

23rd November

CoffeeJUG "Ways to Level Up Your Java Application with GraalVM"

In this presentation, I will focus on the top things you can do with GraalVM to take the performance of your Java application to the next level. You will see how easy it is to apply GraalVM Maven plugin to compile a Spring Boot application ahead-of-time, containerise it, and, lastly, how to use GitHub Actions to automate the build of a native executable as part of a CI/CD pipeline. 

By Olga Gupalo

profile_pic - Olya Gupalo.jpg

26th October

CoffeeJUG "Using gRPC for web services communication"

In this talk we will cover gRPC/protobuf intro, example Java implementation in Spring, best practices and use cases.

By Mykhailo Voitovych

_UPS7208 - Михайло Войтович_edited_edite

27th September

CoffeeJUG "Good News, Everyone! Java 21: served up and ready to go!"

Let's talk about the latest version of Java, JDK 21! It's the next Long-Term Support (LTS) release after JDK 17. In this update, there are 15 exciting changes called JEPs that we're going to explore.

One of the standout features is the finalization of virtual threads, which is a significant step forward for concurrency in Java. Another cool completed addition is pattern matching for records and switch statements, making our code more concise and readable.

The Java collections framework also gets extended with new features, which will make working with data even more convenient. But that's not all! JDK 21 introduces some fresh and interesting concepts like string templates, unnamed variables, and simplified main methods, which will simplify our coding experience.

By Oleh Melnyk

Snapseed - Oleh Melnyk.jpg

29th August

What if you could develop better apps faster? What if you had a pair programming partner who could help you write cleaner code, catch bugs, and even write some code and tests for you, whenever you wanted or needed to do so?

GitHub Copilot is an Artificial Intelligence (AI) code completion tool that can help you write better code faster. It's not a replacement for your hard-won expertise, but it can provide timely assistance. Copilot offers code and test suggestions without judgement, letting you evaluate and consider - then use or discard - logic for inclusion that complements your existing code and style choices. Why overflow your stack when you can use a trained professional?

Come to this session to learn -- from a software developer and licensed pilot -- how to level up your development process using Copilot!

By Mark Heckler

MarkHecklerProfilePic - Mark Heckler.png

10th August

We, developers, were used to debug applications one thread at a time. However, with the advent of microservices architectures, what used to be a single stack trace in a single machine became many stack traces spread among computers. Come to this session to see how to perform a distributed tracing in your application using Jaeger with Opentelemetry.

By Rafael Benevides

IMG-20180705-WA0025 - Rafael Benevides.jpg

27 Липня

Вечірка "День народження CoffeeJUG"

"Інфраструктура - шо то має бути?"

Володимир Цап

voa_logo - Volodymyr Tsap (1).jpg

27th June

Event Streaming in the Cloud Native World with Apache Pulsar


The world is moving at an unprecedented pace and much of it has been powered by the innovations in software and systems. While event handling, messaging, and processing are not necessarily brand new concepts, the recent emergence in hardware such as virtualizations, multi-core processors, and so on, are in fact pushing the envelope in software design and development, elevating it to higher levels of capabilities never seen before. In the case of streaming which very often leverages on the underlying messaging mechanism(s) to bring distributed messaging to higher forms of purposes, such as IoT/IIoT applications, AI/ML data pipelines, or even eCommerce recommendations, event streaming platform has indeed become the “glue” in enabling data to flow through disparate systems in the pipeline and in a very dynamic fashion.

By Mary Grygleski

2023-03-VDBucharest-talkportrait1 - Mary Grygleski (1)_edited.jpg

27th April

* AWS Glue. Maybe the only thing you need 

* Apache NiFi: Brief Overview

By Yuriy Stakhniak

Юрій стахняк.jpg

By Ihor Didyk

Ігор дідик.png

29th March

* The anniversary release of Java 20 just in springtime - non-LTS but noteworthy.

* Make monolithic apps great again with Spring Modulith

Spring Modulith is a new, experimental Spring project that supports developers in expressing these logical application modules in code and in building well-structured, domain-aligned Spring Boot applications.

By Oleh Melnyk

Snapseed - Oleh Melnyk.jpg

CoffeeJUG 2022

8th December

Implementing Raft protocol with project Loom

We are living in an age of distributed systems. And one of the most challenging problems there is the consensus problem.
Raft is a consensus protocol that is used in many systems like etcd and Kubernetes, Consul, Kafka, Hazelcast etc. This protocol is based on asynchronous communication between nodes in a cluster (with leader election, log replication, tolerating node failures, timeouts etc.), so we need some useful mechanisms and language features to effectively implement protocol behaviour.
During the talk, we will briefly discuss the basics of the Raft protocol, and then in code, we will see how parts of it can be implemented using the promising Loom project.

By Andrii Rodionov

AndriiRodionov - Andrii Rodionov (1).png
andrii rodionov_ostannij maket.png
coffeejug_maket oleh_melnyk.png

20th October

The beauty of background tasks handling with JobRunr

Let's meet a simple and new tool for background job management and its out-of-the-box features that make development really easy.

By Oleh Melnyk

2021-09-02 01.51_edited.jpg

28th July

Why StackOverflow is fast food for learning, and how to learn effectively?

Most developers misuse StackOverflow which kind of solves the problem in the long term. But such fast food harms the formation of deep understanding and strong skills. Therefore, in the long term, such devs progress very slowly... To solve this problem, you need to limit fast food and learn how to organize effective learning.

By Taras Boychuk

main (square) - Taras Boychuk.jpg

28th July

Why StackOverflow is fast food for learning, and how to learn effectively?

Most developers misuse StackOverflow which kind of solves the problem in the long term. But such fast food harms the formation of deep understanding and strong skills. Therefore, in the long term, such devs progress very slowly... To solve this problem, you need to limit fast food and learn how to organize effective learning.

By Taras Boychuk

main (square) - Taras Boychuk.jpg

CoffeeJUG 2021


27th January

GraalVM Native Image Deep Dive


Cloud, microservices, serverless - these buzzwords bring GraalVM Native image to the top as a new form of Java apps distribution. It allows your apps to have fast startup time, quick scaling and not to depend on JRE. But most of the frameworks, libraries, and even Java platform itself doesn't fit well into Native image model. Who is to blame and what to do?
During this Deep dive talk we will discuss GraalVM Native image compilation steps, how they contradict with traditional development practices, and what you should consider to make your application ready for GraalVM Native image.

By Andrii Rodionov

Rodionov - Andrii Rodionov.jpg

CoffeeJUG 2021

16th December

Tracing Cloud-Native applications: From stacktrace to Opentracing

We, developers, were used to debug applications on thread at a time. However, with the advent of microservices architectures, what used to be a single stack trace in a single machine became many stack traces spread among computers. Come to this session to see how to perform a distributed tracing in your application using Jaeger with Opentracing.

By Rafael Benevides

IMG-20180705-WA0025 - Rafael Benevides.jpg

7th December

How we built serverless application on AWS

In this talk I’m going to show how we implemented a serverless application on AWS using lambda functions, CloudFront, API Gateway, and other services. I will present the application architecture and explain design decisions. I will also focus on security and high availability aspects.

By Konstantine Slisenka

IMG_3225_ - Konstantin Slisenko.jpg

28th October

Software Architecture Basics

 - Design patterns, frameworks, libraries, tech stacks, data storages and software architecture
- What is important and what is not in each software project?
- What are non-functional requirements and how they impact software architecture?

By Yuriy Nakonechnyy

avatar - Yuriy Nakonechnyy.png






Keep Architecture Under Control

 Architecture development takes a lot of time and effort. But only one wrong commit can lead to its destruction. To comply with the architecture, we spend a lot of time doing the code review and making sure that everyone follows our architecture principles. But, what if I tell you that most of what you check for code review can be done automatically? Join this talk and you will learn how to keep your architecture under control. 

By Ihor Banadiga

39149882_10157035094298676_1353248735026479104_n - Ihor Banadiga.jpg

30th September

To Java 17 and Beyond!

The next version of Java, 17, will be releasing soon and will mark a major point of change in the Java community as many organizations migrate to the latest Java runtime. So what has changed in Java if you are still primarily writing in Java 11? Or even Java 8? In this presentation we will look at some of the key changes that have been added to Java post-8. The large changes; the Module System and Records, quality of life improvements; var, text blocks, pattern matching, and the many performance and runtime improvements. We will finish the presentation with a brief look ahead to some of the changes that will be coming to Java in the near future and why Java’s future is bright.

By Billy Korando

public_profile_pic - Billy Korando.jpg

16th September

Hey, do you need some features? Stay cool with modern Java!

The first talk includes brief introduction of the current state of java evolution and what 2021 brought for java developers so far. Also I will cover the most interesting features of Java 16. The second talk is about the features of Java 17 - the next LTS release since Java 11. Also, we will take a step forward to find out what is already prepared for Java 18. To summarize - is it worth to do update and migrate our applications to use modern and cool version of JDK?

By Oleh Melnyk

2021-09-02 01.51.51 - Oleh Melnyk.jpg
coffeejug_maket-Відновлено_ oleh.png

19th August

TDD in a nutshell

We'll talk about my experience and challenges with TDD, some TDD philosophy and hopefully cover one of the testing approaches with live coding. We'll cover two more testing approaches + talk about the cons and pros of TDD. Summary and Q/A.

By Ostap Kovalchuk

D3X_3164 - Ostap Kovalchuk_edited.jpg

15th July

Tracing Issues in Your Application

Imagine that you’re receiving a support ticket that your application is not working fine. You read the attached stack trace and now it’s time to solve the mystery - what did the user do that led to throwing of this exception? Is it possible to find all the logs from all the applications that correspond to this user’s business operation? What if the user is complaining that the system is slow? How can you decide which concrete operation is the culprit? Is there any way to visualize the latency? Let’s answer these questions by taking a deep dive into application observability using distributed tracing, metrics, and correlated logs via Spring Cloud Sleuth, Tanzu Observability, OpenZipkin, OpenTelemetry, and more! The presentation will consist of some theory but there’ll also be live coding and demos.

By Marcin Grzejszczak

mgrzejszczak - Marcin Grzejszczak.jpeg

24th June

Replicating production on your laptop using the magic of containers

Containers are an amazing technology that are revolutionising how we deploy and create applications. Docker and Kubernetes are helping developers and organisations realise the magical potential that container technology and orchestration offer. Enter MicroShed and the Testcontainers framework enabling local test automation that leverages that magical portability containers offer. In this session we'll explore how Testcontainers can help you run and test with true-to-production environments in development with minimal re-writing of your test code.

By Grace Jansen


17th June

Compile-time annotation processing in Java

Every Java developer knows about the power of annotations and libraries like Lombok. However not everyone understands how this "magic" works, and how can we leverage it besides using third-party libraries. This talk reveals the back-stage of compile-time annotation processing.

By Ivan Verhunr

Skansen - Ivan Verhun.jpg

Code Generator: Java Mapping Framework

Introduction into Java code generators and Why it maybe help you in Production

By Roman Kniazevych

roman_icon - Roman Knizevych.jpg

3rd June

M3 and Prometheus: Monitoring at scale for everyone


For the past few years, Prometheus has solved many people’s monitoring needs, and it’s exceptional at what it does. Prometheus has exploded in popularity, and now many wish to store more metrics at longer retention and establish a single pane of glass on top of Prometheus for their monitoring needs across regions. M3, first developed at Uber, is an open-source metrics platform that you can deploy and run using Kubernetes and Helm that integrates with Prometheus. It can store petabytes of metrics data with replication for high availability in a cost-efficient manner, with compaction-averse time series storage, and an index that can efficiently index and run dimension-based regexp queries on billions of metrics.

By Łukasz Szczęsny

Łukasz Szczęsny

15th April

Spring Boot Omakase: A fast-paced "chef’s choice" dive into fun & useful topics!

Spring Boot has revolutionized the Java space and continues to do so, evolving constantly to increase developers' superpowers and advance the state of production-grade software development.
Presenting a dynamic technology before vastly different audiences often limits what can be proposed & presented. Let’s fix that!

By Mark Heckler


1st of April

Demystifying Garbage Collection in Java

This talk is meant to demystify how garbage collection (GC) works in a Java runtime. After laying out the basics I’ll explain how each GC algorithm work and how they can be implemented in a real world JVM (e.g. OpenJ9, Hotspot). How are these algorithms put together to make up a good GC configuration, and how one can better select a configuration/policy for their application? 

By Ihor Braga


CoffeeJUG 2020

28th January

Java Green threads to Loom project

25 years ago Java has started from the Green threads - a pseudo-concurrency paradigm. Java thread became a real native OS thread, after the appearance of the multi-core CPUs. Also, the paradigm has shifted to Thread pools with the usage of different Executors. 
In this talk we will review Java threads history, will understand coroutines usage, and will look to the future of Java virtual threads API.

Loom project in code

In this talk we will try to launch several examples with virtual threads using Loom Early Access Build

By Andrii Rodionov


24th September

Tech serves the business. Not business serves tech, such an IoC. What the main metrics for tech from a business perspective? Obviously answers popping in head: "Great performance, high reliability, scalability, etc". But does it really matters if you cannot get the app, cause it's still in development? NO. The main metric in constantly changing worlds is: "When I can use it to sell for customers, also known as Time to market?". So what is this talk about? As engineers we responsible to select the best technologies that fit the business needs. Needless to say that existing tech solution is complex and becoming more complex for multiple reasons. With we found the way to cut the edges and simplify the current approach to develop apps using Kotlin Multiplatform dramatically decreasing the time to market for mobile solutions. Want to know more? Join the talk.

By Andriy Makovskyi

photo - Andrey Makovskiy (1).jpg

22nd October

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 interservice communication but REST for client-to-service communication. Do we have to implement our API twice? Short answer: No.

By Serge Bishyr

IMG_0005 - Serge Bishyr копіювати.jpg

26th November

It is not an easy task to predict the future. Not even for a bit ahead. But we will try to make an educated guess how Java could look like in 2024 and what that means for all Java engineers today.

By Andrew Petryck

CoffeeJUG: Javarunner

10th December

How much value does Kotlin bring on top of Java on the back-end? Does it provide just a slight improvement, a decent improvement, or a completely new experience? We'll have a live coding session so you can get a chance to feel what is Kotlin. And then we'll discuss a couple of points of view based on the research on this topic. So you will be able to be more accurate when you need to compare Kotlin and Java.

By Taras Boychuk

5C9A0557 copy 2 - Taras Boychuk.jpg

20th August

Real-life examples of the most popular security vulnerabilities in Java web apps

In this talk, Yuriy gives a brief overview of the next topics:

- 0day attacks

- XSS attacks

- CSRF attacks

By Yuriy Nakonechnyy

avatar - Yuriy Nakonechnyy (1).jpg

Using Spring State Machine in solving state-related flow problems

​This talk covers the need for state machines in modern web development, main state machine components, and specifically Spring implementation of state machine

By Mykhailo Voitovych


23rd July

Hacking OAuth: Pitfalls and Remedies

OAuth 2.0 is the most widely used standard for secure authorization on the Internet for modern Web and Mobile apps. There are a lot of pitfalls that can lead to an insecure app.

In this talk, Micah gives a brief overview of OAuth and its mechanics. Then he leads you through a number of risks and remedies to best secure your applications. This isn’t just theory, but the practical application of certain risks and how to configure OAuth and write your code to mitigate those risks.

By Micah Silverman


25th June

The Evolution From Monolith to Microservices to Serverless and Beyond

If you are a developer or an architect, the odds are that you grew up building systems that are now commonly known as monoliths. In the last few years, we've seen a significant evolutionary shift to systems composed of microservices. Today we are witnessing the birth of serverless. The rate of evolutionary change is accelerating. But what is changing, and what remains the same? 

By Hugh McKee


28th May

Java Modules (aka JPMS) for day-to-day Java developers

Java 14 has been released recently and a feature introduced in Java 9 stills a mystery for many Java developers. JPMS is a change to the Java libraries, language, and runtime. This means that it affects the whole stack that developers code with day-to-day, and as such JPMS could have a big impact. For compatibility reasons, most existing code can ignore JPMS. 

By Rafael Benevides


30th April

Machine Learning: The Bare Math Behind Libraries

During this presentation, speakers will answer how much you’ll need to invest in superhero costume to be as popular as Superman. We will generate a unique logo that will stand against the ever-popular Batman and create new superhero teams. We shall achieve it using linear regression and neural networks.

By Łukasz Gebel


By Piotr Czajka

pczajka - Piotr Czajka (1).jpg

During this session, we first provided a short history of machine learning and an overview of two basic teaching techniques: supervised and unsupervised learning.

We started by defining what machine learning is and equip you with an intuition of how it works. We then explained the gradient descent algorithm with the use of simple linear regression to give you an even deeper understanding of this learning method. 

27th February

Performance testing is done right (ENG)

Everybody says that they do performance testing. But do you do it right? Are you sure that the interpretation of the numbers, or even the number themselves, has really something to do with the truth? In this talk, we will identify some of the common bad practices and mistakes while doing performance testing. 

By Jiri Holusa


Get the most from the testing on the local machine (UA)

We’re often complaining about the test environment while developing autotests for web applications UI. Where to deploy the app under the test? How to manage external dependencies and in what way configure test execution? The case gets more complicated when a developed application that needs to be tested is running on localhost by default (like some java apps do), while not in production, that tends to limit the variety of possible combinations of operating systems, browsers, etc during the testing. 

By Iurii Kutelmakh


22nd January

Intro to GraalVM and Native Images

In this talk, we'll briefly go through key concepts of GraalVM and then focus on the native image overview. We'll talk about the best use cases for GraalVM native images and how to make sure it's the right solution for your project, where to get started, what are some helpful configuration options.

By Alina Yurenko


By David Leopoldseder

dl - David Leopoldseder.jpg

GraalVM Native Image from a Compiler Developer’s Perspective

In this session David will provide a technical dive into the native image technology: the technical architecture of the native image, walk through the steps of the image building process, reflect on performance aspects of AOT and JIT-compiled code and talk about the key benefits of native image.

5th December

Where is my cache? Architectural patterns for caching microservices

This session presents different architectural patterns for distributed caching: Embedded, Client-Server, (Kubernetes) Sidecar, and Reverse HTTP Proxy Caching. 

By Rafał Leszko


By Nazarii Cherkas

IMG_8325 - Nazarii Cherkas.jpeg

Low Latency Data Processing in the Era of Serverless

In this talk, we see how easily you can build a low-latency processing layer for the Lambda Functions using the Hazelcast Cloud - a fully managed Hazelcast IMDG service. If you already have some background in the Cloud Computing and willing to learn more about Serverless and high-performant state management for the Lambda Functions - this talk for you.

5th November

Reactive for the Impatient (A Gentle Intro).

This talk presents to the audience a few of the major Java-based reactive frameworks and toolkits in the market today, such as RxJava, Spring Reactor, Akka, and Vertix.

By Mary Grygleski


By Oleh Dokuka


Multiplayer Pac-Man with RSocket.

Today the adoption of Machine Learning is enormous. We use it almost everywhere: on clusters, on our phones, on hand watches and even on the teapots. But, who knows how challenging could be the development of the continuously improved (or even real-time) machine learning.

11th September

From Zero to Hero with Kubernetes and Istio. Great talk on two parts.

Cloud-native applications are the present and the future of software engineering. And Kubernetes is one of the best option to deploy, scale, and run your cloud-native application in production. Istio adds a new set of features for connecting, securing, controlling, and observing your application.

By Serge Bishyr

IMG_0005 - Serge Bishyr копіювати.jpg

1st October

Two talks by Sebastian Daschner, Lead Java Developer Advocate @ IBM

Modern Enterprise Java from the ground up
Enterprise Java has come a long way. Let’s not focus on the old, darker days, but modern approaches on how to do enterprise applications. 

Seven Principles of Productive Software Developers. When working as a software developer, as well as in any other job, it’s important to be productive and to get things done.

By Sebastian Daschner


14th August

Remote Freelance Software Gardener from Poland Piotr Przybyl and two talks:
Passwords: do you keep them safe? At the first talk we'll consider meaning that keeping passwords in a [web] application is a boring and trivial task: some hashing, maybe some salt, et voilà!
Java. Migrating to 11 in the real app. The second talk it's real experience how managed to migrate two real Java server apps to Java 11. Why it was done, what and how was done, what wasn't required. Some hints for you.

By Piotr Przybyl

me5_small - Piotr Przybyl.jpg

11th July

The first speaker at our meetup was from Poland, Lead Software Engineer at Casumo with two talks. The first one: Fantastic Frameworks and How to Avoid Them. In this session, we’ll have a look at the cons of adopting invasive frameworks and how we can minimize the problems they cause.
And the second: Purely Dysfunctional Data Structures. Where we'll explore what the concept of Persistent Data Structures is, how are they implemented, and how much blood, sweat, and tears need to be done on the other side to make the experience of working with immutable data structures at least a bit efficient.

By Grzegorz Piwowarek

bottom of page