- 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
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:20 | Opening | |
10:20 | 11:10 | Mark Stephen Meadows | Ethical 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:10 | 12:00 | Reza Rahman | MicroProfile state of the Union |
12:00 | 12:40 | Dr. Pavlin Dobrev | An 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:
| |||
12:40 | 13:30 | Lunch Break | |
13:30 | 14:20 | Michael Schrenk | Malware 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:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | The Future of Software Development | |
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Euan Finlay | Don’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:
| |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Eugene Ciurana | Find 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:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | Ahmad Gohar | A journey to build a distributed blockchain application |
18:10 | 19:00 | Andy Gumbrecht | Testing 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:00 | 20:00 | All Tech Communities Meet-Up & Awards |
Day 1 - 27th Nov Hall 3.1 #J2D Advanced
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
12:40 | 13:30 | Lunch Break | |
13:30 | 14:20 | Ryan Cuprak | Exploring 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:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | The Future of Software Development (in Hall 3 #Influencers) | |
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Konrad Kamiński | Asynchrnous 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:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Goran Kolevski | Microservices – 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. 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:10 | 17:20 | Coffee Break | |
17:20 | 18:00 | Stanimir Neroev | Problem-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:10 | 19:00 | Martin Toshev | Java 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
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
12:40 | 13:30 | Lunch Break | |
13:30 | 14:20 | Nakul Mishra | CQRS 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. | |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | The Future of Software Development (in Hall 3 #Influencers) | |
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Lachezar Balev | Kafka. 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:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Tomas 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:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | Jack Shirazi | Become 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. |
Day 1 - 27th Nov Hall 7 #CM Advanced
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
12:40 | 13:30 | Lunch Break | |
13:30 | 14:20 | Mandi Walls | Modern 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. | |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | The Future of Software Development (in Hall 3 #Influencers) | |
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Luis Weir | GraphQL 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. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Dirk Van Den Wouwer | Building 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 | |||
17:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | Brent 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:10 | 19:00 | Andrew Lombardi | Serverless 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. |
Day 1 - 27th Nov Hall 8 #AIST
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
12:40 | 13:30 | Lunch Break | |
13:30 | 14:20 | Aleksandar Kostadinov | Bug 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:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | The Future of Software Development (in Hall 3 #Influencers) | |
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Thomas Metcalfe | Words 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. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Preslav Mihaylov | Learn Blockchain By Building It |
Blockchain is the new buzzword in our industry. And not only there. On Java2Days, I will walk you through how Blockchain works by building our own version of it in Python. | |||
17:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | Nikolay Milovanov | ThingsLog – 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
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:20 | Brian Vermeer | Don’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. | |||
10:20 | 10:30 | Coffee Break | |
10:30 | 11:20 | Ondro Mihalyi | 5 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. | |||
11:20 | 11:30 | Coffee Break | |
11:30 | 12:20 | Steve Poole | A 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. Only your can decide. | |||
12:20 | 13:30 | Lunch Break | |
13:30 | 14:20 | Reza 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! | |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | Ask our Speakers Anything | |
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Ryan Cuprak | Migrating 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:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Steve Kosten | Why 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:10 | 17:20 | Coffee Break |
Day 2 - 28th Nov Hall 3.1 #J2D Advanced
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:20 | Otavio 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. | |||
10:20 | 10:30 | Coffee Break | |
10:30 | 11:20 | Nikolay Stoitsev | Large scale stream processing with Apache Flink |
In today’s world it’s no longer enough to build systems that process big volumes of information. We now need applications that can handle large continuous streams of data with very low latency so we can react to the ever-changing environment around us. To efficiently handle such problems we need to deploy a stream processing solution. During the talk we’ll explore one of the most popular frameworks for stream processing – Apache Flink. We’ll see what unique capabilities it provides and how they apply to some real world problems. And we’ll also explore how it works under the hood and how to get the scalable and fault-tolerant stream processing that Flink provides. | |||
11:20 | 11:30 | Coffee Break | |
11:30 | 12:20 | Steven Lauwereins | Microservices & Containers |
Applications are becoming more and more dynamic, with every month or even every week new | |||
12:20 | 13:30 | Lunch Break | |
13:30 | 14:20 | Alexey 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”: 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. | |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | Georgi Atanasov | Fearless 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:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Vladimir 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. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Dan Lebrero | Java 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. | |||
17:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | Ahmad Gohar Reza Rahman | Effective Docker and Kubernetes for Java EE Developers |
Day 2 - 28th Nov Hall 3.2 #J2D Novice
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:20 | Emily Jiang | Build 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. | |||
10:20 | 10:30 | Coffee Break | |
10:30 | 11:20 | Jack Shirazi | Don’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. | |||
11:20 | 11:30 | Coffee Break | |
11:30 | 12:20 | Brian Vermeer | Common 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. | |||
12:20 | 13:30 | Lunch Break | |
13:30 | 14:20 | Siegfried Goeschl | Kickstart 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. | |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | Ask our Speakers Anything (in Hall 3 #Influencers) | |
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Paul King | Groovy 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. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Nicolas Frankel | Securing 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. 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. | |||
17:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | Edwin Derks | Thinking 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. |
Day 2 - 28th Nov Hall 7 #CM Advanced
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:20 | Simon Stone | Blockchain 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. | |||
10:20 | 10:30 | Coffee Break | |
10:30 | 10:55 | Siegfried Goeschl | Come 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. | |||
11:20 | 11:30 | Coffee Break | |
11:30 | 12:20 | Angel Gruev Veselin Hristov Denis Danov | 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:
| |||
12:20 | 13:30 | Lunch Break | |
13:30 | 14:20 | Svetlin Nakov | From 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:
| |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | Christian Heger | Gearing 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:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Viktor Tsvetkov | Authentication and Authorization in .NET with OpenID Connect |
| |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Martin Kulov | 10x 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? | |||
17:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | Dirk Van Den Wouwer | The 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. |
Day 2 - 28th Nov Hall 8 #AIST
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:20 | Stefan Enev | Approaches 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:20 | 10:30 | Coffee Break | |
10:30 | 11:20 | Michael Schrenk | How Metadata Makes Big Data Bigger |
When most people here the word “metadata” they instinctively think of embedded fragments of information that help describe digital photographs or office documents. But in other people’s hands, metadata provides the context where data exists. And that context can be converted into powerful intelligence that expands and enhances available information. When properly applied, metadata can be used to fill-in the gaps between data to reveal a picture that couldn’t be painted by the original data alone. In this talk, you’ll learn how metadata is created from existing data to solve business problems. The speaker will also share techniques he has used to answer questions about the viability of one of his own businesses. Additionally, you will also learn techniques to keep your organization from leaking information through metadata creation. | |||
11:20 | 11:30 | Coffee Break | |
12:20 | 13:30 | Lunch Break | |
13:30 | 14:20 | Vassil Momchev | Practical 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:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | Ask our Speakers Anything (in Hall 3 #Influencers) | |
15:10 | 15:20 | Coffee Break | |
15:20 | 15:45 | Nikolay Angelov | Blockchain 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. | |||
15:45 | 16:10 | Nikolay Angelov | Scaling 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. | |||
16:10 | 16:20 | Coffee Break | |
17:10 | 17:20 | Coffee Break |
Day 2 - 28th Nov Master Class Hall
Start | End | Speakers | Topic |
---|---|---|---|
10:30 | 12:20 | Ryan Cuprak | Introduction 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:30 | 16:20 | Emily 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
Start | End | Speakers | Topic |
---|---|---|---|
09:30 | 10:20 | Nicolas Frankel | From 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. | |||
10:30 | 11:20 | Kai Hackbarth | IoT 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:30 | 12:20 | Ondro Mihalyi | Be 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. | |||
12:30 | 13:20 | Andrew Lombardi | Achieving 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. |
Day 3 - 29th Nov Hall 8 #AIST
Start | End | Speakers | Topic |
---|---|---|---|
10:30 | 12:20 | Tomas Langer Dmitry Kornilov | Helidon Hands-On |
Create you very first Helidon-SE and Helidon-MP microservice! | |||
13:30 | 15:20 | Stefan Georgiev Lachezar Kotov | Enterprise Integration Patterns (EIP) with Apache Camel in OSGi container and Blueprint |
|
Day 3 - 29th Nov Master Class Hall
Start | End | Speakers | Topic |
---|---|---|---|
10:30 | 12:20 | Vasil 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. |