Day 1 - 10th Dec Main Hall #Influencers
|10:00||11:00||Registration & Networking|
|11:00||11:30||Dr. Pavlin Dobrev|
|11:30||12:30||Rudy 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:30||13:20||Jack Shirazi||What we Learned Moving Hundreds of Services into the Cloud: A Java/Kubernetes/Cassandra/DynamoDB Best Practices Story|
|14:00||14:50||Threading 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:00||15:50||Fly 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:00||16:50||Andres 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:00||17:50||Reza 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.
Otavio Goncalves de Santana
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:00||20:00||Discussion :: Top Java Development Tools|
Day 1 - 10th Dec Hall 3.1 #J2D Advanced
|11:30||12:30||Jacek Bosiacki||How 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:30||13:20||Tony Roberts||Working with Microsoft Excel in Java|
|18:00||18:50||Naresha 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
|14:00||14:50||Martin Kuvandzhiev||Creating the right iOS application structure for future-proof development|
|15:00||16:30||Svetlin Nakov||Programming Languages in 2021 – Trends and Opportunities|
|15:00||16:30||Svetlin Nakov||Programming Languages in 2021 – Trends and Opportunities|
Day 2 - 11th Dec Main Hall #Influencers
|11:00||12:30||Josh Long||Reactive 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:40||13:40||Discussion :: Java Ecosystem Evolution|
|14:00||14:50||Nicolas 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:00||15:50||Otavio 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.
|16:00||16:50||Practical 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:00||17:50||Reza 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.
|18:00||18:50||Sun Tan||Eclipse Che – Live Demo|
|OpenDDR and Jakarta MVC|
Day 2 - 11th Dec Hall 3.1 #J2D Advanced
|11:00||11:50||Boris Nikolov||Creating the right Android application structure for future-proof development|
|14:00||14:50||Irina Kamalova||Triangle of Cassanda & Solr & Kafka|
|Discussion :: Women in Software Development Industry – Challenges, Career, Leadership|
|16:00||16:50||Rafał 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:00||17:50||Trayan Iliev||Making 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:00||18:50||Hands on Reactive Spring|
Day 2 - 11th Dec Hall 3.2 #J2D Novice
|11:00||11:50||10 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:00||14:50||Nikolay Milovanov||Introduction 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:00||15:50||Nikolay Milovanov||LoRa 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:00||16:50||Alvaro Muñoz||How 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:00||17:50||Practical 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:00||18:25||Chiamaka Okenwa||What is OAuth? Introduction on how the open authorization framework works|
Day 3 - 12th Dec Main Hall #Influencers
|11:00||11:25||Martin 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:30||11:55||Martin Kulov||Create a blazing fast website using Azure Static Web Apps and Azure Functions|
|12:00||12:50||Nikos Papageorgiou||Code as prose: Lessons from our colleagues|
|13:00||13:50||Naresha K||Evolving with Java – How to Remain Effective|