Please note that this is the agenda from 2019

Day 1 - 10th Dec Main Hall #Influencers

Start End Speakers Topic
10:0011:00Registration & Networking
11:0011:30Dr. Pavlin Dobrev
Iva Abadjieva
Opening
11:3012:30Rudy De Busscher
How 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 Shirazi
What 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 Morales
Software 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 Rahman
How 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:50Otavio Goncalves de Santana
Werner Keil
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
19:0020:00All Tech Communities Meet-Up & Awards

Day 1 - 10th Dec Hall 3.1 #J2D Advanced

Start End Speakers Topic
11:3012:30How 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:20Working with Microsoft Excel in Java
18:0018:50Naresha K
Take 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

Start End Speakers Topic
14:0014:50Creating the right iOS application structure for future-proof development
15:0016:30Svetlin Nakov
Programming 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 Nakov
Programming 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

Start End Speakers Topic
11:0012:30Reactive 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änkel
3 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 Santana
Architecting 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 Rahman
Java 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:50Eclipse Che – Live Demo
19:0019:50Ivar Grimstad
Werner Keil
OpenDDR and Jakarta MVC

Day 2 - 11th Dec Hall 3.1 #J2D Advanced

Start End Speakers Topic
11:0011:50Creating the right Android application structure for future-proof development
14:0014:50Triangle of Cassanda & Solr & Kafka
15:0015:50Rayna Stankova
Iva Abadjieva
Chiamaka Okenwa
Discussion :: Women in Software Development Industry – Challenges, Career, Leadership
16:0016:50Rafał Leszko
Mutation 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:50Making 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

Start End Speakers Topic
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:50Introduction 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:50LoRa 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:50How 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 Okenwa
What is OAuth? Introduction on how the open authorization framework works

Day 3 - 12th Dec Main Hall #Influencers

Start End Speakers Topic
11:0011:25Martin Toshev
Integrating 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:55Create a blazing fast website using Azure Static Web Apps and Azure Functions
12:0012:50Code as prose: Lessons from our colleagues
13:0013:50Naresha K
Evolving with Java – How to Remain Effective