Join Newsletter

Conference Program

All times displayed are in the Australia/Melbourne timezone

9:45 AM

9:45 AM - 15 mins

Session Overviews and Introductions

10:00 AM

10: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

10:45 AM

10:45 AM - 25 mins

Break / Q&A with Erik Meijer

11:10 AM

11: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

11:55 AM

11:55 AM - 25 mins

Break / Q&A with Mads Torgersen

12:20 PM

12:20 PM - 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

1:05 PM

1:05 PM - 25 mins

Break / Q&A with Mark Birch

1:30 PM

1:30 PM - 60 mins

Lunch

2:30 PM

2: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

3:15 PM

3:15 PM - 25 mins

Break / Q&A with Jez Humble

3:40 PM

3: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

4:25 PM

4:25 PM - 25 mins

Break / Q&A with Felienne Hermans

4:50 PM

4: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

5:35 PM

5:35 PM - 25 mins

Break / Q&A with Joe Macleod

6:00 PM

6: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

6:45 PM

6:45 PM - 25 mins

Break / Q&A with Nicolai Josuttis

8:35 AM

8:35 AM - 15 mins

Session Overviews and Introductions

8:50 AM

8:50 AM - 45 mins

Room

Jepsen 13

Kyle Kingsbury

Jepsen 13

Kyle Kingsbury

We trust databases to store our data, but should we? Jepsen combines generative testing techniques with fault injection to verify the safety of distributed databases. We'll learn the basics of distributed systems testing, and show how those techniques found consistency errors in MongoDB, PostgreSQL, and Redis-Raft. Finally, we'll conclude with advice for testing your own systems.

Read More

9:35 AM

9:35 AM - 25 mins

Break / Q&A with Kyle Kingsbury

10:00 AM

10: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

10:45 AM

10:45 AM - 25 mins

Break / Q&A with Sam Newman

11:10 AM

11:10 AM - 45 mins

Room 1

O’ Mice An’ Men -- Rescuing a Project Gang Agley

George Dinwiddie

O’ Mice An’ Men -- Rescuing a Project Gang Agley

George Dinwiddie

You might have noticed that the world is suffering a pandemic at the moment, and it might have disrupted your software development plans. At least you’ve got a good excuse, though I’ve heard rumors of managers being sacked for not foreseeing the pandemic and including it in their schedules. I’ve not heard that sacking the managers has either made the pandemic go away, or rescued a software development schedule. I’ll leave that first problem to the epidemiologists and virologists, but when circumstances make a laughingstock of your schedule, what can you do? I can’t tell you how to do the impossible, but I can help you make the best of the situation. To do that, we’ll use that much maligned and oft misused tool, estimation. Come with me and we’ll explore ways to use your estimates to guide your response to unforeseen disruptions–meeting near term needs to the extent possible, and future proofing your longer term plans.

Read More

11:55 AM

11:55 AM - 25 mins

Break / Q&A with George Dinwiddie

12:20 PM

12:20 PM - 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

1:05 PM

1:05 PM - 25 mins

Break / Q&A with Randy Shoup

1:30 PM

1:30 PM - 60 mins

Lunch

2:30 PM

2: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

3:15 PM

3:15 PM - 25 mins

Break / Q&A with Jennifer Scheurle

3:40 PM

3: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

4:25 PM

4:25 PM - 25 mins

Break / Q&A with Mike Minutillo

4:50 PM

4:50 PM - 45 mins

Room 1

Building Adaptive Systems For a Fast Flow of Change

Susanne Kaiser

Building Adaptive Systems For a Fast Flow of Change

Susanne Kaiser

In a world of rapid changes and increasing uncertainties, organizations have to continuously adapt and evolve to remain competitive and excel in the market. 

In such a dynamic business landscape organizations need to design for adaptability. Organizations need to aim for building systems and team organizations aligned to the business needs and business strategy and evolving them for adaptability to new changes and unknown environments.

In this talk, I am going to highlight how the combination of  Wardley Maps, Domain-Driven Design, and Team Topologies can provide a holistic, powerful toolset to design, build and evolve adaptive systems and team structures for a fast flow of change.

Read More

5:35 PM

5:35 PM - 25 mins

Break / Q&A with Susanne Kaiser

6:00 PM

6: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

6:45 PM

6:45 PM - 25 mins

Break / Q&A with Eberhard Wolff

Back to Top