Notice Day 1: The agenda is delayed with 10-15 minutes before the lunch break. After the lunch break the agenda will return to normal
Day 1 - 10th Dec Main Hall #Influencers
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:30 | Opening @ #MainHall | |
10:40 | 11:30 | Subho Halder | Securing your Mobile Apps during development |
Mobile adoption is strategic in every industry today. Although it can be a great catalyst for growth, the security risks that come with it cannot be overlooked. Even though this fact is established, many companies are still not following some of the mobile application security best practices. The goal of this is to raise awareness about application security by identifying some of the most critical risks facing organizations during development. We will be covering from basic OWASP top 10 security issues to live demos on different use-case scenarios on how a hacker can hack your application, and how to prevent them We will also be talking about how to set your own mDevSecOps framework to make sure you can catch those security issues early in your development cycle. | |||
11:30 | 11:40 | Coffee Break | |
11:40 | 12:30 | Dr. Pavlin Dobrev Kai Hackbarth | Internet of Connected Everything |
Connectivity is transforming all kind of domains – not just smart homes but also industry, buildings, agriculture and mobility. IoT has finally reached the corporate sector and is now being increasingly commercialized. As predicted Bosch alone already has more than 50 million of connected devices! . In 2025 all our products either possess intelligence themselves, or AI will have played a key role in their creation. In their keynote address, Dr. Pavlin Dobrev and Kai Hackbarth traces Bosch’s evolution to an IoT company. We will dive into the reference architecture for IoT domains like connected building, retail, smart architecture. For Bosch, Things are the most essential part in IoT. We design them to the requirements of IoT: Aware, Autonomous and Actionable. Key findings:
| |||
12:30 | 13:30 | Lunch Break | |
13:30 | 14:20 | Ahmad Gohar | Microservices with Docker and Kubernetes: Best Practices for Java Developers |
This session is for Java developers and architects interested in developing microservices. It starts with the high-level understanding and fundamental prerequisites that should be in place to be successful with a microservice architecture. Unfortunately, just using new technology doesn’t magically solve distributed systems’ problems. The presentation takes a look at some of the forces involved and what successful companies have done to make microservices work for them, including culture, organizational structure, and market pressures. Then it takes a deep dive into a few Java frameworks for implementing microservices. The accompanying source code repository can be found on GitHub. | |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | TOP SPEAKERS TEAM | Secure Code: Security Trends in IoT, AI and Cloud / The Secrets of Writing Secure Code / Most Secure Programming Languages |
The discussion covers the following topics:
| |||
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Alan Cooke | Robots, the best testers you will ever build |
The talk will bring attendees on a journey from the current out of the box approach to UI automation testing, talk about the pitfalls and then introduce through Swift, the Robot pattern. The Robot pattern is a pattern commonly applied to test automation which allows an abstraction layer that is easy to write and easy to understand, so much so that even a product manager could write the tests. Moving beyond the basics of the pattern and show it running in action with a real app, we will evolve the pattern to leverage the latest function builders offered in Swift 5 to make our tests even more expressive, terse and easy to write. Attendees will leave, having a new found love for test automation and how to put a strong pattern to use in their own code bases. | |||
16:10 | 16:20 | Coffee Break | |
16:30 | 18:30 | Startup Judges TOP 15 Startups | Startup World Cup – Regional Final Bulgaria, organized by GTS and Pegasus Tech Ventures |
Startup World Cup partners with GTS to host a Bulgarian regional competition. The 2020 regional competition will be held on December 10 and 11, 2019 as a part of the annual GTS event in Sofia. Startup World Cup is a global conference and competition with the goal of bridging startup ecosystems worldwide. It is organized by Pegasus Tech Ventures, a Silicon Valley-based multinational VC firm. There will be 40+ regional events across North America, South America, Europe, Africa, Asia, and Australia, leading up to the Grand Finale in US Silicon Valley, where the global champion will be awarded a $1 million investment prize. As part of the program, Startup World Cup Bulgaria Regional judges attend GTS and select a winner from the GTS Top 15, who represents Bulgaria at the Startup World Cup Grand Finale in San Francisco in May. | |||
18:30 | 20:00 | Global Tech Summit Technology Awards 2019 | |
The GTS Technology Awards are dedicated to all tech companies, software developers and IT professionals who are developing revolutionary solutions, establishing and refining best practices, contributing success to IT industry and becoming thought technology and business leaders. GTS Technology Awards celebrate their wins, honor their achievements and encourage them to achieve greater success in the future. | |||
19:00 | 20:00 | All Tech Communities Meet-Up & Awards |
Day 1 - 10th Dec Hall 3.1 #J2D Advanced
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:30 | Opening @ #MainHall | |
10:40 | 11:30 | Josef Cacek | Keep Your Secrets Secret – TLS for Java developers |
Hackers, spies and Sofia never sleep. It became a custom that network communication is protected by a TLS protocol. TLS provides data confidentiality, integrity and authenticity. The TLS is not just great, it’s also complex with a bunch of extensions. It’s not hard to use it in the wrong way and stay vulnerable against different types of attacks. What happens when your certificates expire? Do you validate hostnames? Which certificate authorities are trusted in your setup? Let’s look together what support Java runtime provides out-of-the-box and what developers have to handle manually. The presentation will cover the performance consequences of using TLS and how the certificate validation works. We will also talk about the common implementation flaws and TLS communication debugging. After the talk, attendees will be able to identify issues in their TLS usage and fix them. | |||
11:30 | 11:40 | Coffee Break | |
11:40 | 12:30 | Konrad Kamiński | Coroutines and Reactive Programming – friends or foes? |
Coroutines may be seen as a replacement of reactive programming. Both of them offer the possibility to create asynchronous applications although in a very different way. In this session we’ll learn the differences between coroutines and reactive programming. We’ll see when one shines and the other… is not so great. We’ll look under the hood | |||
12:30 | 13:30 | Lunch Break | |
13:30 | 14:20 | Pavel Chernyshov Vladislav Khomyakov | Take no objections to Java for iOS |
To a certain extent you can reuse the code when building mobile applications both for iOS and Android. Ideally, you want to reuse as much as possible to save time. In client-server apps, shared logic can be moved to the server-side, and most of the time, it’s acceptable. But what if it’s not in favor of the UX? What if it’s the kind that can’t be moved? What if you don’t even have a server? Can you optimize, or is it time to double the work and time spent fixing bugs to account for different platforms? This is where J2ObjC comes into play. J2ObjC is an open-source tool from Google that can translate source code written in Java into Objective-C. This way, Java source can become a part of the iOS builds. Devexperts have been tailoring code translation from Java to ObjC for years, and this approach is integrated deeply into our development process. We’re here to inspire you to give it a try yourself by showcasing some of our biggest wins with J2ObjC. The road ahead is scary. Fear not, we’ve got the painkiller for easily integrating J2ObjC into the development pipeline. | |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | TOP SPEAKERS TEAM | Secure Code: Security Trends in IoT, AI and Cloud / The Secrets of Writing Secure Code / Most Secure Programming Languages |
The discussion covers the following topics:
| |||
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Filip Łazarski | Contract testing in microservices environment with Judge-d |
Typical microservices environment consists of many services. In order to provide business value, they need to cooperate. Therefore, it is crucial to ensure that the services are always able to communicate with each other. What if by accident a developer introduces a change to one service, which will make inter-service communication impossible? It is necessary to prevent such situations from happening. Therefore, HL Tech developed an open source project called Judge-d. Judge-d verifies if a change introduced to a service would pose a threat to communication within any environment. In my presentation I briefly discuss threats to communication in microservices environment, contract testing as a typical solution and how Judge-d realizes contract testing. I describe how REST and JMS contracts are represented in Judge-d. I will present possible alternatives and their disadvantages as well. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Emily Jiang | Creating a cloud-native microservice – which programming model should I use? |
Creating cloud-native microservices is common but which programming model to choose from. At the moment, MicroProfile and Spring are two popular programming models for developing microservices. What are the differences or commonalities between them? This session is to focus on comparing the two programming model side by side. If you are Spring developer, after this session, you should be able to grasp MicroProfile very quickly and vice versa. This session also contains a live demo of developing microservices using MicroProfile specifications and then deploy them onto Open Liberty. | |||
17:20 | 18:10 | Lachezar Balev Georgi Peychev | Deploying containerized applications into a Kubernetes cluster |
Our fantastic apps deserve the right infrastructure! In this talk we will make a short introduction to Kubernetes (K8s). Next we will dockerize and deploy two simple applications into a k8s cluster. Our ambitious goal is that the audience will feel comfy with what we are doing and will be able to easily follow us. No prior knowledge of k8s is required! The apps and the scripts that we are going to use will be available at Github. The talk will begin with a quick glimpse into the k8s architecture. Then we will go a bit deeper with some of the most important k8s objects like Nodes, Controllers, Services. When we lay down the foundations it will be time to introduce our sample applications – a small Spring Boot backend and an Angular frontend which offers the possibility for amusing interaction with the attendees (e.g. by scanning a QR Code). At the end we will deploy these apps in GClould and/or Minikube and see them up and running. |
Day 1 - 10th Dec Hall 3.2 #J2D Novice
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:30 | Opening @ #MainHall | |
10:40 | 11:30 | Rudy De Busscher | Transactions in your micro-services architecture |
How can you make different pieces of your unit of work consistent in the distributed setup of your micro-service application? | |||
11:30 | 11:40 | Coffee Break | |
11:40 | 12:30 | Marcin Moskała | Your first multiplatform Kotlin application |
Learn how to make your first truly multiplatform project and explore how much these capabilities can save you time and effort during everyday work. During this presentation, we will take a step-by-step approach, and by exploring what needs to be done to make more and more advanced usage possibilities, we will discover how to start and how to operate on multiplatform Kotlin projects. | |||
12:30 | 13:30 | Lunch Break | |
13:30 | 14:20 | Marcin Moskała | Kotlin not-to-do list |
Kotlin gives us a lot of possibilities, but with every power comes responsibility. What should we avoid doing in Kotlin? What are Kotlin internal contracts in terms of different features and functions? What is dangerous and should be avoided? How to code responsively? | |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | TOP SPEAKERS TEAM | Secure Code: Security Trends in IoT, AI and Cloud / The Secrets of Writing Secure Code / Most Secure Programming Languages |
The discussion covers the following topics:
| |||
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Andres Cespedes Morales | 7 Architecture Patterns Implemented in Java |
Often times, you can find explanations about software design and architectural patterns but it is not that common to see those patterns implemented along with its definition. In this session, we’re going to learn some of the top 7 architectural patterns for microservices implemented in Java, with frameworks as Spring, Microprofile, and many other open-source tools. These patterns are very well suited for a microservices architecture, such as Event-based microservices, distributed transactions (sagas), service discovery, asynchronous inter-process communication using gRPC, distributed tracing, and much more. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Ivar Grimstad | Microservice Patterns – implemented by Eclipse MicroProfile |
Eclipse MicroProfile provides specifications for the most commonly used microservice patterns. This session presents a group of patterns that will be in explained and demoed live in a down-to-earth and easily understandable way. Patterns covered include Service per Container, Externalized Configuration, Health Check API, Application Metrics, Circuit Breaker, Access Token, Distributed Tracing. There will be live coding and demo of all technologies implementing the patterns. | |||
17:20 | 18:10 | Ioannis Kolaxis | How to Improve the Quality of Your Application (I Wish I’d Known This Earlier!) |
Do your customers keep complaining about bugs in your software application? Does it take you too long to fix bugs and implement new features? If yes, then you may have issues with the quality of your application. This session provides practical advice on how you can improve the quality of your software application. The speaker shares with you all the lessons he learned while working as a software engineer for a big, complex enterprise application, discussing which techniques worked and which ones failed and providing actual examples and metrics from that application. It’s assumed that you have already experienced the struggle of maintaining a defective software application and that you aspire to building software of top quality. |
Day 1 - 10th Dec Hall 7 #CM Advanced
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:30 | Opening @ #MainHall | |
10:40 | 11:30 | Dr. Stephen Robinson Tom Mladenov | Scaling up a banking challenger with event driven architecture |
Microservices have saved us from the crushing pain of monoliths, only to raise a whole raft of questions about how microservices can work together to achieve meaningful features for end users. One approach promoted by some famous names (LinkedIn, Netflix etc.) is to adopt a message driven architecture. This talk will introduce message driven architecture and discuss some of the advantages, risks and how to mitigate them, as well as some patterns which can help you take full advantage of the shift. We’ll also touch on Tide’s experience of moving to messaging as part of scaling up our development organization. | |||
11:30 | 11:40 | Coffee Break | |
11:40 | 12:30 | Marc Gregoire | Writing Modern C++ Code |
Since the release of C++11 in 2011, modern C++ code does not look at all like C++ code written before 2011. If you know the old C++ language, then you will have to unlearn certain things to write truly modern C++ code. Recent versions of the C++ standard have introduced new features to make your live as a developer easier. These features allow you to write code that is less error-prone, that is more easy to read and understand, that allow you to more easily use other aspects of the languages such as the Standard Library algorithms, that make it easier to write multithreaded code, and so on. This session will give an overview of these modern C++ features. | |||
12:30 | 13:30 | Lunch Break | |
13:30 | 14:20 | Simon Stone | Building smart contracts and applications with Hyperledger Fabric |
Hyperledger Fabric is a permissioned blockchain technology where developers can build smart contracts, and applications that interact with deployed smart contracts. Smart contracts and applications can be developed in a range of programming languages, including Go, Java, and JavaScript, allowing developers to easily get started with this technology by taking advantage of their existing skills. In this talk, you will learn the basics of smart contract development. You will learn how to build your first smart contract, how to write a transaction function, and how to interact with the ledger using the available APIs. You will also learn the basics of application development. You will learn how to build your first application by using a connection profile and a wallet/identity to connect to a gateway peer, and how to submit a transaction to a smart contract. Developers already familiar with Hyperledger Fabric will be able to learn about the significant enhancements that we’ve been delivering to the smart contract and application programming model since Hyperledger Fabric v1.4, including an update on our current plans. | |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | TOP SPEAKERS TEAM | Secure Code: Security Trends in IoT, AI and Cloud / The Secrets of Writing Secure Code / Most Secure Programming Languages |
The discussion covers the following topics:
| |||
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Roman Tsypuk | AWS Alexa: How to talk with your Smart Home Devices |
AWS Alexa is a new Amazon web service that allows you integrate voice control into existing systems, by sending voice commands to control your smart home/ IoT devices, cars or integrated SW. I will explain it architecture, show how to develop custom skill for AWS Alexa from the scratch and run it using AWS Echo Dot. Also we will talk about AWS Lambdas, as they are used under the hood to operate with logic and commands. | |||
16:10 | 16:20 | Coffee Break | |
17:20 | 18:10 | Anton Sutarmin | Build frontend apps that never crash with fp-ts ecosystem |
One of the most important properties of modern frontend applications is reliability. Want to learn how to build frontend applications that never crash? Join me and let’s dive into the know-how of making your apps more reliable and your development process more focused with the help of our fp-ts library and its large ecosystem. I’ll share insights on true type safety with Typescript, runtime exception safety, IO safety, and much more. |
Day 1 - 10th Dec Hall 8 #AIST
Start | End | Speakers | Topic |
---|---|---|---|
08:00 | 09:30 | Registration | |
09:30 | 10:30 | Opening @ #MainHall | |
10:40 | 11:30 | Fabien Vauchelles | Machine Learning for the Busy Developer |
Random Forest, Cross Validation, Clustering, … a whole new vocabulary for a developer, who is already busy! When you have a closer look, Machine Learning is very simple: you prepare the data, you assemble the datasets, and you model the algorithms. It’s mostly experimentation. Come and discover how a machine predicts the future! Through examples and live-coding, we will see: Now, Machine Learning will be your best friend! | |||
11:30 | 11:40 | Coffee Break | |
12:30 | 13:30 | Lunch Break | |
13:30 | 14:20 | Thomas Metcalfe | Transformers: how machines have learned context |
Keywords have been timelessly important in natural language processing. However, over the past 10 years we have made vast improvements in the field by leveraging not just the words, but the context in which they are found. Subsequently, there has been a significant shift in the way machines understand the underlying meaning in language. This talk will cover the history of approaches to context encoding, with a particular highlight on the most recent innovation: the transformer. We showcase how this state-of-the-art technique allows us at Chattermill to gain insight from customer feedback and uncover what decisions will drive the greatest impact. | |||
14:20 | 14:30 | Coffee Break | |
14:30 | 15:10 | TOP SPEAKERS TEAM | Secure Code: Security Trends in IoT, AI and Cloud / The Secrets of Writing Secure Code / Most Secure Programming Languages |
The discussion covers the following topics:
| |||
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Nikolay Angelov | Achieving Privacy in Public Blockchains |
In the recent years we started understanding more and more why our Privacy is important and we need to start thinking about how we can achieve Privacy in the Public Blockchains so they can get more adoption. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 16:45 | Fabien Vauchelles | How to organise a Datascience competition? |
For the last 4 years, we organized the Data Science Olympics. This competition happens every year, on multiple locations and lasts only 2 hours! Last year, we gathered 1000 datascientists in Berlin and Paris. If you are asking yourself theses questions: This talk is for you! We will share with you our experience on the past 4 year about the challenges, the solutions and you will discover some easy tricks! |
Day 1 - 10th Dec Master Class Hall 3
Start | End | Speakers | Topic |
---|---|---|---|
11:40 | 12:30 | Paul King | Groovy and Data Science |
Groovy is a powerful multi-paradigm programming language for the JVM that offers a wealth of features that make it ideal for many data science and big data scenarios. Groovy has a dynamic nature like Python, which means that it is very powerful, easy to learn, and productive. The language gets out of the way and lets data scientists write their algorithms naturally. It has a static nature like Java and Kotlin, which makes it fast when needed. Its close alignment with Java means that you can often just cut-and-paste the Java examples from various big data solutions and they’ll work just fine in Groovy. And it has first-class functional support, meaning that it offers features and allows solutions similar to Scala. Functional and stream processing with immutable data structures can offer many advantages when working in parallel processing or clustered environments. These slides review the key benefits of using Groovy to develop data science solutions, including integration with various JDK libraries commonly used in data science solutions including libraries for data manipulation, machine learning, plotting and various big data solutions for scaling up these algorithms. Math/Data Science libraries covered include: Libraries for scaling/concurrency include: |
Day 2 - 11th Dec Main Hall #Influencers
Start | End | Speakers | Topic |
---|---|---|---|
09:30 | 10:20 | Werner Keil Thodoris Bais | Securing E-Health and E-Government with Java |
The EU increases its cooperation on cyber defense to strengthen its resilience to cyber-attacks through the EU Cybersecurity Act and certification of products, services or applications. To be as well prepared as possible against hacker attacks or the distribution of “fake news”, fake documents and information. Like a One Trillion Amazon refund or fake tax returns. The IT industry may use this mechanism to certify products like connected vehicles, government services or smart medical devices. Due to its platform independence, Java plays an important role, especially in web, cloud or enterprise environments. This session introduces the DSS Framework and solutions based on it, such as Digidoc4J. DSS (Digital Signature Services) is a Java framework for the creation and validation of electronic signatures. DSS supports the creation and validation of interoperable and secure electronic signatures in accordance with European legislation, in particular the eIDAS Regulation, as well as IT standards like OASIS DSS. | |||
10:20 | 10:30 | Coffee Break | |
10:30 | 11:20 | Teodor Dimitrov | Vertical scaling with Spring WebFlux |
TBD | |||
11:20 | 11:30 | Coffee Break | |
11:30 | 12:20 | Jack Shirazi | Practical Garbage Collection Tuning For Anyone |
From this talk you’ll learn how to tune your JVM Garbage Collector (GC) in a straightforward way, regardless of the OpenJDKs more than 120 GC tuning flags, 7 different garbage collectors, multiple memory spaces, pools and insanely varied GC logs | |||
12:20 | 13:30 | Lunch Break | |
13:30 | 14:00 | Andrew Lombardi | Privacy in the Age of Analytica |
You are the product. The digital age has brought us many conveniences with the very real cost of our privacy as payment. The terms and conditions that none of us read have allowed companies to build a persona of who we are, and possibly better than we even know ourselves. Learn what your privacy looks like today, and how you can take very real steps toward reclaiming the anonymity that allows you to move through the world without being constantly sold. | |||
14:00 | 14:30 | Shenol Mustafov | /e/ – Android without Google |
We are living in the era of mass surveillance and monetization of personal data by big companies. Convenience of using a mobile phone and personal data privacy can be hard to achieve at the same time. At e Foundation we are creating a privacy-enabled mobile OS ecosystem, free of Google surveillance. We are leveraging open source and community support to create an easy to use mobile OS, designed with privacy in mind. | |||
14:30 | 15:10 | TOP SPEAKERS TEAM | #Privacy |
How to be a part of the social Internet and keep “privacy” at the same time. | |||
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Christian Heger | Surviving IoT |
Christian is creating the environment to develop, innovate and truly collaborate at Zühlke Engineering in Munich. He comes from a software development and architecture background. Currently, he does a lot of interesting things: team leadership – being responsible for the team in Munich and building up our team in Sofia. Christian is constantly thinking how to improve the way his teams work together. He is also consulting clients on how to get going with innovation, and how to adopt agility and technology on the way. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Tamaghna Basu | Preventing Identity Thefts and Impersonation Frauds using AI and Behavioral Biometrics |
As fraudsters continually refine their techniques to steal customer’s credentials, organizations have found new ways to fight back with new tools that use behavioral bio-metrics and cognitive fraud detection. It is critical to know how cognitive abilities would help in managing risks, compliance and governance as well as help in maximizing detection, reducing false positives and optimizing strong authentication. The session will describe various models used for behavior pattern analysis and demonstrate how this may be integrated into a real-world SOC to achieve a proactive posture. It will address:
| |||
17:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | Emily Jiang Werner Keil Ivar Grimstad Otavio Goncalves de Santana | Jakarta EE – ask the Experts |
Day 2 - 11th Dec Hall 3.1 #J2D Advanced
Start | End | Speakers | Topic |
---|---|---|---|
09:30 | 10:20 | Denis Tsyplakov | Typical bugs in technical architecture of Java based services |
There is a joke. A fireman is complaining, “What the hell, each and every time people call us to say that their house is on fire”. As a solution architect in DataArt, I can say that 80% of my job is to help different companies to solve problems with their systems. So, when I see a project, it is usually “on fire”. Sometimes problems lie with requirements, sometimes with management, sometimes they are caused by a wrong choice of tools. But lots of problems lie with the technical architecture. I want to discuss with you several most typical problems in the technical architecture that I have seen in more than half of the projects. | |||
10:20 | 10:30 | Coffee Break | |
10:30 | 11:20 | Svetlin Nakov | Mobile Device Security |
In this talk Dr. Svetlin Nakov will review the biggest cybersecurity threats for the modern mobile devices and will demonstrate how easily an Android mobile phone can be hijacked by non-professional attacker, using trivial remote administration tools and screen recording apps from the official Android app store. Finally, the speaker will give recommendations and best practices for improving the security of iOS and Android mobile devices. | |||
11:20 | 11:30 | Coffee Break | |
11:30 | 12:20 | Wlodek Krakowski | Pyramid of Refactoring |
Everyone has heard about test pyramid… and refactoring pyramid is its twin. Using Pyramid of testing we can set up the tests coverage of the existing functionality reaching given level (UI, modules, packages, classes, methods). This allows us to have a look at corresponding pyramid of refactoring and figure out what kind of refactorings can be performed safely. We start from the bottom of refactoring pyramid (simpler conditions, smaller methods) and climb up towards the highest level that is covered by tests. | |||
12:20 | 13:30 | Lunch Break | |
13:30 | 14:20 | Werner Keil Otavio Goncalves de Santana | Jakarta EE Meets NoSQL at the Cloud Age |
Let’s be honest: the amount of data collected by applications nowadays is growing at a scary pace. Many of them need to handle billions of users generating and consuming data at an incredible speed. Maybe you are wondering how to create an application like this? What is needed? What benefits can you take from this reality to your project? This session shows how Jakarta EE can meet these needs when you’re working with NoSQL databases in the cloud. It’s the same approach used by some of the biggest companies in the world to store, analyze, and get results from really crazy amounts of data. No matter your project size, you can take it to the next level today. | |||
14:30 | 15:10 | TOP SPEAKERS TEAM | #Privacy |
How to be a part of the social Internet and keep “privacy” at the same time. | |||
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Nicolas Fränkel | Designing a DSL with Kotlin |
Kotlin is one of those “new” JVM languages that are currently rocking the boat. Although it’s made a great impact on Android, it’s equally good on the server side. As Domain-Specific Languages are constrained by the language they run on, Kotlin frees developers from Java fluent builders to propose something better. Using the Vaadin web framework as an example, I’ll demo how one could design its own DSL with Kotlin. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Ioannis Canellos Georgios Andrianakis | Quarkus: Supersonic, subatomic Java |
The Cloud Native Era has changed a lot about what we expect from our applications making it challenging for traditional server side Java technologies. This talk will introduce you to Quarkus, a Kubernetes native Java stack that can tailor your application for GraalVM & Hotspot providing amazingly fast boot times and incredibly low RSS memory usage, making Java more than relevant in this brave new world. | |||
17:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | Ondrej Stastny Tom Mueller | Journey from On-prem to the Cloud, the Field Guide |
This presentation will introduce VMWare Identity Manager and it’s multi-year transformation from on-prem only product to Software-as-a-Service with multiple deployments per day, serving customers around the globe. |
Day 2 - 11th Dec Hall 3.2 #J2D Novice
Start | End | Speakers | Topic |
---|---|---|---|
09:30 | 10:20 | Ali Ok | Kubernetes Operators 101 |
Kubernetes does all the boring yet critical tasks like horizontal scaling and zero down-time deployments, but what about more complex tasks like database sharding and agent registration? | |||
10:20 | 10:30 | Coffee Break | |
10:30 | 11:20 | Jeronimo Martinez | Survival guide for maintaining legacy systems |
All systems have some degree of legacy, starting from the new one that you are creating just now, up to the one that has been abandoned for years but still keeps one critical active user somewhere. At some point in your career as a developer, you will inevitably end up maintaining a system that you didn’t write, and which you don’t know much about. What are your options? Are there tools and techniques that can make you work easier? Yes, there are! In this talk I’ll go over different approaches that will improve your experience dealing with a legacy system, and also, a set of recommendations for preventing future systems becoming legacy. | |||
11:20 | 11:30 | Coffee Break | |
11:30 | 12:20 | Rudy De Busscher | Finally, easy integration testing with Testcontainers |
Integration testing is always a difficult area. You need to make sure that all system are connected, data is correctly initialised for each run and test runs do not interfere with each other. This presentation shows you the basics of Testcontainers and within demos gives you examples of testing database integration, microservices integration and testing the UI with Selenium. | |||
12:20 | 13:30 | Lunch Break | |
13:30 | 14:20 | Emily Jiang | Reactive Microservices in Action |
After creating your first microservice and putting it into production, you heard a lot of people talking about reactive. You’d like to find out more about reactive and have several questions: Why should I care? What I can do to make my microservice reactive, nonblocking? How can I use CompletionStage in my microservices? Should I consider using Reactive Streams? Come to this session to find out what reactive means. It explains reactive programming and then Reactive Streams, followed by a demo of using MicroProfile Fault Tolerance, MicroProfile Reactive Streams Operators, and MicroProfile Reactive Messaging to create a truly reactive microservice and integrate with Kafka. | |||
14:30 | 15:10 | TOP SPEAKERS TEAM | #Privacy |
How to be a part of the social Internet and keep “privacy” at the same time. | |||
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Naresha K | Effective Java with Groovy & Kotlin – How Languages Influence Adoption of Good Practices |
‘Effective Java’ is probably the best book ever written for Java programmers. It presents the most effective ways of using language. Since Groovy and Kotlin run on JVM, most of the suggestions from Effective Java are equally relevant for Groovy and Kotlin developers. However, one has to take caution before using the corresponding Java implementations. Moreover, these languages provide out of the box constructs for many of the recommended practices which can boost developer productivity. In this talk, I walk you through code examples that follow these good practices, highlighting the Groovy and Kotlin way of implementing the ‘Effective Java’ suggestions. There are several instances where Groovy and Kotlin take different approaches. As a participant, you walk away appreciating the simplicity with which these JVM languages empower the developers. The talk also provides food for thought – how programming languages can influence their users to adopt good practices. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Tushka Dermendzhieva Georgi Sotirov | gRPC: A Modern Toolkit for Microservice Communication |
We are living in a world where modern applications are consistently moving towards microservice-based architecture. Thus, internal service communication is becoming a vital part of any system. gRPC is a modern framework, developed initially at Google, which aims to solve many issues that we face using traditional means of communication such as REST. In its shell, it is an open source RPC framework which passes data through efficient protocol buffers. The framework is based on a client-server model of remote procedure calls and Interface Definition Language code generation. It supports languages, such as Java, C++, Python, Node.js, Go, and many others. Here is a list with topics we are going to discuss during the talk: | |||
17:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | A Web App That Can Fit in a Tweet… Or Building Production-ready Enterprise Java Applications with Spring Boot |
Day 2 - 11th Dec Hall 7 #CM Advanced
Start | End | Speakers | Topic |
---|---|---|---|
09:30 | 10:20 | Andrew Lombardi | The Three Keys of Remote Team Success |
It has become increasingly easy to connect with talent across the globe. With the ubiquitous nature of the internet in increasingly remote locations, your team may even consist of people you’ve never met. While this is enticing, it comes with it’s own set of challenges. Learn the three keys to success as a remote team and utilize effective tools for achieving a smooth means of delivering solutions for your customers. | |||
10:20 | 10:30 | Coffee Break | |
10:30 | 11:20 | Rafał Leszko | Where is my cache? Architectural patterns for caching microservices |
Everybody needs caching! However, where exactly to place it in your system? Inside your application or as a layer in front of it? Inside or outside the container? In the era of Cloud Native and Microservices these questions get even more complicated. In this session I’ll present different architectural patterns for distributed caching: Embedded, Client-Server, (Kubernetes) Sidecar, and Reverse HTTP Proxy Caching. During this talk you’ll learn: | |||
11:20 | 11:30 | Coffee Break | |
11:30 | 12:20 | Luis Weir | Event-driven API strategies: from WebHooks to GraphQL Subscriptions |
This talk explores different strategies to get around common constraints imposed by synchronous (request/response) APIs when it comes to supporting asynchronous and event-driven communication between server and clients thus avoiding inefficient and infective API pooling techniques. Through a comprehensive architectural overview and a series of hands-on demonstrations, this presentation will illustrate how different asynchronous API strategies such as the above mentioned can be applied in order to deliver event-driven architectures in the web. | |||
12:20 | 13:30 | Lunch Break | |
13:30 | 14:20 | Serhii Romaniuk | QA Automation evolution. The new SEiT role breaks borders and limitations. |
Insatiable market hunger for the new features and the ever-increasing development speed, as well as the complexity of the applications being created, require the team to make the product testable by design. How to manage application quality with limited resources? Get the answers to these and other important questions in this presentation. | |||
14:30 | 15:10 | TOP SPEAKERS TEAM | #Privacy |
How to be a part of the social Internet and keep “privacy” at the same time. | |||
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Goran Kolevski | You Know, For Search: Deep Dive into ElasticSearch |
ElasticSearch is one of the most popular datastores nowadays. Starting just as a distributed version of Lucene it has became a favourite full-text search, data analytics, anomaly detection tool, log aggregation framework etc. But how all this magic happens? In this talk we will dive deep into ElasticSearch and see some of its internals. | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Trayan Iliev | Distributed Pub-Sub Messaging and Logging beyond Kafka with Apache Pulsar |
Apache Pulsar is an enterprise grade distributed pub-sub messaging platform, with a very flexible messaging model and an intuitive client API. It was initially developed by Yahoo and currently powers major Yahoo applications like Yahoo Mail, Finance, and Sports. It combines capabilities of a horizontally scalable distributed pub-pub messaging system (like RabbitMQ, ActiveMQ, ZeroMq, etc.), with that of persistent logging platform like Apache Kafka. The presentation introduces to Apache Pulsar and its major features:
Presentation finishes with a comparison between Kafka and Pulsar and a short demo. | |||
17:10 | 17:20 | Coffee Break | |
17:20 | 18:10 | Thodoris Bais | Developer Career: Own it |
Software Engineering is undoubtedly one of the best-paid jobs nowadays, which implies that the market for Software Engineers is large enough for all levels of expertise. However, when a market is large it’s not always that easy to find good engineers; because in the end, this is what companies want, exceptional engineers. Are you happy enough with your current position? Do you often find yourself in dilemmas like “am I doing the right thing?”, “how can I improve my skills?”, “how could I be seen as a strong technical person?” ? |
Day 2 - 11th Dec Hall 8 #AIST
Start | End | Speakers | Topic |
---|---|---|---|
09:30 | 10:20 | Andres Cespedes Morales | 10 Steps to become a Software Architect |
Have you ever thought about becoming a Software Architect? Is it still a bit unclear what is needed to do it so? Also, why would it ever be good to step into Software Architecture? In this session, we’re going to learn the what, why, and how of Software Architecture from a point of view based on lessons, academics, and the enterprise, and also how you can transform yourself from a developer role into an architect one, describing the different steps and challenges that you may find throughout this journey. | |||
10:20 | 10:30 | Coffee Break | |
10:30 | 11:20 | Martin Toshev | Building highly scalable data pipelines with Apache Spark |
Many modern world software systems face the need to process increasing volumes of data in a reasonable amount of time. To achieve that one can think of different ways to build a highly-scalable data pipeline which is a non-trivial activity especially in terms of the different operations, performance through various optimizations and scalability that need to be taken into consideration during the implementation. In order to avoid that we typically fall back to a framework like Apache Spark that provides the necessary primitives to build such a data pipeline. During this topic we will demonstrate how does Apache Spark achieves that by implementing a realtime event management system that aggregates events from a number of data sources in a single application implemented with the help of Apache Spark. | |||
11:20 | 11:30 | Coffee Break | |
11:30 | 12:20 | Josef Cacek | Standard Java structures distributed |
Java offers a wide set of data structure implementations ready for developers. Collections are a great and powerful example. These standard data structures are limited by borders of a single JVM. They depend on available memory within one server. They don’t scale during high loads. In-memory data grids (IMDG) may help to solve this problem. They offer distributed versions of Java data structures. Data is spread across multiple servers. Data grids provide failover features and prevent data loss when a server crashes. And you can simply scale them up and down. Let’s go through the most popular Java native IMDG implementations and compare distributed data structures provided. | |||
12:20 | 13:30 | Lunch Break | |
13:30 | 14:20 | Tihomir Mateev | Microfrontends in practice |
Contemporary applications often employ the usage of distributed services that work together to allow complex workflows. This presentation aims to give a quick overview of what micro frontends are and how they are applied in various applications like Facebook, Spotify and such as the VMware’s vSphere Suite. | |||
14:30 | 15:10 | TOP SPEAKERS TEAM | #Privacy |
How to be a part of the social Internet and keep “privacy” at the same time. | |||
15:10 | 15:20 | Coffee Break | |
15:20 | 16:10 | Tsanko Stoykov | Masking your data the right way |
Data masking has many uses – from preparing good test data based on real data to sharing data for analysis. In the presentation I’ll share my study as examples on CSV files | |||
16:10 | 16:20 | Coffee Break | |
16:20 | 17:10 | Dimitar Krastev | You are a consultant, you just don’t know it yet |
In this fast changing world and the adoption of Agile processes, the customer exposure of the developers is increasing. This introduces a demand for new set of skills. Developers are expected to communicate and collaborate with the customer closely. This creates a new set of challenges every developer will face. Soft skills are now becoming a common asset for every developer. | |||
17:10 | 17:20 | Coffee Break | |
17:20 | 17:45 | Kaloyan Dimitrov | Reactive, one year later – a case study |
If you have been on a Java conference in the past several years, there is no way you haven’t heard about Reactive. This talk is a case study of the project I have been working on during the past year (and a half). It will show you our journey through a new framework, technology, and mindset. Because, as everybody will tell you, Reactive requires a different mindset. In the end, you will, hopefully, get a better idea of what Reactive is and for what it is good or bad. | |||
17:45 | 18:10 | Radoslav Markov | Jazz Singer (1929) in holographic and immersive sound – Why not (or why yes)? |
This presentation have two parts. First is possibilities of current scientific achievement with application of computer vision algorithms and ML for restoration of image of the old movies – from digitization to multidimentialisation (holographic) and from mono to immersive sound. Second part is: did we have right to this – legal, ethical, aesthetic, rights and financial problems of doing such perfect improvement of the old audiovisual heritage. |
Day 2 - 11th Dec Master Class Hall 1
Start | End | Speakers | Topic |
---|---|---|---|
10:30 | 12:20 | Dimitar Krastev Kai Hackbarth Dr. Pavlin Dobrev Martin Tsarev | Prototyping platforms for any IoT use case |
Internet of Things is becoming the heart of more and more projects. Each IoT project starts with a PoC prototype. This workshop will walk you through what a prototyping platform is and how it impacts the development of a project. Using the Bosch XDK, we will go through what such a board offers as sensors, connectivity, functionality and extensions and interesting examples from the real world. Bosch and Zuhlke developed the platform to encourage community development and open source coding thus we will see some live coding on the stop. | |||
12:20 | 13:30 | Lunch Break | |
13:30 | 15:20 | Stanimir Iliev Teodor Dimitrov Zdravko Kostadinov Rumen Papukchiev Ivan Mashalov Georgi Manev | Reactive backend with RDBMS |
TBD | |||
15:30 | 17:20 | Otavio Goncalves de Santana | Modern Data Streaming and Processing with Apache Kafka and NoSQL |
Modern microservice-based architecture needs to exchange data in a fast and reliable way. The use of distributed streaming platforms such as Apache Kafka makes the job easier, but it’s often not enough. Applications also use NoSQL databases to store information that comes from multiple sources, so it makes perfect sense to use Kafka and NoSQL to create a distributed streaming and processing pipeline between applications. This hands-on lab explores such an architecture, deploying applications with Oracle Cloud and Jakarta EE technologies – Oracle NoSQL, Kafka, and JNoSQL – that are used to connect to the database and receive Kafka messages as CDI events. |
Day 2 - 11th Dec Master Class Hall 3
Start | End | Speakers | Topic |
---|---|---|---|
16:20 | 17:10 | Ioannis Canellos Georgios Andrianakis | Quarkus: Supersonic, subatomic Java |
The Cloud Native Era has changed a lot about what we expect from our applications making it challenging for traditional server side Java technologies. This talk will introduce you to Quarkus, a Kubernetes native Java stack that can tailor your application for GraalVM & Hotspot providing amazingly fast boot times and incredibly low RSS memory usage, making Java more than relevant in this brave new world. |
Day 3 - 12th Dec Master Class Hall 2
Start | End | Speakers | Topic |
---|---|---|---|
10:00 | 14:00 | Vladimir Schreiner Nicolas Fränkel | Stream Processing Essentials Training |
Take your first steps to understanding and start working with stream processing! By the end of the course, you will be able to build and run distributed streaming pipelines in Java:
We will also cover the advantages and disadvantages of the stream processing technologies available when approaching real-world problems. | |||
14:00 | 15:50 | Otavio Goncalves de Santana Thodoris Bais | Jakarta NoSQL: Meet the first Jakarta EE specification in the Cloud |
Jakarta NoSQL is the first specification of the new era of Java EE now in the Eclipse Foundation home as Jakarta EE. The goal of this specification is to ease integration to Java applications with a standard API that supports more than 30 NoSQL vendors and rising. This presentation will show Jakarta NoSQL with MongoDB and introduce an easy way to move your application to the cloud age. |
Day 3 - 12th Dec Master Class Hall 3
Start | End | Speakers | Topic |
---|---|---|---|
10:00 | 11:50 | Paul King | Groovy and Data Science |
Groovy is a powerful multi-paradigm programming language for the JVM that offers a wealth of features that make it ideal for many data science and big data scenarios. Groovy has a dynamic nature like Python, which means that it is very powerful, easy to learn, and productive. The language gets out of the way and lets data scientists write their algorithms naturally. It has a static nature like Java and Kotlin, which makes it fast when needed. Its close alignment with Java means that you can often just cut-and-paste the Java examples from various big data solutions and they’ll work just fine in Groovy. And it has first-class functional support, meaning that it offers features and allows solutions similar to Scala. Functional and stream processing with immutable data structures can offer many advantages when working in parallel processing or clustered environments. These slides review the key benefits of using Groovy to develop data science solutions, including integration with various JDK libraries commonly used in data science solutions including libraries for data manipulation, machine learning, plotting and various big data solutions for scaling up these algorithms. Math/Data Science libraries covered include: Libraries for scaling/concurrency include: | |||
12:00 | 13:50 | Georgios Andrianakis Ioannis Canellos | Get your hands dirty with Quarkus: The Container First Cloud Native Java framework |
Breaking news: You no longer need a PhD in quantum physicist to write Java that breaks the sound barrier! Join us live tonight and we are going to walk you through writing supersonic subatomic java with Quarkus! Georgios and Ioannis are going to deliver a “deep dive” session into Quarkus structured into two ‘self-contained’ parts. The first part is going to cover application development essentials. The second part is going to be about cloud and integration Please download the following before attending: https://github.com/iocanel/java2days-sofia-2019#Requirements | |||
14:00 | 15:50 | Wlodek Krakowski | Poker Hands – Refactoring into Chain of Responsibility |
Poker Hands are are put into sequential order and the player who holds the highest one wins. Let’s make fun of it then and perform some refactoring of code that identifies what poker figure given player holds. We will transform a set of nested if-else statements into a nice chain of responsibility classes (Straight Flush, Four of a Kind, Full House, …) . This way the chain of classes put into sequential order will figure out the score given player holds. Proxy design patterns will come into the picture as well. All I can promise during this refactoring workshop is definitely no bluffing – just pure focus on code transformations. BTW : Did you know that real poker players are bluffing very rarely…? Prerequisite : become acquainted with poker rules if you haven’t played it so far, as business perspective and understanding existing code is the initial step for any refactoring. And don’t forget to install IntelliJ IDE – our master refactoring tool! Please download the following sources prior to attending the Master Class: https://github.com/wlodekkr/chain-of-responsibility |