Day 1 - 10th Dec Main Hall #Influencers

StartEndSpeakersTopic
10:0011:00Registration & Networking
11:0011:30Dr. Pavlin Dobrev
Iva Abadjieva
Maria Hristova
Opening
11:3012:30Rudy De BusscherHow Class Data Sharing Can Speed up Your Jakarta EE Application Startup

Java Byte code is OS independent, which means that your application’s startup takes more time than a native image. Using the Class Data Sharing functionality introduced in more recent versions of the JVM, you can prepare your application so that it will load very fast.

In this presentation, I’ll go into more detail what Class Data Sharing is and the differences between the OpenJDK and OpenJ9 versions. With some Jakarta EE demo applications, you will see gains that you can achieve and reduce memory footprint a lot in Docker containers by sharing memory.

12:3013:20Jack ShiraziWhat we Learned Moving Hundreds of Services into the Cloud: A Java/Kubernetes/Cassandra/DynamoDB Best Practices Story
14:0014:50Threading safely in Java
When first teaching you concurrency in Java, most courses focus on the more “shiny” parts of it such as how to start several threads & parallelize a task so that you achieve 10x performance. However, most fail to teach the less glamorous but necessary part of writing thread-safe code.
That is like someone teaching you how to drive your new Porsche by skyrocketing your way up to 200 km/h while skipping the mundane but important lesson of how to drive carefully. This talk aims to bridge that gap and show you the less shiny, but much needed fundamentals.
15:0015:50Fly like a rocket with Helidon

Good news, everyone! Helidon got a jet engine! Now Helidon is packed with modern, high-tech, James Bond-level features and it flies like a rocket! Also, thanks to a nicely crafted fitness plan, the weight has been reduced and concentration increased – resulting in less RAM consumption and faster waking. Come to my live coding session to learn about all of the new features added in Helidon 2.2.0 such as GraalVM native image support in Helidon MP, MicroProfile Reactive Streams and Reactive Stream Operators, Helidon DB Client and HTTP Client in Helidon SE. I will also be demonstrating the new command line tool and live-reloading feature which will nitro-boost your development process. And there will be some new announcements!

16:0016:50Andres Cespedes MoralesSoftware Security: A Modern Overview

Do you think that security is a responsibility only from security specialist? In this session, you will find why security is involved across  different roles – especially developers – and how you can start developing more secure applications regardless of the programming language.

17:0017:50Reza RahmanHow Microsoft Learned to Love Java

This session is a fast-paced tour of all things Java and Azure at the modern Microsoft of today. We will first talk about the why, how and what of Java and Microsoft. We will then dive right into the broad range of tools, services and APIs that Microsoft offers around Azure for Java developers. We will show a small but representative demo of a Java application most developers would feel familiar with running well on Azure. Lastly, we will discuss the road map for what Java developers can expect from Microsoft in the future. This session is as much about sharing what Microsoft offers today as it is about listening to what the Java community wants to see from Microsoft tomorrow.

Slides

18:0018:50Werner Keil
Otavio Goncalves de Santana
NoSQL Endgame

The amount of data collected by applications nowadays is growing at a scary pace. Many of them need to handle billions of users generating and consuming data at an incredible speed. Maybe you are wondering how to create an application like this? What is required? What works best for your project?

19:0020:00Discussion :: Top Java Development Tools

Day 1 - 10th Dec Hall 3.1 #J2D Advanced

StartEndSpeakersTopic
11:3012:30Jacek BosiackiHow to write code efficiently?

Every time you switch from keyboard to mouse and back it takes several seconds. Nowadays IDEs provide possibility to avoid using mouse in almost every main function. I’d like to show you how to write code in IntelliJ with limiting mouse usage to minimum. Also, you will see how easily you can use IntelliJ to learn most of shortcuts just by coding.

12:3013:20Tony RobertsWorking with Microsoft Excel in Java
18:0018:50Naresha KTake Control of your Integration Testing with TestContainers

How easy is it to write and maintain integration tests when your system under test interacts with databases, message stores, and other external systems? It can be quite challenging, can’t it? For example, the lack of control over the setup of databases can increase the cost of integration testing. Sometimes we take the route of using an in-memory database instead of the one we employ in the production environment, making the tests less effective. With Docker containers, you can simplify this to some extent by running the setup before invoking your tests. Imagine if you get to control the database environment right from within the test code. TestContainers bring in this convenience.

TestContainers is a tool that you can invoke from your test code. It provides lightweight, throwaway instances of common databases, web browsers(Selenium tests), or anything else that can run in a Docker container. In this presentation, I walk you through how TestContainers is the most effective way to take advantage of Docker containers for integration testing. I present through several use-cases and demonstrate how TestContainers simplifies integration testing.

Day 1 - 10th Dec Hall 3.2 #J2D Novice

StartEndSpeakersTopic
14:0014:50Martin KuvandzhievCreating the right iOS application structure for future-proof development
15:0016:30Svetlin NakovProgramming Languages in 2021 – Trends and Opportunities
  • Which are the most future proof languages for 2021?
  • Review of most popular languages in 2020:
    • Most used languages: Python, JavaScript, Java, C#
    • Less often used languages: C++, PHP, TypeScript, Swift, Kotlin, Scala, Ruby, Visual Basic
    • Specialized languages: Rust, Go, R, C, Objective-C, Dart, Perl
    • Outside the standings (because they’re not programming languages): SQL, HTML, CSS, XML, JSON
  • Language popularity indexes:
    • Most sought after languages according to LinkedIn Jobs Worldwide?
    • Languages with the most code written in GitHub?
    • PYPL: language popularity based on Google Trends
    • TIOBE: language popularity according to global search enginges
    • Most discussed languages in StackOverflow?
    • Why all these popularity indexes are unreal and skewed?
  • For beginners: which language should I start with?
    • Why the actual language doesn’t matter much?
    • Which languages are most sough after in Bulgaria (according to LinkedIn Jobs Bulgaria)?
  • Summary: which languages to learn during 2021 and why?
15:0016:30Svetlin NakovProgramming Languages in 2021 – Trends and Opportunities
  • Which are the most future proof languages for 2021?
  • Review of most popular languages in 2020:
    • Most used languages: Python, JavaScript, Java, C#
    • Less often used languages: C++, PHP, TypeScript, Swift, Kotlin, Scala, Ruby, Visual Basic
    • Specialized languages: Rust, Go, R, C, Objective-C, Dart, Perl
    • Outside the standings (because they’re not programming languages): SQL, HTML, CSS, XML, JSON
  • Language popularity indexes:
    • Most sought after languages according to LinkedIn Jobs Worldwide?
    • Languages with the most code written in GitHub?
    • PYPL: language popularity based on Google Trends
    • TIOBE: language popularity according to global search enginges
    • Most discussed languages in StackOverflow?
    • Why all these popularity indexes are unreal and skewed?
  • For beginners: which language should I start with?
    • Why the actual language doesn’t matter much?
    • Which languages are most sough after in Bulgaria (according to LinkedIn Jobs Bulgaria)?
  • Summary: which languages to learn during 2021 and why?

Day 2 - 11th Dec Main Hall #Influencers

StartEndSpeakersTopic
11:0012:30Josh LongReactive Spring

Microservices and big-data increasingly confront us with the limitations of traditional input/output. In traditional IO, work that is IO-bound dominates threads. This wouldn’t be such a big deal if we could add more threads cheaply, but threads are expensive on the JVM, and most other platforms. Even if threads were cheap and infinitely scalable, we’d still be confronted with the faulty nature of networks. Things break, and they often do so in subtle, but non-exceptional ways. Traditional approaches to integration bury the faulty nature of networks behind overly simplifying abstractions. We need something better.

Spring Framework 5 is here! It introduces the Spring developer to a growing world of support for reactive programming across the Spring portfolio, starting with a new Netty-based web runtime, component model and module called Spring WebFlux, and then continuing to Spring Data Kay, Spring Security 5.0, Spring Boot 2.0 and Spring Cloud Finchley. Sure, it sounds like a lot, but don’t worry! Join me, your guide, Spring developer advocate Josh Long, and we’ll explore the wacky, wonderful world of Reactive Spring together.

12:4013:40Discussion :: Java Ecosystem Evolution
14:0014:50Nicolas Fränkel3 easy improvements in your microservices architecture

While a microservices architecture is more scalable than a monolith, it has a direct hit on performance.

To cope with that, one performance improvement is to set up a cache. It can be configured for database access, for REST calls or just to store session state across a cluster of server nodes. In this demo-based talk, I’ll show how Hazelcast In-Memory Data Grid can help you in each one of those areas and how to configure it. Hint: it’s much easier than one would expect.

15:0015:50Otavio Goncalves de SantanaArchitecting Cloud Computing Solutions with Java

Cloud-Native has become a big buzzword around the world, a term that is practically used by everyone at all times. But what does it mean? What are the advantages it brings to your application and your day as a software developer or architect? What’s new in the Java world, and what are the steps to follow for a native cloud application? This presentation is a step-by-step guide that will practically guide you through implementing Cloud computing services effectively and efficiently.

Topics:

  • Cloud Native Concepts
  • Anatomy of Cloud Native Systems
  • Cloud Native Patterns
  • The Twelve-Factor App
  • Java specifications
16:0016:50Practical Application of API-First approach in microservice development

Building complex applications using microservices-based architecture naturally involves a great amount of remote communication based on RESTful APIs. The REST APIs represent the contract of the microservice, with both external and internal stakeholders. Microservices, with poorly designed and unstable APIs, might pose a challenge for the whole application stack, for both adoption and maintenance. In this session, we will dig into the benefits of the API-First development approach, for designing stable, clean, and robust microservice APIs. We will showcase a practical example of how API-First development can be streamlined for developing and consuming Spring-based Java microservices, leveraging mostly free and open source technologies.

17:0017:50Reza RahmanJava EE on Azure Magic Mystery Show

This fast-paced, demo-driven, entirely slide free session will show you the many ways of effectively deploying a Jakarta EE application to Azure. We will start by deploying a local Jakarta EE application to basic IaaS on Azure. We will then deploy the same application to an entirely managed Azure PaaS. Finally we will deploy the application to Azure using Docker and Kubernetes. We will discuss the trade-offs of each approach on the way, offering guidelines for which approach might be best for your application on the cloud. At the end of the session, you will have all the demos on GitHub so you can explore them on your own.

Guide

18:0018:50Sun TanEclipse Che – Live Demo
19:0019:50Ivar Grimstad
Werner Keil
OpenDDR and Jakarta MVC

Day 2 - 11th Dec Hall 3.1 #J2D Advanced

StartEndSpeakersTopic
11:0011:50Boris NikolovCreating the right Android application structure for future-proof development
14:0014:50Irina KamalovaTriangle of Cassanda & Solr & Kafka
15:0015:50Irina Kamalova
Rayna Stankova
Iva Abadjieva
Chiamaka Okenwa
Mani Sarkar
Discussion :: Women in Software Development Industry – Challenges, Career, Leadership
16:0016:50Rafał LeszkoMutation Testing with PIT

How well tested is your system? How do you measure it? Code coverage can give you the answer, however can we trust our unit tests? Trust me or not, but I used to work for the investment banking industry in a big project where a lot of unit tests had no assertions (!). And yes… the coverage was very high.

Mutation testing is a method to check the quality of your unit tests and show more reasonable code coverage reports. In this session I will describe the idea of mutation testing and show a live example with the use of PIT Mutation Testing framework.

17:0017:50Trayan IlievMaking Machine Learning Easy with H2O and Spring

Machine learning is becoming a must for many business domains and applications. H2O is a best-of-breed, open source, distributed machine learning library written in Java. The presentation shows how to create and train different type of supervised and unsupervised machine learning models easily using H2O Flow web interface – including Deep Learning Neural Networks, Automatic Machine Learning AutoML), Distributed Random Forest (DRF), Generalized Linear Model (GLM), Gradient Boosting Machine (GBM), XGBoost, Principal Component Analysis (PCA), Generalized Low Rank Models (GLRM), Word2Vec among the many. The session finishes with a demo showing how to incorporate some of the trained models in a real-time streaming web service implemented using Spring 5 Web Flux and Spring Boot.

18:0018:50Hands on Reactive Spring
  • Reactive Streams in Java
  • Reactive Spring Boot 2
  • WebFlux Async Non-Blocking Communication
  • Non-Blocking Database Access
  • DEMO

Day 2 - 11th Dec Hall 3.2 #J2D Novice

StartEndSpeakersTopic
11:0011:5010 Agile Steps for Technical Excellence and Built-in Quality

High Technical excellence is key for our Agile teams in order to succeed. It’s nothing new, but often we face projects with so many issues, poor quality and technical debt that to be agile becomes impossible.

As Leaders we coach, mentor, and teach Agility, but how can we incorporate the Agile mindset and principles in the main activity – the Software engineering itself?

In this session, we will explain and will tell stories from the practice about the relationship between our mindset and our code.

14:0014:50Nikolay MilovanovIntroduction to LoRa and LPWAN

LoRa is a radio technology for sending short data messages over long distances with minimal energy consumption. In this talk Nikolay will do a short introduction to LoRa chirp modulation, LPWAN and LoRaWAN protocol, deployment options, network operator types and best practices.

15:0015:50Nikolay MilovanovLoRa network distributed network logging and monitoring

LoRa is an LPWAN radio technology that works in ISM radio spectrum. The spectrum is free for use but still regulated and each user has to follow certain rules.

In this talk Nikolay will present an independent solution for distributed IoT LoRa network monitoring and logging. The solution reveals the top talkers in certain area and provides a good idea of the state of the LoRa radio spectrum. Finally a live demo will be done based on real data feeds from Sofia, Bulgaria.

16:0016:50Alvaro MuñozHow Variant Analysis helped secure the fight against COVID-19

In security, ‘variant analysis’ is the process of searching for variants of known vulnerabilities. This used to be done with grep and painstaking manual code audits, but it can be automated with a powerful semantic query language like CodeQL. I will show how we performed a variant analysis using CodeQL which started analyzing a vulnerability in Nexus Repository Manager and ended up finding many other critical vulnerabilities including a Remote Code Execution (RCE) in Germany’s Corona-Warn-App (German’s Contact tracing app). Finally, I’ll explain the factors that must come together to drive the adoption, scalability, and success of such technology.

17:0017:50Practical Neuroscience in an Agile Environment

This webinar will focus on how the brain works and how we can take advantage of that in our day-to-day work life. We will cover different scientific aspects of Psychology and Neuroscience, which we can relate and use in regular activities like running a retrospective, for example.

18:0018:25Chiamaka OkenwaWhat is OAuth? Introduction on how the open authorization framework works

Day 3 - 12th Dec Main Hall #Influencers

StartEndSpeakersTopic
11:0011:25Martin ToshevIntegrating with Elasticsearch

Elasticsearch is nowadays one of the most widely deployed full text search engines. During this code-only session we will review several options for integrating our Java applications with Elasticsearch.

11:3011:55Martin KulovCreate a blazing fast website using Azure Static Web Apps and Azure Functions
12:0012:50Nikos PapageorgiouCode as prose: Lessons from our colleagues
13:0013:50Naresha KEvolving with Java – How to Remain Effective