Please, note:

  • All presentations on Day 3 will take place in Hall 7
  • Kai Hackbarth lecture was moved to Day 3 in Hall 7
  • Please remember to take your laptop for all Master Classes
  • Eugene Ciurana Master Classes scheduled for Day 3 were cancelled

Day 1 - 27th Nov Main Hall #Influencers

StartEndSpeakersTopic
08:0009:30Registration
09:3010:20Opening
10:2011:10Mark Stephen MeadowsEthical AI and Blockchain: A Democratic approach

This presentation looks at conversational user interfaces (CUIs), how they will be coupled with blockchain and AI, and their impact on our near future. Popular CUIs are Alexa and Siri. As these systems collect more user data, which is used to train AI systems, we need to consider several key issues, including: trust – who is responsible for these bots; privacy – who has access to my data; and ethics – what is my data being used for? We look at solutions, why blockchain is needed to solve problems AI introduces, and ways to provide maximum value to all stakeholders.

11:1012:00Reza RahmanMicroProfile state of the Union
12:0012:40Dr. Pavlin DobrevAn end to the hype: IoT goes mainstream

Have we discovered the Holy Grail of business models for the Internet of Things, the killer app? Does every product need to be connected via a smartphone app? Have, as predicted, billions of devices already been connected? And what will come after the IoT hype is over? In his keynote address, Dr. Pavlin Dobrev traces Bosch’s route to the Internet of Things and its attendant evolution to an IoT company. For Dr. Pavlin Dobrev, the year 2018 marks a turning point: connectivity has finally reached the corporate sector and is now being increasingly commercialized. He believes that the hype surrounding IoT is over – but the excitement is not about to cool. According to a new study, one in two companies is planning to introduce an IoT platform this year. In the past, IoT was the subject of individual task forces and special projects, but now it is set to become an integral part of enterprise infrastructure, product portfolios, corporate strategy, and organization.

Leaning objectives:

  • The case example of IoT at Bosch: from traditional manufacturer to IoT company
  • Springboards and pitfalls on the path to becoming a successful IoT company
  • The role played by IoT platforms, software, and developers in successful IoT companies
  • The impact of open source and agile organization on IoT success

Slides

12:4013:30Lunch Break
13:3014:20Michael SchrenkMalware Included

There’s no doubt that today’s developers benefit from imported third-party libraries. Easy to import applications like Google Charts and frameworks like jQuery facilitate quicker software development cycles and more professional results. But while the use of imported third-party libraries is on the rise, there is little awareness that unvalidated, and uncontrolled, third-party include files could also be used as attack vectors for delivering malware. To better understand the potential scope of this problem, this talk shares the results of a survey conducted to gauge the prevalence of websites that import uncontrolled, unvalidated, third-party software. We’ll then look at how these include files could be used to deliver malware, compromise privacy, or deliver ransomware. Finally, we’ll explore ways to mitigate the dangers of importing third-party software libraries.

14:2014:30Coffee Break
14:3015:10The Future of Software Development
15:1015:20Coffee Break
15:2016:10Euan FinlayDon’t Panic! How to Cope Now You’re Responsible for Production

More and more developers are expected to be on-call, provide out-of-hours support, and respond to production outages. If you don’t have much experience handling incidents, it can be scary, intimidating, and feel like being dropped in the deep end. But it doesn’t have to be that way!

Over the last few years on the FT’s Content team, we’ve transformed our incident response – from a number of mildly terrifying multi-hour outages, to a stable platform where team members feel comfortable on-call.

This talk will provide practical tips and advice on:

  • setting up an incident response framework
  • what to do when Everything Is On Fire™
  • improving things afterwards
  • and some horror stories of our own…

Slides

16:1016:20Coffee Break
16:2017:10Eugene CiuranaFind the Terrorist!

Deeper discussions about data science and how various problems were solved during the development phase – how do you go about finding the one bad guy of interest among 500 million unique entities?

17:1017:20Coffee Break
17:2018:10Ahmad GoharA journey to build a distributed blockchain application
18:1019:00Andy GumbrechtTesting Java Microservices

With traditional software unit tests, there’s never a guarantee that an application will actually function correctly in the production environment. And when you add microservices, remote resources that are accessible over a network, into the mix, testing is more tricky. To make things even harder, microservices typically need to collaborate with additional network-based microservices, making testing even more challenging. Moving to microservices implies a change in the mindset of developers, so will using old testing techniques with new architectures still work?

In this session, you’ll learn test strategies that solve the most common issues likely to be encountered when writing tests for a microservices architecture. We will look at how tools such as Arquillian, JUnit, Docker and techniques such as service virtualization, consumer-driven testing and testing in production with Istio can aid in accomplishing this task.

19:0020:00All Tech Communities Meet-Up & Awards

Day 1 - 27th Nov Hall 3.1 #J2D Advanced

StartEndSpeakersTopic
08:0009:30Registration
12:4013:30Lunch Break
13:3014:20Ryan CuprakExploring Java Heap Dumps

Memory leaks are not always simple or easy to find. Heap dumps from production systems are often gigantic (4+ gigs) with millions of objects in memory. Simple spot checking with traditional tools is woefully inadequate in these situations, especially with real data. Leaks can be entire object graphs with enormous amounts of noise. This session will show you how to build custom tools using the Apache NetBeans Profiler/Heapwalker APIs. Using these APIs, you can read and analyze Java heaps programmatically to ask really hard questions. This gives you the power to analyze complex object graphs with tens of thousands of objects in seconds.

14:2014:30Coffee Break
14:3015:10The Future of Software Development (in Hall 3 #Influencers)
15:1015:20Coffee Break
15:2016:10Konrad KamińskiAsynchrnous programming with Kotlin coroutines

Coroutines is a new feature in Kotlin. It allows for writing asynchronous code almost just like if it was regular/synchronous. This makes coroutines a great alternative to existing approaches for writing asynchronous applications.

In this session, I’ll show how coroutines work in Kotlin. You’ll learn about new syntax and implementation details. You’ll find out about the differences between coroutines-based and reactive-based solutions. You’ll also see a sample Spring-based application which uses coroutines.

16:1016:20Coffee Break
16:2017:10Goran KolevskiMicroservices – Just Another Spaghetti Sauce Recipe

Microservices are becoming a de facto standard for software architecture. Business demands to shorten time to market and the constant needs to roll quick updates are primary advocates for microservices.
Microservices showcased they are the appropriate approach to roll fast releases.

However, microservices introduce a lot of complexity that might represent a trap for inexperienced teams, that might easily cause a completely opposite effect. Without appropriate design the code can become even worse that the dreaded monolith and the releases will suffer continuous delays.

Microservices require discipline, experience and broad technical knowledge in order to successfully incorporate them in practice.

In this talk I’m about to present how not to fall in the traps accompanying this approach.

17:1017:20Coffee Break
17:2018:00Stanimir NeroevProblem-solving concepts and strategies

In this lecture, Stanimir will share good practices in the problem-solving process. Based on his personal experience, he would give advice on how to gain the confidence we need, when we are looking for a solution. How to build and analyze a set of alternatives, which approach towards the problem should we choose and many more aspects, regarding the problem-solving process are to be covered by Stanimir.

18:1019:00Martin ToshevJava Security Animated

Security concepts incorporated in the Java platform and major frameworks like Spring, Java EE and OSGi are typically difficult to grasp and understand in depth. The same applies for Java concurrency utilities and a tool called Java Concurrency in Practice was created to address this issue a few years back and following its trail a similar tool called Java Security Animated is aiming to lower the entry barrier to the security portfolio of the Java platform. In this tool we will have a journey in the security world of the platform using Java Security Animated.

Idea behind the tool is derived with a consent by the creator of Java Concurrent Animated (Victor Grazi) and was presented at Java2Days 2012.

Day 1 - 27th Nov Hall 3.2 #J2D Novice

StartEndSpeakersTopic
08:0009:30Registration
12:4013:30Lunch Break
13:3014:20Nakul MishraCQRS and EventSourcing with Spring & Axon

There’s a ton of theory available on DDD, event sourcing and CQRS but how does one get started in terms of code? Moreover, when we have a tight deadline, one wants to solely focus on solving core business problems rather than getting caught up by plumbing non-functional concerns such as snapshotting, command handling, guaranteed events delivery to the right event listeners, events replaying, persisting aggregate, etc. In this talk, we will build an application to see how Axon Framework supports CQRS and Event sourcing by providing a robust implementation for fundamental building blocks such as event dispatching mechanism, aggregates, repositories, event sourcing, Domain Events, etc.to build scalable, extensible and maintainable applications. Furthermore, Axon provides extensive support for Spring which means much of the configuration can be avoided by leveraging Spring’s annotation support.

Slides

14:2014:30Coffee Break
14:3015:10The Future of Software Development (in Hall 3 #Influencers)
15:1015:20Coffee Break
15:2016:10Lachezar BalevKafka. Usage in an event driven architecture.

The topic includes basic and gentle introduction to Apache Kafka bundled with a live demo. For those that love to experiment and make their hands dirty. There will be a GitHub project including a dockerized infrastructure – Kafka and Zookeeper. All this will be followed by some real world Kafka stories from the kitchen.

16:1016:20Coffee Break
16:2017:10Tomas Langer
Dmitry Kornilov
Helidon: Java Libraries for Writing Microservices

Come learn about developing microservices using Helidon. Helidon is an open source project led by Oracle. Helidon contains a collection of Java libraries for building microservices. In this session we will talk about two programming models supported by Helidon: lightweight, functional model using JDK as runtime for those wanting less “magic” and Microprofile for those wanting inversion of control and familiar Java EE APIs. We will show how to quickly create your first Helidon application which uses both programming models.

17:1017:20Coffee Break
17:2018:10Jack ShiraziBecome A Guru: How To Solve Java Memory Leaks In Under 10 Minutes

I provide a consistent methodology for identifying whether you have a heap memory leak, analysing the memory to identify the leak, and determining the cause. I focus on heap leaks, which are the most common Java memory leaks. Yes, this talk will make you a guru.

Slides

Day 1 - 27th Nov Hall 7 #CM Advanced

StartEndSpeakersTopic
08:0009:30Registration
12:4013:30Lunch Break
13:3014:20Mandi WallsModern Application Automation with Habitat

Habitat is an open source project from Chef Software designed to help you encapsulate exactly what your application needs to run in a single artifact. Build once for Linux, run on any Linux distribution without having to worry about the diverse naming conventions or versions for your dependencies. Build for Windows and deploy as a standalone service. Bring legacy applications forward onto new platforms or into the cloud even if you don’t have access to all of the source code. This talk will focus on the key features of Habitat, including demos of how to build and run an application in the Habitat environment.

Slides

14:2014:30Coffee Break
14:3015:10The Future of Software Development (in Hall 3 #Influencers)
15:1015:20Coffee Break
15:2016:10Luis WeirGraphQL as an alternative approach to REST

Originally designed by Facebook to allow its mobile clients to define exactly what data should be send back by an API and therefore avoid unnecessary roundtrips and data usage, GraphQL is a JSON based query language for Web APIs. Since it was open sourced by Facebook in 2015, it has undergone very rapid adoption and many companies have already switch to the GraphQL way of building APIs – see http://graphql.org/users.

However, with some many hundreds of thousands of REST APIs publicly available today (and many thousands others available internally), what are the implications of moving to GraphQL? Is it really worth the effort of replacing REST APIs specially if they’re successful and performing well in production? What are the pros/cons of using GraphQL? What tools / languages can be used for GraphQL? What about API Gateways? What about API design?

With a combination of rich content and hands-on demonstrations, attend this session for a point of view on how address these and many other questions, and most importantly get a better understanding and when/where/why/if GraphQL applies for your organisation or specific use case.

Slides

16:1016:20Coffee Break
16:2017:10Dirk Van Den WouwerBuilding Reactive, Scalable Products using Asynchronous Data Streams and Containers – a real example

Because of the explosive growth of the internet, performance requirements for web applications
have grown accordingly. A few years ago the C10K problem was a huge challenge… servers handling
10000 connections at the same time. Nowadays, Twitter gets 300000 requests per second.
Vert.x is a lightweight, asynchronous, event-driven, scalable application framework for reactive
applications on the JVM. It is Open Source and is currently one of the most popular JAVA projects on
Github.
We will together investigate, on the basis of a real architecture, its potential and give you a head
start on this technology.

17:1017:20Coffee Break
17:2018:10Brent Franklin
Dobromir Georgiev
The travel search problem – from complex industry standards to pure algorithms and engineering

We will talk about combinatorial and search problems from real-life tasks within our product and we will propose possible computer science solutions with their pros and cons for one or more problems. We will cover up to 3 problems.

18:1019:00Andrew LombardiServerless deployment with AWS

Gone are the days that required a developer to work with IT to provision a physical machine and add it to a rack. Learn how to write code that runs without a defined machine and only on demand. In this talk we’ll introduce many of the products provided by Amazon and deploy an API using Python to AWS Lambda without an EC2 machine or ECS instance.

Slides

Day 1 - 27th Nov Hall 8 #AIST

StartEndSpeakersTopic
08:0009:30Registration
12:4013:30Lunch Break
13:3014:20Aleksandar KostadinovBug fixing in IoT: Tackling challenges during connected device Integration

Day by day, we are getting more and more excited about the ideas behind the Internet of Things – IoT always brings a picture of a fully-automated surrounding world where connected devices substitute us in many daily activities. It is a fact that our world has already become flooded by smart devices and, as a natural consequence of this fact, many companies are trying to conquer a bigger part of the market, offering the customers their own bespoke IoT platforms that integrate a large number of connected devices produced by renowned manufacturers. However, because there is no such standard accepted for the connected device APIs, as well as the means of device connectivity and communication are almost unlimited, the process of smart device integration turns out to be making the IoT platform providers face a great challenge – the lack of standardization and the various device communication methods, which results in many possibilities for bugs to sneak into the platform. So, the main question stands – how to prevent our smart device integration platform from bugs and make it safe enough?

In order to at least partially answer this outstanding question, being part of the team that is responsible for integrating new devices into a big leading IoT platform for 4 years now myself, I will share my experience how we managed to resolve a lot of issues related to connected device integration and what actions and adaptations our team had to undergo in order to improve the quality of our products. During the session, we are going to have a deeper look over the bugs we fixed in the last year in a statistical manner – what was their type, what components they affected, what time was needed to discover the cause and fix a given defect, what percent of them were real blockers, etc. Further ahead, we will take a look over what structural changes our team had to go through and what mistakes we could have easily avoided in advance. Finally, practical advice is going to be shared in order to clarify how to spot potential bugs and how to improve the quality of the connected device IoT platform we are developing.

14:2014:30Coffee Break
14:3015:10The Future of Software Development (in Hall 3 #Influencers)
15:1015:20Coffee Break
15:2016:10Thomas MetcalfeWords words words

If we’re going to continue using words, we’re going to need to do a lot of work.  In this talk, I will give an overview of how we have adapted to use words as data for machine learning, and then showcase the technique of embedding data, from single synonyms to whole sentences.  I will also talk about some recent Rasa research we have been conducting with embeddings when building AI assistants.

Slides

16:1016:20Coffee Break
16:2017:10Preslav MihaylovLearn Blockchain By Building It

Blockchain is the new buzzword in our industry. And not only there.
It expands its reach to many areas of our life and has the potential to revolutionize the way we deliver and use goods and services.
That is why, we ought to catch up by learning what it actually is.
And what better way to learn it than by actually building one live?

On Java2Days, I will walk you through how Blockchain works by building our own version of it in Python.
We will address concepts such as nodes, mining, proof of work, addresses and much more.
So save the date and see you there!

Slides

17:1017:20Coffee Break
17:2018:10Nikolay MilovanovThingsLog – Smartest way to monitor water, gas and electricity

In this talk I will walk you over ThingsLog – a Bulgarian startup for consumption monitoring of water, gas and electricity.

The idea about the system has been build in 2013 when people has been burning themselves because of high electricity bills.

Now it has been put into production and everybody can order “Consumption monitoring as a service”.

In this lecture we will explain how does the system work, how we build it, how we put it on a field test and how we have put it in production.

Day 2 - 28th Nov Main Hall #Influencers

StartEndSpeakersTopic
08:0009:30Registration
09:3010:20Brian VermeerDon’t be a Trojan

Data is the new gold. Security problems and data leaks are getting more and more attention in the media. Privacy and integrity of your clients (personal) data is more than a hot topic. Are you as a developer prepared?! On the other hand, you could be part of the problem as well. So, how secure are you and how secure is your work.

Slides

10:2010:30Coffee Break
10:3011:20Ondro Mihalyi5 Agile Steps to building Elastic and Cloud-ready apps

Do you want to know how to build modern and scalable applications, while focusing on its business value? You’ll learn how to develop an agile evolutionary architecture which allows delaying unnecessary technical decisions until the time it’s safe to make them. MicroProfile features will get us started quickly. Start simple and easily refactor to improve the important parts later. Open source implementations of MicroProfile like Payara Micro add further flexibility; it can range from simple messaging to Apache Kafka or Amazon SQS for high performance messaging; from simple config files to distributed config. Come to learn how to think flexibly and adapt to the future.

In a live demonstration, you’ll see how an example application can be evolved gradually to deliver business value quickly and how to add new features later. You’ll learn how to evolve the application according to changing requirements without creating a ball of mud in the future.

Slides

11:2011:30Coffee Break
11:3012:20Steve PooleA modern fairytale: Java Serialisation

Once, long ago, we we looked upon serialisation as an important part of Java. As the years past we began to recognise the flaws in its design and sighed. Today we realise that the story of serialisation has become a dark and twisted tale.

In this session see why we still need serialisation, how the inbuilt design is fatally flawed and how it is being exploited and used against us. Learn how to work against the dark arts railed against us and understand how even the alternative forms of Java serialisation can still be open to attack.
Does this tale have a happy ending? Can goodness prevail and can you make your application safe from Java serialisation weaknesses?

Only your can decide.

Slides

12:2013:30Lunch Break
13:3014:20Reza Rahman
Werner Keil
Otavio Goncalves de Santana
Ondro Mihalyi
Dmitry Kornilov
Emily Jiang
Jakarta EE Expert Panel

Discuss the future of Jakarta EE with the main people behind it!

Slides

14:2014:30Coffee Break
14:3015:10Ask our Speakers Anything
15:1015:20Coffee Break
15:2016:10Ryan CuprakMigrating to Modules

Java has finally shipped with modules! You’ve attended presentations and read articles about Java 9 modules, but how do you actually go about modularizing an application? This session will present a practical example in which an application is modularized. Application architecture, dependencies, and tooling will be covered. Hopefully this will give you a better idea of what is involved in modularizing an application and the benefits it provides.

16:1016:20Coffee Break
16:2017:10Steve KostenWhy You Need a Secure SDLC and How to do it

The security team is not just those security professionals who yell at us to not click on links, we are part of the security team. In this talk, we will discuss and demonstrate why security is important by demonstrating some exploits and then talk about how we can integrate some security into our SDLC.

17:1017:20Coffee Break

Day 2 - 28th Nov Hall 3.1 #J2D Advanced

StartEndSpeakersTopic
08:0009:30Registration
09:3010:20Otavio Goncalves de Santana
Werner Keil
JNoSQL: The Definitive Solution for Java and NoSQL Database

JNoSQL is a framework and collection of tools that make integration between Java applications and NoSQL quick and easy — for developers as well as vendors. The API is easy to implement, so NoSQL vendors can quickly implement, test, and become compliant by themselves. And with its low learning curve and just a minimal set of artifacts, Java developers can start coding by worrying not about the complexity of specific NoSQL databases but only their core aspects (such as graph or document properties). Built with functional programming in mind, it leverages all the features of Java 8. This session covers how the API is structured, how it relates to the multiple NoSQL database types, and how you can get started and involved in this open source technology.

Slides

10:2010:30Coffee Break
11:2011:30Coffee Break
11:3012:20Steven LauwereinsMicroservices & Containers

Applications are becoming more and more dynamic, with every month or even every week new
features being added or split out. Traditional application architectures have proven a nightmare to
build such dynamic systems in a reliable and fast way. Therefore, the architecture of applications is
moving more and more towards a microservice architecture.
Additionally, the high amount of users requiring different parts of the application backend requires a
more flexible approach then traditional virtualized servers. To this end, container based service
hosting has found a strong penetration in the market.
This session will discuss the approach of both methods, their similarities and their coupled and
synchronous rise in the market.

12:2013:30Lunch Break
13:3014:20Alexey Ustenko
Pavel Bushmelev
No wonders. Even at scale.

So, your system is well designed and thoroughly tested. It should run in production smoothly, shouldn’t it? If only it did! Alas, incidents happen.

Sometimes the reason is as simple (and embarrassing) as an edge case leading to a NullPointerException. But sometimes it’s really hard to understand the issue. You cannot believe it can ever happen! Yet it does. And after long hours of drilling in, you finally have an “aha! moment”:
A well known, widely used library gets stuck in…
An entire JVM crashes just because of…
It appears to be an explosive combination of your Cloud provider policies and…
A JVM setting, tweaked a few years ago…

No spoilers! Come and listen to four real stories of how “wonders” (not to say “nightmares”) which occurred in the production systems got investigated and how they have driven design or process improvements in our company.

Slides

14:2014:30Coffee Break
14:3015:10Georgi AtanasovFearless monolithic to microservices migration with Redhat Openshift Container Platform

For the past 9 months myself and a team of fearless software engineers, devops experts and software architects have been working on a transformation project for a large enterprise. Our goal is to strangulate a monolith enterprise application, developed in the last 10 years into a modern microservice based mesh.

In this topic we will look into the challenges posed by the project’s requirements and the overall architecture that we have defined. We will also dive deeper into the principles we followed for performing the migration from monolith to microservices. And finally, we will explore how we setup the container infrastructure and used a modern state of the art platform for managing a service mesh build on top of Redhat Openshift Container Platform

15:1015:20Coffee Break
15:2016:10Vladimir Shalamanov
Nikola Bogdanov
Domain-driven design, CQRS and Event sourcing

Self-organizing scrum teams are just not enough! As per the Agile Manifesto “The best architectures, requirements, and designs emerge from self-organizing teams.”, which is true. According the Conway’s law it is also true the opposite, every great team and working smooth is not possible without great architecture.

Microservices and practices like DDD, Event sourcing and CQRS are the answer of enabling the Agility. In REWE Digital we have learned a lot from these practices and we want to share the lessons learned, showing also some real examples, of course everything is Java based. The whole stack is super impressive, we use Spring boot, Apache Kafka and many more.

Slides

16:1016:20Coffee Break
16:2017:10Dan LebreroJava with a Clojure mindset

New languages bring new ways of thinking and teach us new principles and tools that we can bring back to your day to day language.

Using a real application as an example, we will learn how to build and design Java applications that follow Clojure’s functional principles using just core Java, without any libraries, lambdas, streams or weird syntax; and we will see what benefits those functional principles can bring.

No Clojure or functional programming knowledge required, just plain old good Java.

Slides

17:1017:20Coffee Break
17:2018:10Ahmad Gohar
Reza Rahman
Effective Docker and Kubernetes for Java EE Developers

Day 2 - 28th Nov Hall 3.2 #J2D Novice

StartEndSpeakersTopic
08:0009:30Registration
09:3010:20Emily JiangBuild 12-factor microservices with MicroProfile

Planning to build microservices? The best practice of building a first-class microservice is to follow 12-Factor app. But how to fulfill the 12-factor app rules, e.g. how to achieve externalise the configuration, fault tolerance, etc? Come to this session to build a 12-factor microservice using MicroProfile programming mode with live code demo.

Slides

10:2010:30Coffee Break
10:3011:20Jack ShiraziDon’t Make it a Race: The Four Common Concurrency Data Control Patterns

Developers have a tendency to focus on low-level implementations to handle concurrency, locks, lock-free algorithms, compare-and-set etc. But you shouldn’t jump into any implementation without first deciding which high-level concurrency control pattern is right for the problem. To help you make the right decision, I cover the four common concurrency control patterns that let you safely update shared mutable state: pessimistic locking, optimistic transactions, queue to a single thread, and partitioning the data.

Slides

11:2011:30Coffee Break
11:3012:20Brian VermeerCommon mistakes made in Functional Java

In Java 8 functional style programming was introduced in Java. Java 9 extended this with some nice new features. For many people it is hard to grasp the idea of functional style programming after so many years of purely working in the imperative OOP style. The opportunities Java gives us out of the box are massive, but with great power comes great responsibility.

Brian points out common mistakes that are made when integrating functional style programming in your every day Java project and how to prevent this. This way you can write better, cleaner and more readable code. But even more important, you will be able to utilize the functional code constructions in Java 9 to it’s full potential… and maybe, you even start to like it.

Slides

12:2013:30Lunch Break
13:3014:20Siegfried GoeschlKickstart Your Gatling Performance Testing

You think of using Gatling to run performance test? But got confused with Scala, DSL and documentation? This presentation shows how to write Gatling tests in your IDE, execute them on the command line and push them into your CI server of choice. Afterwards we discuss a few of Gatling’s feature such as injection profiles, scenario implementation, test configuration and last but not least debugging your Gatling scripts.

Slides

14:2014:30Coffee Break
14:3015:10Ask our Speakers Anything (in Hall 3 #Influencers)
15:1015:20Coffee Break
15:2016:10Paul KingGroovy Update and Roadmap

This talk looks at the latest features in Apache Groovy 2.5, and 3.0. This includes new AST transformations, the new macros feature, the new Parrot parser and a myriad of other new miscellaneous features in the libraries and tools.

The talk outlines the roadmap for how the new features are being rolled out and the system requirements for each version including the levels of support for JDK 9+. The talk is example rich highlighting how to use Groovy with other commons libraries and projects. You should attend if you want to hear about the latest happenings with the Apache Groovy language or want to see how it can make you more productive when using other projects in combination with Groovy.

Slides

16:1016:20Coffee Break
16:2017:10Nicolas FrankelSecuring the JVM – Neither for fun nor for profit, but do you have a choice?

The Java API allows a lot: sending packets over the network, compiling code, etc. If you put an application in an production environment, you need to make sure it doesn’t do more than it’s supposed to do.
Consider a Java application in a private banking system.

A new network administrator is hired, and while going around, he notices that the app is making network calls to a unknown external endpoint. After some investigation, it’s found that this app has been sending for years confidential data to a competitor (or a state, or hackers, whatever). This is awkward. Especially since it could have been avoided.

Code reviews are good to improve the hardening of an application, but what if the malicious code was planted purposely? Some code buried in a commit could extract code from binary content, compile it on the fly, and then execute the code in the same JVM run…

By default, the JVM is not secured! Securing the JVM for a non-trivial application is complex and time-consuming but the risks of not securing it could be disastrous.

In this talk, I’ll show some of the things you could do in an unsecured JVM. I’ll also explain the basics of securing it, and finally demo a working process on how to do it.

Slides

17:1017:20Coffee Break
17:2018:10Edwin DerksThinking twice about migrating to Serverless

Cloud environments provide everything you need to develop a conventional application as a Service, completely obscuring the underlying infrastructure. This style of software development is called ’Serverless’ development.

This could be the holy grail that saves development teams from maintenance and platform/server dependence. Many development teams are in the process of maintaining a monolithic application and are planning to migrate this application to a Serverless solution for this particular reason. But is this a valid reason in the context of the monolith?

In this talk we will go through a brief history of how we got here, and look at the steps that need to be taken when you are considering such a migration. I will provide the insights from my own experience so far. Building a Serverless solution is completely different from conventional application development, which raises a ton of questions about whether this is a suitable replacement for the monolith. Development teams need to be aware of both the technical and cultural impact on their team and even the company itself before initiating the migration.

Slides

Day 2 - 28th Nov Hall 7 #CM Advanced

StartEndSpeakersTopic
08:0009:30Registration
09:3010:20Simon StoneBlockchain for Java Developers

There’s no doubt that Blockchain is a rapidly growing and evolving technology. If you work on Enterprise systems then there’s reasonable chance there’s a use case where Blockchain could help. This session will help you understand Blockchain and how your Java skills apply. The session will provide an introduction to Blockchain along with use cases. With the aid of relevant demos and the Linux Foundation’s Hyperledger Fabric & Composer projects, you will learn how to get started with Blockchain technologies, develop and deploy Blockchain applications, and integrate with them from your favorite Java environment.

Slides

10:2010:30Coffee Break
10:3010:55Siegfried GoeschlCome To The Dark Side – We Have AsciiDoc

Sometimes you have to join the Dark Side – temporally. Writing documentation and preparing presentations as software developer is bad enough but using Microsoft Office makes it unbearable. Be real – BLOBs shared over email, file system and/or Slack is a thing of the past. We want our stuff text-based and version controlled but sometimes Markdown does not cut it. But help is near – learn how to get an efficient work-flow using Sublime & Maven to generate beautiful PDFs and reveal.js presentations.

Slides

11:2011:30Coffee Break
11:3012:20Veselin Hristov
Denis Danov
Angel Gruev
Zero downtime deployments with Kubernetes, Docker and Spring-boot

While building and deploying microservices (and not only) it is important to know the underlying framework that will be their host. This presentation will be focused on Kubernetes as a container orchestration framework and will target software developers that want to understand better how it works and what features does it provide for your microservices. The main focus will be on creating and deploying a microservice on Kubernetes and then performing a zero-downtime release and rollback.

The demo microservices use JAVA + Spring boot.

The presentation will cover:

  • Different ways of using K8S (Amazon, Google, On premise)
  • Deploy a simple demo microservice build with Java and Spring boot.
  • Using K8S Config Maps for storing configuration of your microservices.
  • Achieving Zero downtime deployments with Kubernetes rolling updates feature.
  • Taking care for the High Availability of your microservices
  • Kubernetes and continuous integration
12:2013:30Lunch Break
13:3014:20Svetlin NakovFrom Traditional Cloud to Decentralized Cloud

In this talk the speaker will discuss the technological transition from traditional cloud to the upcoming decentralized cloud, how data, computational processes, storage, databases, messaging, payments, site hosting and other cloud services find their way to decentralization and how peer-to-peer networks and blockchain systems evolve into a decentralized cloud.

Topics to be discussed:

  • Traditional computing vs. cloud vs. decentralized cloud
  • Decentralized apps, platforms and organizations
  • Decentralized processes, data, and governance
  • The future of miners as service providers in the decentralized cloud
  • What we have today in the decentralized cloud?
14:2014:30Coffee Break
14:3015:10Christian HegerGearing architecture for agility

Successful agile software development needs more than SCRUM meetings. The architecture of a system, and the way how we think and talk about it, are make-or-break factors. This talk gives a fast-paced, high level and opinionated view on gearing architecture to support agility.

15:1015:20Coffee Break
15:2016:10Viktor TsvetkovAuthentication and Authorization in .NET with OpenID Connect
  • The security stack for modern applications
  • Using OAuth2 for Authorization – different OAuth2 flows
  • Using OpenID Connect for Authentication
  • What are JSON Web Tokens (JWT)
  • Using IdentityServer 4 as a token service for .NET applications
16:1016:20Coffee Break
16:2017:10Martin Kulov10x Developer

Rockstar, ninja, guru – you heard it all. There are certain qualities that 10x developers have so we will examine some of them. Join the discussion on what’s common between high performing organizations, transformational leadership and why software engineers play vital role in all this. And yes – 10x developers do exist! Want to take the challenge to prove me wrong?

Slides

17:1017:20Coffee Break
17:2018:10Dirk Van Den WouwerThe secrets of innovation applied to software

There is only one path to sustainability : avoid the so-called commodity magnet. New products are -after some time- pulled to this virtual magnet which increases cost, and reduces income for these products. To avoid this, every company has to continuously invest in Innovation to bring new products to the market place.
So, how can one innovate ? What are the secrets to stay ahead of competition ? Why are many companies not able to grow using innovation ? What is the secret to come to the Eureka moment that will push the organization and its employees up the ladder?

Day 2 - 28th Nov Hall 8 #AIST

StartEndSpeakersTopic
08:0009:30Registration
09:3010:20Stefan EnevApproaches for continuous delivery of ML-based text analytics pipelines in Java

What’s a text analytics pipeline made of? What does it do and how? How to effectively process and index millions of documents through a text analytics pipeline? How to manage your corpus to make the processing smooth and predictable? How to performance tune the JVM for the job? How to make the process repeatable?

10:2010:30Coffee Break
11:2011:30Coffee Break
12:2013:30Lunch Break
13:3014:20Vassil MomchevPractical introduction to Java libraries and frameworks for AI

The market hype in artificial intelligence (AI) is pushing more and more software vendors to introduce AI capabilities in their products and offered services. In this talk, I will share interesting technology use cases and my experience in developing intelligent solutions for some of the biggest enterprises. The presentation will cover the areas of natural language processing, knowledge bases, and machine learning. In each domain I will briefly describe the technology challenge, the existing Java software ecosystem with simple to understand code examples. You should join this session if you want to see the high-level landscape of AI technology, the relevant Java libraries and frameworks + simple to reuse code examples.

14:2014:30Coffee Break
14:3015:10Ask our Speakers Anything (in Hall 3 #Influencers)
15:1015:20Coffee Break
15:2015:45Nikolay AngelovBlockchain Disasters

In this talk we will cover all disasters that happened in the Blockchain world. Some of the attacks on the different networks and all the money stolen from different exchanges/websites/Smart Contracts.

Slides

15:4516:10Nikolay AngelovScaling the Blockchain: Lightning Network

Blockchain is having few problems and scaling is one of them. Currently the transaction throughput of Bitcoin is only 7 transactions per second and this is quite low. One of the current off-chain solutions or so called Layer 2 is the Lightning Network. In this talk we will see why we need the Lightning network and understand how it works with a simple story.

Slides

16:1016:20Coffee Break
17:1017:20Coffee Break

Day 2 - 28th Nov Master Class Hall

StartEndSpeakersTopic
10:3012:20Ryan CuprakIntroduction to CDI

Contexts and Dependency was introduced in Java EE 6 and has since become a core technology. This lab will cover the basic features of CDI 1 and 2. Everything from injection and scopes to decorators, transactions, concurrency, and testing will be covered.

14:3016:20Emily Jiang
Steve Poole
Developing cloud-native Java microservices with Eclipse MicroProfile

Ever wondered what makes a cloud-native application “cloud-native”? Ever wondered what the unique challenges are and how best to address them on fully-open Java technologies? In this workshop, you’ll learn what it means to be cloud-native and how that impacts application development. You’ll learn about Eclipse MicroProfile, an industry collaboration defining technologies for the development and management of cloud-native microservices. With a full set of MicroProfile workshop modules available to you, you’ll be able to start with the basics of REST services and progress to more advanced topics, or you can jump right in and develop secure, fault tolerant, configurable and monitorable microservices, plus utilising OpenJ9 for memory reduction.

Day 3 - 29th Nov Hall 7 #CM Advanced

StartEndSpeakersTopic
09:3010:20Nicolas FrankelFrom annotations to declarative, the path to more explicit Spring configuration

In the latest years, there has been some push-back against frameworks, and more specifically annotations: some call them magic. Obviously, they make understanding the flow of the application harder.

Spring and Spring Boot latest versions go along this trend, by offering an additional way to configure beans with explicit code instead of annotations.

It’s called functional, because it moves configuration from objects to behavior. This talk aims to demo a step-by-step process to achieve that.

In the end, the demo application will run without any annotations at all using only declarative configuration, thanks to a new initiative called Spring Fu.

Slides

10:3011:20Kai HackbarthIoT and OSGi – 20 years in the making

For some of us the IoT journey started almost 20 years ago. The term “Internet-of-Things” was not even invented at that time. The world of Java was also much different with just a few big player especially in the Web- and Enterprise-world. Except for Java CLDC enabled mobile phones you rarely found Java in embedded devices. In 1999 the OSGi Alliance started its mission to specify a Java based, modular software architecture for gateways enabling to connect devices in smart homes or offices. The fact that the OSGi framework was Java-based and also an open standard made the adoption difficult in the beginning. Fortunately the world of technology has changed significantly over the years. IoT is mainstream in many domains, others are in a phase of adoption. This presentation will compare the challenges of adopting IoT technologies today vs. 20 years ago as well as our strategy to tackle this challenges. Furthermore this presentation will focus on the role of the OSGi Alliance and Eclipse Foundation as well as how we use these technologies to build an open end-to-end IoT ecosystem. This presentation will conclude with some practical examples where these technologies are already deployed.

11:3012:20Ondro MihalyiBe reactive and micro with a MicroProfile stack

MicroProfile, RxJava, React.js – what else do you need to build lightweight but robust reactive systems efficiently with open source tools? Maybe something for effective data processing and distributed persistence? You can have it with Kafka and Hazelcast. Now let’s have a look at how to assemble all together in almost no time, using Payara Micro. You’ll learn how to use a couple of simple tools to build a highly efficient, scalable and robust system that can be evolved continuously to meet rapidly changing needs and increasing loads.

Slides

12:3013:20Andrew LombardiAchieving a clear mind by controlling social media

With the advent of the always-on network and smartphone constantly by our sides it has become much more difficult to achieve a clear mind. Stop letting social media and the always-on network rob you of precious moments of a clear head. Learn how to extract joy from the real moments that exist online and not become a slave to the fantasy world of social media.

Slides

Day 3 - 29th Nov Hall 8 #AIST

StartEndSpeakersTopic
10:3012:20Dmitry Kornilov
Tomas Langer
Helidon Hands-On

Create you very first Helidon-SE and Helidon-MP microservice!

13:3015:20Lachezar Kotov
Stefan Georgiev
Enterprise Integration Patterns (EIP) with Apache Camel in OSGi container and Blueprint
  1. Introduction of EIP, Camel, OSGi and Blueprint
  2. Installation and integration of Eclipse IDE, BND and Karaf
  3. Explanation of five of the most powerful and feature-rich EIP
  4. Working examples on:
    • Aggregator EIP
    • Splitter EIP
    • Routing Slip EIP
    • Dynamic Router EIP
    • Load Balancer EIP

Day 3 - 29th Nov Master Class Hall

StartEndSpeakersTopic
10:3012:20Vasil Velikov
Georgi Petrov
Dafo Nachkov
Applying Computer Science Algorithms in Air Travel Industry

We’ll have a look at some Air Travel Industry problems and how we approach them with Computer Science knowledge.

Audience requirements: Attendees are expected to be proficient in C++ and to bring their own development setup (e.g. laptop + IDE). C++ 11, STL (gcc) will be used for the exercise.