Join Newsletter

Conference Program

All times displayed are in the Australia/Brisbane timezone

8:45 AM

8:45 AM - 15 mins

Session Overviews and Introductions

9:00 AM

9:00 AM - 45 mins

Room

Inside Every Calculus Is A Little Algebra Waiting To Get Out

Erik Meijer

Inside Every Calculus Is A Little Algebra Waiting To Get Out

Erik Meijer

Because of deep learning, there has been a surge in interest in automatic differentiation, especially from the functional programming community. As a result, there are many recent papers that look at automatic differentiation from a Category Theory perspective. However, Category Theorists have already been looking at differentiation and calculus in general since the late ’60s in the context of Synthetic Differential Geometry, but it seems that this work is largely ignored by those interested in AD. In this talk, we will provide a gentle introduction to the ideas behind SDG, by relating them to dual numbers, and show how it provides a simple axiomatic and purely algebraic approach to (automatic) differentiation and integration. And no worries if you suffer from arithmophobia, there will be plenty of Kotlin code that turns the math into something fun you can play with for real.

Read More

9:45 AM

9:45 AM - 25 mins

Break / Q&A with Erik Meijer

10:10 AM

10:10 AM - 45 mins

Room 1

Tune in to C#

Mads Torgersen

Tune in to C#

Mads Torgersen

As you were looking the other way, C# became a cross-platform, open-source, high-performance, general-purpose, hyphenated-buzzword programming language. It is also very popular! I’ll take you on a journey of language design nerdery, targeted equally at C# newbies and oldies. Let’s see how some of our recent features take on the null menace, immutability, and value semantics in the context of object-oriented programming, and peek at some of the next ideas we’re tinkering with.

Read More

10:55 AM

10:55 AM - 25 mins

Break / Q&A with Mads Torgersen

11:20 AM

11:20 AM - 45 mins

Room 1

Launching an Internal Developer Community

Mark Birch

Launching an Internal Developer Community

Mark Birch

Community is nothing new to developers. Just look at the open source movement, the numerous conferences, and the growth of collaborative resources like GitHub and Stack Overflow. Developers know the best solutions come from collaboration. In many respects, community is a superpower for innovation and problem solving.

So why is community so difficult to establish inside companies? It would seem like a natural opportunity given the collective nature and shared vision of being part of an organization. Yet when I visit most companies, community and collaboration are sorely lacking, and sometimes even discouraged.

In this talk, I share practices from my journey while at Stack Overflow and in other communities I have over the past decade to help all of us in the journey towards building healthy and thriving internal developer communities.

Read More

12:05 PM

12:05 PM - 25 mins

Break / Q&A with Mark Birch

12:30 PM

12:30 PM - 60 mins

Lunch

1:30 PM

1:30 PM - 45 mins

Room 1

How to improve Developer Productivity

Jez Humble

How to improve Developer Productivity

Jez Humble

Wouldn't it be great if we could rank developers based on their productivity, reward the best ones, and make sad noises at the others? Don't be silly, developer productivity isn't an innate ability that you can measure and rank! This talk will discuss how to think about and improve productivity based on the longest-running academically rigorous research investigation into the practices and capabilities that drive high performance in software delivery. Find out what drives productivity, how you can do more of it, and why it's important. Discover how tools and culture both impact productivity, and how to make a research-based argument for reducing technical debt.

Read More

2:15 PM

2:15 PM - 25 mins

Break / Q&A with Jez Humble

2:40 PM

2:40 PM - 45 mins

Room 1

How to Read Complex Code without Getting a Headache

Felienne Hermans

How to Read Complex Code without Getting a Headache

Felienne Hermans

Research shows that on average developers spend about 58 percent of their time on reading code! However, we are not explicitly taught reading code in school or in boot camps, and we rarely practice code reading too.  

Maybe you have never thought about it, but reading code can be confusing in many ways. Code in which you do not understand the variable names causes a different type of confusion from code that is very coupled to other code. In this talk, Felienne Hermans, associate professor at Leiden University, will firstly dive into the cognitive processes that play a role when reading code. She will then show you theories for reading code, and close the talk with some hands-on techniques that can be used to read to any piece of code with more ease and fewer headaches!

Read More

3:25 PM

3:25 PM - 25 mins

Break / Q&A with Felienne Hermans

3:50 PM

3:50 PM - 45 mins

Room 1

Ends in Data

Joe Macleod

Ends in Data

Joe Macleod

The internet was built on the principle of avoiding deletion. Its origin was a bomb-proof server back-up in the Cold War age. This established a philosophy of protecting data indefinitely, maximizing data, and championing more is better. Now overwhelmed and flooded with data, do we need a more balanced approach? Do we need an end for data?

Joe Macleod talks about a recent project with Markus Buhmann and Ana Lopez Niharra, looking at ends in data. Sharing the benefits and opportunities of data purging as a solution for some of society's biggest problems. The talk provides arguments from a technical, business, and consumer experience perspective.
It recommends a variety of techniques, models, and solutions to help balance the bomb-proof data obsession. 

Read More

4:35 PM

4:35 PM - 25 mins

Break / Q&A with Joe Macleod

5:00 PM

5:00 PM - 45 mins

Room 1

Hidden Features and Traps of C++ Move Semantics

Nicolai Josuttis

Hidden Features and Traps of C++ Move Semantics

Nicolai Josuttis

Move semantics, introduced with C++11, has become a hallmark of modern C++ programming. However, it also complicates the language in many ways. Even after several years of support, experienced programmers struggle with all details of move semantics.

While I took the time to write up all the facts and details in my new book "C++ Move Semantics - The Complete Guide" (cppmove.com), I learned a lot I wasn't aware of (note that the final book has 260 pages).

This talk is about a very simple class to demonstrate some remarkable aspects of move semantics. We will see some tricky features and traps to understand C++ better.

Read More

5:45 PM

5:45 PM - 25 mins

Break / Q&A with Nicolai Josuttis

8:45 AM

8:45 AM - 15 mins

Session Overviews and Introductions

9:00 AM

9:00 AM - 45 mins

Room 1

Hiding the Lead

Sam Newman

Hiding the Lead

Sam Newman

Information hiding, coupling, and cohesion, microservices-style

The terms coupling and cohesion come from the world of structured programming, but they are also thrown about in the context of microservices. In this session, I look at the applicability of these terms to microservice architecture and also do a deep dive into the different types of coupling to explore how ideas from the 1970s still have a lot of relevance to the types of systems we build today.

Read More

9:45 AM

9:45 AM - 25 mins

Break / Q&A with Sam Newman

10:10 AM

10:10 AM - 70 mins

TBA

11:20 AM

11:20 AM - 45 mins

Room 1

Scaling Your Architecture With Services and Events

Randy Shoup

Scaling Your Architecture With Services and Events

Randy Shoup

This session is a deep dive into the modern best practices around asynchronous decoupling, resilience, and scalability that allow us to implement a large-scale software system from the building blocks of events and services, based on the speaker's experiences implementing such systems at Google, eBay, and other high-performing technology organizations.

We will outline the various options for handling event delivery and event ordering in a distributed system. We will cover data and persistence in an event-driven architecture. Finally, we will describe how to combine events, services, and so-called "serverless" functions into a powerful overall architecture.

You will leave with practical suggestions to help you accelerate your development velocity and drive business results.

Read More

12:05 PM

12:05 PM - 25 mins

Break / Q&A with Randy Shoup

12:30 PM

12:30 PM - 60 mins

Lunch

1:30 PM

1:30 PM - 45 mins

Room 1

Solving Problems like a Game Designer

Jennifer Scheurle

Solving Problems like a Game Designer

Jennifer Scheurle

Did you know that the first bullet by an enemy in a first-person action shooter always misses you? Would you like to know why a game once had to stitch a whole train to act as the head of a player character? Did you know that in third person games, the first two-thirds of your health bar is worth fewer points than the last third?

Game Designers are some of the most creative and potent problem solvers in the tech field - many solutions being odd, surprising and most importantly: Focused on the user experience like no other. We are teachers, storytellers, therapists, matchmakers in ways that are surprising and innovative for anybody who needs to solve complex problems for humans or human and tech interaction. This talk aims to talk about and teach some of the ways Game Designers work, go over some of the most fascinating solutions we have found for our games and why they exist, and hopefully reframe ways people in adjacent industries can learn from the approach, just as we learn from other tech fields.
 
Read More

2:15 PM

2:15 PM - 25 mins

Break / Q&A with Jennifer Scheurle

2:40 PM

2:40 PM - 45 mins

Room 1

The Science of Queues: Performance Monitoring for Themes Parks and Distributed Systems

Mike Minutillo

The Science of Queues: Performance Monitoring for Themes Parks and Distributed Systems

Mike Minutillo

Performance monitoring is an important part of running a successful theme park. Like a distributed system, theme parks have separate components (attractions), each with a queue of work to get through. How can we find out which of them are the least efficient? Which ones are slowing us down? Where should we spend time optimizing?

Join Mike for a roller-coaster ride through distributed system performance monitoring. Find out which measurements tell you the most about your system and how to optimize it. As an added bonus, you'll learn how to run a successful theme park! Mike has 20 years of experience developing and monitoring complex systems. In that time, he has visited some of the worlds greatest theme parks.

Read More

3:25 PM

3:25 PM - 25 mins

Break / Q&A with Mike Minutillo

3:50 PM

3:50 PM - 45 mins

Room 1

TBA

Susanne Kaiser

TBA

Susanne Kaiser

Coming Soon...

Read More

4:35 PM

4:35 PM - 25 mins

Break / Q&A with Susanne Kaiser

5:00 PM

5:00 PM - 45 mins

Room 1

Organization - A Tool for Software Architects

Eberhard Wolff

Organization - A Tool for Software Architects

Eberhard Wolff

Conway's Law, domain-driven design, microservices - the most important modern software architecture approaches use the organization as a tool for architecture. But software architects often have only limited influence on the organization. And teams should be self-organized - so how can you even influence them at all?

This presentation shows what exactly it means to use the organization as a tool for architecture and how software architects can use concretely. Because even if you are a manager: Organizations are people - and you can go out and work with them!

Read More

5:45 PM

5:45 PM - 25 mins

Break / Q&A with Eberhard Wolff

Back to Top