CoffeeJUG 2021

coffeejug_online1-Відновлено.png

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

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

coffeejug_maket-Відновлено_ oleh.png
232836340_1168186013686561_8966169068018414753_n.jpg

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

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

216196383_1149608802210949_5105848843945861446_n.jpg
204232487_1137877206717442_3659836801725459804_n.jpg

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

Code Generator: Java Mapping Framework

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

By Roman Kniazevych

197962121_1129706480867848_9215566334292290331_n.jpg
189718634_1120242551814241_6251670849974469661_n.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

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_april.jpg
coffeejug_online_march.jpg

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

coffeejug_january.png

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 apptronic.net/core 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

ALH_7165.jpg
ALH_8635.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

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
ALH_9447.jpg

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

ALH_6293-2.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

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

107766595_891619571343208_20234630739052
104479604_876062979565534_74846717018686

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

99021381_854109061760926_448921307606679
93714041_828931090945390_131965292960651

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

ALH_5057.jpg

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