YOW! Perth 2018

Topics covered at #yowperth

Wednesday, 5th - Thursday, 6th September in Perth

15 experts spoke.

Since 2008, YOW! has brought 200+ International Software Experts from North America, Europe and countries around the world to over 10,000 software professionals in Australia. Now we're bringing them to Perth.

Come to this two-day conference to discover the latest trends and network with fellow developers. Hear international software experts share best practices in development and delivery.

Excited? Share it!


Serverless compute and artificial intelligence transforms life science research

Genomic data is outpacing traditional Big Data disciplines, producing more information than Astronomy, twitter, and YouTube combined. As such, Genomic research has leapfrogged to the forefront of Big Data and Cloud solutions using artificial intelligence and machine learning to generate insights from these unprecedented volumes of data. This talk hence showcases how we find the disease genes responsible for ALS using VariantSpark, which is a custom random forest implementation built on top of Spark to deal with the 80 million columns in genomic data. This talk also outlines how we use a serverless architecture to translate these insights onto the clinical practice by provide a decision support framework for clinicians to find actionable genomic insights and process medical records at a speed fit for point-of-care application. Furthermore, the talk also touches on how to evolve serverless architecture more efficiently through an hypothesis-driven approach to DevOps and how we keep data and functions secure in a serverless environment.

Dr. Denis Bauer

Head cloud computing bioinformatics

Containers in Production

Docker containers are appearing everywhere. They give you a reproducible and isolated environment for your code to run in. Great, so how do I take my container and run it in production? I need load balancing, service discovery, autoscaling, logging etc. and they don't magically appear in container land.
All the big cloud providers offer hosted ways for you to run Docker containers in production. This is great because most of us don't have a large ops team to set that up. Unfortunately these systems still require a fair amount of setup and configuration to run a production ready service. With a particular focus on the AWS and cross-platform tools available, I'll show you how to launch a containerised service on each of them and go through why you might pick one over another.

Katie Bell

Freelance Developer

Go Back to the Future with Event Sourcing and CQRS

Event Sourcing is an approach to building software with a long track record of success. By placing business concepts at the heart of our code, we can decouple systems into small services that can be quickly built, changed, and replaced. Although Event Sourcing has been around for many years, it remains outside the mainstream paradigm of software development–much to our detriment.

With Event Sourcing, we place the highest value on the simple capture of essential business events without attempting to interpret them. We can then relegate all interpretations of those events to subsystems that are easy to build, change, and replace when necessary. The resulting systems have single responsibilities and are decoupled from each other, which makes them simple to modify. Event Sourcing can enable us to move faster by supporting rapid experimentation with new perspectives, new user interactions, and new insights into our business.

Event Sourcing is agnostic of technology stack and language style, but it goes well with another pattern called CQRS: Command Query Responsibility Segregation. In this talk, we will do a deep-dive into both of these two patterns and discuss:

What is Event Sourcing, and how does it differ from systems designed around current state.
Interpreting Events into denormalised projections for very fast reads (Queries).
Receiving and validating Commands that, if successful, result in new Events.
Single responsibility services for reacting to Events by creating other events and, if necessary, triggering external behaviour.
We will cover the advantages of the pattern, to give us an idea for when and why it makes sense to use it. But it isn’t a silver bullet, and we will also talk about its disadvantages, including the most commonly mentioned downside: eventual consistency, and how we can deal with it.

Sebastian von Conrad

VP of Engineering
Culture Amp

Continuous Delivery Fundamentals

Continuous Delivery is a complex, holistic approach to software development and has a significant impact on the way in which organisations operate. This approach demands a broad range of skills and techniques. This course is designed to introduce, and explore a deeper understanding of, these ideas and techniques. It is primarily aimed at “Change Agents” within organisations, Managers, Leaders, Lead Developers, Lead Architects and so on, but is relevant to anyone who works on delivering valuable software to users in any capacity. More specifically this course will give you the tools to help your company become a 'Learning Organisation'. Increase efficiency and quality, and reduce risk in your software development process. Our training can teach the techniques that will allow you to increase user satisfaction and make your organisation more innovative. We do this by teaching an approach that will allow your company to become more experimental and capable of reacting quickly and efficiently to change and allowing your software development process to become a tool that enables this flexibility rather than an impediment to it.

Dave Farley

Independent Consultant
Continuous Delivery

Advanced Deployment Pipeline Techniques

The Deployment Pipeline is a central concept in Continuous Delivery. It represents an effective, controlled channel through which all changes destined for production pass.

A defining objective in CD is to work so that our software is always in a “releasable state”. By applying high levels of automation to our development process, in the form of a Deployment Pipeline, we pass all changes to our production systems through this channel and evaluate them prior to release.

This means that the pipeline quickly becomes a strategic resource.

As our use of this important tool grows, the performance of the pipeline, in terms of the rapidity with which it can give valuable feedback on the quality of your work, becomes a central concern.

Dave Farley

Independent Consultant
Continuous Delivery

The Rationale for Continuous Delivery

The production of software is a complex, collaborative process that stretches our ability as human beings to cope with its demands. Many people working in software development spend their careers without seeing what good really looks like. Our history is littered with inefficient processes creating poor quality output, too late to capitalise on the expected business value. How have we got into this state? How do we get past it? What does good really look like? Continuous Delivery changes the economics of software development for some of the biggest companies in the world, whatever the nature of their software development, find out how and why.

Dave Farley

Independent Consultant
Continuous Delivery

Dynamic Reteaming at Fast-Growing Companies

Team change is inevitable, especially when your company is hiring like crazy and doubling in size. Your teams might grow and split. 20 people might arrive in one day. What feels like “tectonic shifts” happen as you morph structurally in an attempt to refocus work and people. How can we bring a humanistic stance to this dynamic reteaming? How can the people be empowered to own their own team changes? How do you integrate the new people in without losing your sense of “culture?” We will explore questions like these with an interactive format. Along the way, I’ll share case studies from 3 successful startups I’ve been a part for nearly 20 years.

Heidi Helfand

Director of Engineering Excellence
Procore Technologies

Dynamic Reteaming at Fast-Growing Companies

Team change is inevitable, especially when your company is hiring like crazy and doubling in size. Your teams might grow and split. 20 people might arrive in one day. What feels like tectonic shifts happen as you morph structurally to refocus people and work. How can we bring a humanistic stance to this dynamic reteaming? How can the people be empowered to have ownership over their team change? How can we integrate the new people and redefine our sense of “culture?” We will explore questions like these and will discover practical strategies to master dynamic reteaming.

Heidi Helfand

Director of Engineering Excellence
Procore Technologies

A Practical Introduction to Coaching Conversations

Listening is power. By tuning in and applying self-management and directed curiosity, you can help others solve their own problems instead of telling them what to do, giving them the tools they need to be leaders in your organization rather than order takers. Heidi Helfand leads a crash course in coaching conversations, helping you become a better and more empowering leader, coworker, and friend.

Heidi first makes the case for focused attention, listening, and awareness—skills that help people feel “heard.” You’ll then learn specific strategies like the three levels of listening, paraphrasing, and mirroring and discover how you can draw people out by asking powerful, open-ended questions. You’ll be able to apply these lessons to all areas of your life.

Heidi Helfand

Director of Engineering Excellence
Procore Technologies

Failure and Change: Principles of Reliable Systems

As we construct larger or more complex systems, failure and change are ever-present. We need to accept and even embrace these tensions to build software that works and keeps working.

This is a talk on building and operating reliable systems. We will look at how systems fail, particularly in the face of complexity or scale, and build up a set of principles and practices that will help us implement, understand and verify reliable systems.

Mark Hibberd


Architecting Enterprise Transformation – 37 Things One Architect Knows

Gregor Hohpe has been a recognised expert in architecture for over 15 years, most recently with his work with a large worldwide insurance company. This is a special opportunity to spend a day learning and sharing experiences on how to navigate a digital transformation in the enterprise.

Many large enterprises are under pressure to transform their IT architecture and organization, as their business is attacked by “digital disruptors”. IT architects can play a key role in such a transformation because they combine the technical, communication, and organizational skill to apply IT for the benefit of the business. Their job is not an easy one, though: they must maneuver in an organization where IT is often still seen as a cost center, where operations means “run” as opposed to “change”, and where middle-management has become cozy neither understanding the business strategy nor the underlying technology.

This workshop illustrates how software or IT architects can play an active role in driving the digital transformation of a large enterprise. To do so, they need to extend their horizon beyond dealing with technology to navigate organizational politics, get management attention, work with external vendors, and pick the right battles. The examples and anecdotes originate from the presenter’s experience as Chief Architect in a large financial services organization that is undergoing a massive IT transformation.

Gregor Hohpe

Enterprise Strategist

Keynote - Enterprise Architecture = Architecting the Enterprise?

Architects in the enterprise are often regarded as ivory tower residents who bestow their utopian plans upon project teams in the form of colorful diagrams that bear little to no resemblance to reality. The most suspicious in this group are often the “Enterprise Architects” who are perceived as being furthest from actual technical problems.

However, large-scale IT operation and transformation require transparency across hundreds or thousands of applications running on all sorts of middleware in data centers around the globe. The very enterprise architects are likely the only ones who stand a chance to bring transparency into such an environment and who can direct IT investments in the hundreds of millions of Euros towards modernization and run-cost reduction. This sounds a lot more exciting and valuable than drawing pictures!

This session takes a serious but light-hearted look at the role of enterprise architects in modern IT organizations.

Gregor Hohpe

Enterprise Strategist

Building a centralised Machine Learning Pipeline with Spark and Kafka

Many organisations face the difficult challenge of enabling Machine Learning projects to get to market more quickly and to allow data science teams to share their features. In this talk, I will be discussing the machine learning pipeline developed at a large Australian telecommunications company to achieve this goal using Kafka and Spark as well as the challenges faced along the way. I’ll begin by discussing the utility and motivation for a centralised feature store, before looking at the complexities of such an undertaking (both technical and organisational). We will then dig into the technical details of implementation by discussing the scalability headaches we faced and dive into the details of the solutions used to drastically improve the speed and organisational scalability of the system. Several areas that will be covered are providing a declarative API that allowed us to compile feature definitions into optimised spark code, the complexity of a true streaming dedupe, adjusting the workflow for different machine learning use cases, fine tuning the resource allocation to avoid unnecessary bottlenecks and allowing for streaming and batch data sources. Finally we will touch on lessons learnt along the way and offer advice on things to avoid as well as how to take things to the next stage.

Cameron Joannidis

Head of Data Engineering

Production Ready Software

In this full-day workshop, you will learn how to create applications that survive the rigors of life in production. Too often, project teams aim to pass QA instead of aiming for success in production. Testing is not enough to prove that your software is ready for continuous availability in the corrosive environment of the Internet. During this workshop, you will receive an understanding of the architecture and design patterns that can produce high availability in distributed, multithreaded systems. You will also learn about the antipatterns that can sabotage your systems availability and capacity.

Michael Nygard

SVP, Platform & Architecture
Sabre Corporation

Keynote - Uncoupling

We overload our terms a lot in this industry. "Coupling" is one such. That word covers situations ranging from essential to accidental to comical to cosmic. Coupling seems to be the root of all ills. It is the molasses that slows our every move. And yet, in the industry from which we borrowed the term, "coupling" was not a dirty word. It meant something ingenious. Let us contemplate coupling for a time and see what we can do about it.

Michael Nygard

SVP, Platform & Architecture
Sabre Corporation

Architecture Without an End State

Architecture plans in enterprises tend to resemble late-night infomercials. First, you see a person or system that seems incapable of survival—a situation that can be immediately rectified if you just buy into the product. (One popular infomercial shows incompetent people mangling tomatoes transitioning into Ginsu-wielding sous chefs; the architecture pitch starts with hideous complexity then moves to clean orthogonal box diagrams.) Operators are always standing by.

Real architecture never reaches that blissful end state. Something always interrupts the program: businesses change, technology changes, or funding dries up. What would happen if you did reach the end state, anyway? Is IT in the company done? Of course not.

The truth is that there is no end state. We must all learn to build systems that evolve and grow. We need to stop aiming for the end state and understand that change is continuous. We cannot predict the details, but we can learn the general patterns.

Michael Nygard demonstrates how to design and architect systems that admit change—bending and flexing through time. Using a blend of information architecture, technical architecture, and some process change, Michael walks you through examples of rigid systems to show how to transform them into more maneuverable architecture.

Michael Nygard

SVP, Platform & Architecture
Sabre Corporation

Passionate Product Ownership: A Certified Scrum Product Ownership Workshop

Product Ownership is hard! If you’re working as a product owner in an Agile team, you already know this is the toughest and most critical role in a successful product organization. If you’re a UX practitioner, senior engineer, or marketing professional in your organization, it may seem like adopting Scrum or Agile development has stripped away your ability to contribute as a product decision maker.

If you’re adopting an Agile approach, your organization may be struggling with bloated backlogs that aren’t well understood, stressful planning meetings that last too long and fail to get at details needed to deliver predictably, a nagging feeling that you’re building the wrong thing, a lack of time to work with customers and users, chronically late delivery, and frustrated business stakeholders...There’s hope!

The Passionate Product Ownership workshop takes on the bad assumptions and bad practices that often emerge from overly simplistic approaches to agile development and Scrum. Jeff Patton will leverage his past product leadership experience, and years of coaching product teams to teach an effective product ownership strategy.

Jeff Patton

Jeff Patton helps companies adopt a way of working that’s focused on building great products, not just building stuff faster. Jeff blends a mixture of Agile thinking, Lean and Lean Startup Thinking, and UX Design and Design Thinking to end up with a holistic product-centric way of working.

Keynote - MVP: and Why We Confuse Building to Learn with Building to Earn

Minimum viable product is one of the most misunderstood, misused, and abused terms in contemporary software development. In this talk Jeff will explain the misunderstandings made by thought leaders that lead to confusion we all deal with today. You’ll learn the counter-intuitive concepts hidden in the term and why really using them is so hard. You’ll learn about techniques that will ultimately help you find smaller successful releases, test your ideas faster, develop higher quality software more predictably, and release more confidently than ever before. Because hidden in this nasty little term are clues that can help you do all that.

Jeff Patton

Jeff Patton helps companies adopt a way of working that’s focused on building great products, not just building stuff faster. Jeff blends a mixture of Agile thinking, Lean and Lean Startup Thinking, and UX Design and Design Thinking to end up with a holistic product-centric way of working.

From the Caveman to the Spreadsheet and Beyond

In this talk Simon will take us on a historical voyage through the representation of information in software and the internet. From tables and charts, through mind maps, info-graphics, multi-dimensional views, and Minecraft. On the way he will explore tooling such as spreadsheets, 4GLs, RADs, workbooks, AirTable, Coda and more. With that background he’ll then dive deeply into the software architecture of a new and exciting platform currently in development, The Big Crunch, which will lead us to an interesting discussion on scale and the making of assumptions that can allow you keep growing a system... or not! Its going to be fast paced and fun, so don’t miss out.

Simon Raik-Allen

Founder & CEO
The Big Crunch

Terraform and Enabling Self-Service Developers with Terraform Modules

As companies adopt cloud and SaaS providers, 'elastic' resource usage easily explode if ungoverned. How can we ensure controlled costs, versioned changes and a repeatable infrastructure across teams? In this talk Vincent will highlight what challenges tools such as Terraform helped him solve, how to start adopting Infrastructure as Code and how to provide a self-service workflow for other engineers to ease IaC adoption across your company.

Vincent De Smet

DevOps Engineer

Living Live in Big Data – Vector Programming and Visual Analytics

And Now For Something Completely Different?

What do stock ticker feeds, web click streams, micropayments, online games, smart meters, and sensors on a formula one race car have in common? They all need to compute over and visualize large volumes of time series data. In this talk how one can interactively explore and visualize massive data sets using a vector functional programming.

Vector languages are heavily used in finance for the analysis of stock market data. They have inspired array capabilities in other languages, such as R, MatLab, Python NumPy, and Pandas. Vector languages and runtimes enable rapid interactive development of concise and efficient applications. Vectors are a natural low impedance abstraction for dealing with high-performance column stores. We introduce the key concepts of vector programming, applicative style, and idioms of FP. We then illustrate their use on typical data science problems exploring large data sets using visual analytics.

Dave Thomas

Dave is a freelance F# engineer and a Microsoft MVP, formerly with Xamarin.

Interaction Protocols: It's All About Good Manners

Distributed and concurrent systems can be considered a social group which collaborate to achieve collective goals. In order to collaborate a system of rules must be applied that affords good hygiene, fault tolerance, and effective communication to coordinate, share knowledge, and provide feedback in a trusted manner. These rules form a number of protocols which enable the group to act as a system that is greater than the sum of the individual components.
In this talk we will explore the history of protocols and their application when building distributed systems. Protocols provide the foundation on which the quality attributes are delivered. Qualities such as performance, resilience, and security.

Martin Thompson

Martin is a Java Champion with over 2 decades of experience building complex and high-performance computing systems.

Adventures with the JavaScript Event Loop

The Event Loop underpins everything that happens in JavaScript. It’s how JavaScript handles I/O events without blocking, even though it’s single-threaded. It's responsible for executing callbacks and managing repainting.

In this talk, we'll have a look at how the Event Loop interacts with WebAPIs and the rendering pipeline and how it manages tasks and task queues. And we'll see what's so special about Promises and check out event loops outside the browser window, in Node and web workers.

Erin Zimmer

Community Engineering Lead

Other Years