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