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.
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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?
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.
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.
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!
6:45 PM
6:45 PM - 25 mins