CoffeeJUG 2021

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


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


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

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


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

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


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

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 McKeel

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

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

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

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

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

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