Schedule - Johannesburg

workshops
Conference Day 1
Conference Day 2

08:00 – 09:00

Registration
 


09:00 – 11:00

Cloud Native applications for Cloud Foundry using Spring Cloud

Corneil Du Plessis / Chief Software Architect


11:00 – 12:00

AWS Java

This is a short workshop aimed at introducing AWS’s Java services to attendees. The workshop is aimed at developers, team leaders and architects regardless of the software projects they are involved in and is intended to create an understanding of where, when and how to use this paradigm in development engagements. The workshop will introduce AWS as a platform for building and hosting Java web systems and Serverless services in the cloud. Attendees will get the opportunity to test what was learned by configuring and building AWS based services.

  • Part 1 – AWS Core Concepts and Cloud Background
  • Part 2 – Servers and Containers
  • Part 3 – Serverless Architecture

Please be aware you need to register your own AWS account as all exercises will be hosted on your own AWS account Your account needs to be valid and working on the day!

Rory Preddy / Senior Developer


12:00 – 13:00

Lunch
 


13:00 – 14:00

AWS Java

This is a short workshop aimed at introducing AWS’s Java services to attendees. The workshop is aimed at developers, team leaders and architects regardless of the software projects they are involved in and is intended to create an understanding of where, when and how to use this paradigm in development engagements. The workshop will introduce AWS as a platform for building and hosting Java web systems and Serverless services in the cloud. Attendees will get the opportunity to test what was learned by configuring and building AWS based services.

  • Part 1 – AWS Core Concepts and Cloud Background
  • Part 2 – Servers and Containers
  • Part 3 – Serverless Architecture

Please be aware you need to register your own AWS account as all exercises will be hosted on your own AWS account Your account needs to be valid and working on the day!

Rory Preddy / Senior Developer


14:00 – 16:00

Introduction to Machine Learning

Machine learning is the new craze. With the abundance of data available, increased access to performance computing, and new business opportunity via learning from data, machine learning has proven to be useful in developing software for the future. This workshop aims to explain how machine learning works and can be used in useful ways by developers. It is an interactive session where you will learn the fundamentals of working with data and various machine learning algorithms for classification and regression. You will require a laptop for this session.

Rishal Hurbans / Solutions Architect

08:00 – 08:45

Registration


08:45 – 09:00

Welcome Message


09:00 – 10:00

Keynote: Distributed services with MicroProfile

Whether your building Microservices or not, we live in a distributed world. In this talk we will go into detail on how MicroProfile can help you build better and more resilient distributed services. We will cover a quick overview of MicroProfile and then deep dive into some code examples and demos:

  • JAX-RS & CDI
  • Fault tolerance API
  • Config API
  • OpenAPI (Swagger)
  • Health Check API
  • Metrics API

All code and slides will be available in github. Demo will cover more than one implementation Wildfly-swarm and OpenLiberty.

Phillip Kruger / System Architect & Software professional


10:00 – 10:15

Java Break


10:15 – 11:00

10 practical ways to being a better, happier Java developer

This talk focuses on soft and technical ways to improve your career and have fun doing it.

Richard Kolb / Senior Java Developer


11:00 – 11:45

Building your first Smart Contract with Ethereum and Solidity

Imagine being able to write your next employment contract as code! You get to create the conditions (if then, while true) that determine what happens and when. Why stop your employment contract? Rental agreements, insurance, car purchases, every type of agreement can be expressed in code and we’ll show you how to write them and deploy them on the block chain based Ethereum network. In this talk we explore what Smart Contracts are and how they make contract enforcement (lawyers) redundant in the same way that block chain based cryptocurrencies make banks redundant. We’ll also take a tour of the Solidity programming language and show you how to implement the right interfaces (it’s a lot like Java). Finally we’ll get into the details of how to execute your Smart Contract on your own Private Block Chain network and how to navigate Ethereum Nodes, Wallets and the Geth (Go Ethereum) Command Line Interface.

Gerard de Jong / Software Architect


11:45 – 12:30

The Force is strong with Kotlin

Kotlin uses the force of Brevity to do more with less, whilst not sacrificing comprehension in order to achieve it. It packs more ideas and power per line of code than Java ever could. Best of all it is 100% interoperable with Java, is an officially supported Android language and it runs everywhere.

Christoff Smith / Senior Java Developer


12:30 – 13:30

Lunch


13:30 – 14:15

Resilient Applications using Spring Cloud

Discover the Spring Cloud APIs that help make your application more resilient. The talk will cover the various Spring Cloud APIs and modules that provide for improving application resilience from security, how you connect to other cloud services, mail and reliable messaging to load balancing, rate-limiting and deployment.

Corneil du Plessis / Chief Software Architect


14:15 – 15:00

Bridging the gap with Legacy Modernization

Abel Chavanga / Lead Software Engineer
Mpumelelo Ngema / Software Engineering Practice


15:00 – 15:15

Java Break


15:15 – 16:00

We’re gonna need a bigger database: Scaling to multiple databases with Debezium and Kafka

As our application grows, at some point the database we’ve chosen might no longer be sufficient to do what we want it to do. Perhaps we need to scale more than our database can handle, or maybe new features gradually require things your database isn’t great at. Replacing a database in an existing system is a lot of work and risky, and besides there may not be any single database that does all the things we need. As an alternative, we could leave our original database where it is, use a change capture platform like Debezium. In a nutshell, a change capture platform observes a database and records all inserts, updates and deletes to an event log system, such as Apache Kafka. From this event log we can stream this data to other databases, and use those databases instead of our original database for read traffic. The best part is that these databases can be completely different kinds of databases. We can stream from a relational database to a graph database, or from a document database to an search index like Elasticsearch. We’ll get into the moving parts of this setup, and see what is good, what is bad, and what’s ugly.

Frank Lyaruu / CTO


16:00

Closing

08:00 – 08:45

Registration
 


08:45 – 09:00

Welcome Message
 


09:00 – 10:00

Keynote: Cluster Consensus: When Aeron Met Raft

Consensus protocols enable distributed systems to agree a common view of shared state. This common view allows a cluster to continue service while a majority of its members are available. Raft was designed to be understandable. Raft succeeded in this goal and became popular. Aeron was designed to be an understandable messaging system, it was also designed to be fast, very fast. If the design principles of Aeron were applied to Raft, could we create a high-performance consensus implementation? Come to this talk if you would like to find out what happened when Aeron met Raft.

Martin Thompson / High-Performance Computing Specialist


10:00 – 10:15

Java Break
 


10:15 – 11:00

Introducing HIP, the Human Interaction Protocol

Humans have wonderfully weird interfaces. Ranging from elegantly simple to brutish and infuriating. It is an interface that we use every day. It is so prevalent that, regrettably, we tend to forget it is there. For all our love of tinkering with systems, developers seem to have no interest whatsoever in hacking this particular API. HIP is Open Source, with nearly 7 billion users and almost as many contributors. Over the course of history, the API to humans has been well documented and explored. It is the only API that can be talked about at parties. In Human Interaction Protocol, Kees Jan Koster talks about the API to various implementations of the human class. He introduces a framework that makes it easier to interface with individual objects. The framework is particularly suitable for clustering humans. From personal experience he explains a few useful design patterns to apply in your HIP clusters. You take home a set of recipes to apply when using HIP. Simply using these will improve your own use of HIP, and explain and possibly address some of the performance issues you’ve been seeing in your clusters. They serve as a starting point to tinkering and experimenting with this wonderful API.

Kees Jan Koster / Software Architect & HIP trainer


11:00 – 11:45

Running Java in Docker

Running a Java application in Docker might seem simple but is not. In this talk, I will talk about running 100s of Java containers how to manage the specific needs of the JVM and talking to Container orchestration such as Kubernetes. Josh Goodman heads up the DevOps team at VAT IT. He is focused on Docker, Kubernetes, AWS Cloud infrastructure, continuous integration, and deployment. He previously worked for Entellect as a software engineer. In his spare time, he volunteers as a paramedic and enjoys spending time with his wife and newborn baby.

Josh Goodman / Project Manager Scrum Master


11:45 – 12:30

Did you know, that from Java 9, your VM can be made into a micro-VM?

This talk is critical for your ability to optimize your Java solutions, so join me, as we do a whirlwind tour of how to Minify your VM! Huge JRE images were a huge problem for packaging and deploying small and lightweight tools based on Java. Have you tried to reduce Java runtime images? You will be surprised how well that works. From JDK 9 a minimal image targeting desktops can be as small as 18MB!This is a huge improvement but how does this black-magic work? I will be wowing you with an overview of Java’s custom runtime image tooling and present a interactive demo on how to create a mini Java runtime image file. We bust the myths around Java cloud computing and show you how to embraced Cloud Orientated development with Java. See how the new Java module system works with general patterns for developing a modular Java Cloud application.

Rory Preddy / Senior Developer


12:30 – 13:30

Lunch
 


13:30 – 14:15

Infrastructure as Code: Should you be using it and what worked for us?

Infrastructure as code has become a buzz word around IT automation with organisations scrambling to try and implement a solution – but is this really something that you need, and is it right for your organisation? This talk sheds some light as to what exactly this trend is all about, how we’ve implemented it at our customer and what you need to know when embarking on such a journey. We cover some valuable lessons learned along the way using Chef and Terraform on Amazon Web Services and VMWare.

Geoffrey Lydall / Senior Software Engineer


14:15 – 15:00

SnowFlakes or Phoenix ? ….we are only getting started with microservices!

The future of microservices has never looked better. Let’s take a minute to reflect before I paint a picture of where we are going with OpenShift, Istio, Fabric8, Application Runtimes and Services. Come get everything you need to become a microservice developer RockStar!

Jaen Swart / Principal Architect


15:00 – 15:15

Java Break
 


15:15 – 16:00

Testing microservices : a technical masterclass

Micro services are now widely used by many companies with a certain degree of success. They really go hand in hand with the idea of continuous delivery. For a successful continuous delivery, a micro service needs to be properly tested to avoid potential regressions. In this talk, we will look at the different strategies, testing types as well as technologies used to achieve the above. After the talk, one will have a clear idea behind testing micro services as well sample codes on how-tos on this subject.

Steven Ndaye / Senior Software Enginner


16:00

Closing