Click on a session to display more detail.

08:00 - 08:45

Foyer Registration

08:45 - 09:00

Aqua (K309) Welcome and house keeping

09:45 - 10:00

Foyer Morning tea

10:00 - 10:45

Aqua (K309) Saving the World One App at a Time – The Humanitarian Toolbox Richard Campbell <a href="" class="targetBlank"></a>

Join Richard Campbell as he tells his story of software, hardware and charity that ultimately has led him to the Humanitarian Toolbox ( The Humanitarian Toolbox is an open source initiative to build software for disaster relief – both for the Non-Governmental Organizations that are involved in disaster relief, the citizen volunteers that donate their time to assist during a disaster and the disaster victims themselves. Richard will take you along on his journey of experiences with technology over several decades to show how you can help change the world with software.

Blue (K321) Solving real life problems with machine learning Dom Raniszewski <a href="" class="targetBlank"></a>

Have you ever thought about machine learning but didn’t know where to start? This session is about how to take something from your day to day life and turn it into a machine learning problem.

I’m going to describe fundamentals of a problem space identification, first steps of creating machine learning based solution and share with you how I turned one of my problems into a functioning, end-to-end application

Green (B214) Coming to grips with Progressive Web Apps William Tulloch

Another year, another buzzword. Progressive Web Applications (PWA) is a concept that first came out of Google in 2015. The core idea is to create web sites that act and feel like native mobile apps.

In this talk we will look at what exactly is a Progressive Web App both in terms of the concepts that underpin it and the key technologies that it is built on. From there we get down and dirty with some code to see what it takes to write a PWA. Finally we will step back into the real world and ask the question are PWAs the band or just the bandwagon.

Orange (B215) Applying microservices principles to front-end Ahmed Elharouny <a href="" class="targetBlank"></a>

So, you have successfully separated your back-end into smaller, focused, independently deployable services that can be handed to separate teams in your organization. But you still have a problem; your front-end is still a big monolith!

Is there another product/website -inside or outside your organization- that is interested in embedding your product’s functionality?

xcomponent toolkit is built by a team in PayPal to meet this need. Its used now by PayPal to embed checkout plugin into other websites. Its a cross-domain component toolkit, supporting rendering components in an iframe or popup on a different domain, and passing down properties as you expect from a native component.

I will be showing how to use xcomponent to breakup your traditional monolithic web app into smaller components that is sandboxed, separately deployable, easy to build and works cross domain.

Purple (B218) Testers in a Startup. Really? Melissa Ngau, Guy Gershoni

Startups usually don’t hire testers, but ours did. In this talk we’ll explore why our startup hired us instead of just hiring developers, how it worked out for us and our journey to evolve into a testerless environment.

Our combined experience spans over three decades working in IT which allowed us to help the teams in our Startup develop capabilities in exploratory, performance and automated testing.

We will also discuss how we managed to keep our jobs after we successfully made ourselves redundant.

Yellow (K213) Workshop - Building Embodied Bots (Part 1) Andrew Fisher <a href="" class="targetBlank"></a>

Chatbots are popping up all around us, from those that can order your lunch to those who can retrieve analytics data for your website. Chat or speech is a natural interface for humans as we spend a considerable amount of time within messaging platforms.

But what if your bot could feel the world? How does allowing a bot to have access to sensor data or to directly affect the world change both the human’s style of interaction but also the bot’s understanding of the world around it?

This session will walk you through the basics of building a bot in JS using the Slack API. Once we’ve got something you can talk to we’ll then use the NodeBots stack to give your bot a body that can measure its environment or influence it.

To participate in this workshop you will need to have admin access to a Slack team with a spare integration slot (or a paid account), you will also need to set your environment up for working with hardware. Please review the preparation instructions in the accompanying repo here:

10:45 - 11:00

Foyer Change over

11:00 - 11:45

Aqua (K309) DDD, CQRS, and ORMs - Finding the sweet spot Andrew Best

DDD helps us tame the inherent complexity of non-trivial software development. CQRS supports the same goal goal, while providing other tangible benefits like optimisation and scalability. ORMs take the heavy lifting out of transalting between the worlds of Object Oriented software and relational persistance layers.

Finding the sweet spot between these approaches can be a challenge. Some popular ORMs (cough Entity Framework cough) place burdensome constraints on DDD implementations, causing them to bend and contort in wierd and less-than-wonderful ways. They can also be sub-optimal for CQRS concerns. CQRS at times is viewed as introducing unwarranted overhead and complexity where it isn’t needed.

In this session we will explore a less-than-wonderful domain model that utilises a single ORM for all of its concerns, and then look at how we can break it apart utilizing a CQRS approach that employs the best tool for the job for each concern, while keeping complexity to a minimum.

Blue (K321) Microservices UI Patterns Hadi Eskandari <a href="" class="targetBlank"></a>

There’s a lot of buzz around using Microservices patterns to design your backend system, but surprisingly not a lot of people talk about how these services are ultimately tied back together on the frontend. This talk is about challenges you face when creating a UI for your Microservices and challenges you face to ensure service boundaries are respected while the code is still maintainable and loosely coupled.

Green (B214) GraphQL - A query language to empower your API consumers Rob Crowley

The API economy is here, fueling disruption across many established industries. REST, as specified in Roy Fielding’s seminal dissertation, has become the architectural pattern of choice for APIs and when applied correctly allows for clients and servers to evolve in a loosely coupled manner. There are areas however where REST can deliver less than ideal client experiences. Often many HTTP requests are required to render a single view.

While this may be a minor concern for a web app running on a WAN with low latency and high bandwidth, it can yield poor client experiences for mobile clients in particular. GraphQL is Facebook’s response to this challenge and it is quickly proving itself as an exciting alternative to RESTful APIs for a wide range of contexts. GraphQL is a query language that provides a clean and simple syntax for consumers to interrogate your APIs. These queries are strongly typed, hierarchical and enable clients to retrieve only the data they need.

In this session, we will take a hands-on look at GraphQL and see how it can be used to build APIs that are a joy to use.

Orange (B215) - 20mins Monkey Testing with Xamarin Darmaine Cruz

Mobile Apps! Continuous Integration! Automation Testing! Let’s join the bandwagon! With all these buzzwords and hype about IoT, Mobile Apps, and Continuous integration, how can they actually benefit teams in real life?

This session will highlight AGL’s Mobile App Automation Testing journey, using Xamarin Test Cloud. Just like every development team, we wanted to move faster, be more efficient, and have less manual and more automated tests. But by doing so, there were many challenges along the way.

This is a story about:

  • How our team created our own library to record and utilise mock data
  • Decoupled our automated tests from a beast backend
  • Refactored our whole automation testing code-base.

And as a result, here we are - running nightly automation for our mobile app with clean, extensible code, written by developers in a cross-functional team.

Orange (B215) - 20mins Web accessibility is everyone's job Remya Ramesh

It’s great to keep up to date with readings, meetups, and training, but until you embed accessibility thinking within your project or product delivery process, you’ll struggle to build truly accessible solutions.

Remya is going to share Seamless’s journey in implementing a cross-functional working group and weaving accessibility into their web development process.

Purple (B218) Help Me Help You - Levelling Up Your Juniors More Effectively Caitlin Palmer-Bright <a href="" class="targetBlank"></a>

Are you making the most of your junior developers and interns? Supporting and challenging your juniors to help them reach their potential will pay off for them, you and your whole team.

Hear from a junior developer with a background in education about how you can identify the right level of support and challenge to provide, how to help your juniors become comfortable voicing their opinions, and ways to make the most of the time you have to give.

Yellow (K213) Workshop - Building Embodied Bots (Part 2) Andrew Fisher <a href="" class="targetBlank"></a>

Chatbots are popping up all around us, from those that can order your lunch to those who can retrieve analytics data for your website. Chat or speech is a natural interface for humans as we spend a considerable amount of time within messaging platforms.

But what if your bot could feel the world? How does allowing a bot to have access to sensor data or to directly affect the world change both the human’s style of interaction but also the bot’s understanding of the world around it?

This session will walk you through the basics of building a bot in JS using the Slack API. Once we’ve got something you can talk to we’ll then use the NodeBots stack to give your bot a body that can measure its environment or influence it.

To participate in this workshop you will need to have admin access to a Slack team with a spare integration slot (or a paid account), you will also need to set your environment up for working with hardware. Please review the preparation instructions in the accompanying repo here:

11:45 - 12:00

Foyer Change over

12:00 - 12:45

Aqua (K309) Docker, FROM scratch Aaron Powell <a href="" class="targetBlank"></a>

Docker’s popularity has exploded over the last couple of years, especially in the DevOps space, but unless you’ve spent a lot of time in that area it can be a confusing technology to wrap your head around. So let’s step back and start looking at Docker from, well, FROM scratch (and we’ll understand just what that means).

With minimal starting knowledge of Docker we’ll look into what it is, cover off all the core concepts from images to containers, volumes to networks, and how we can compose environments. We’ll also look at how to use Docker in Dev, not just DevOps and how containers can be useful tools without being something to run production infrastructure on.

Blue (K321) Blockchain: reconciling one block at a time Shashank Kaul, Mital Kakaiya

Blockchain technology will fundamentally change the Internet, and revolutionising all industries as they go along. But what is it, and what does it mean? Where can you use it, and where you shouldn’t? We’ll take you through the basics of blockchain and how Webjet developed blockchain based solution to simplify reconciliation in the travel industry.

Green (B214) Functional Programming Patterns for Mere Mortals Daniel Chambers

Have you ever peeked over the fence into functional programming land and gazed into a seemingly alien landscape of weird symbols and crazily named concepts? Has your curiosity about functional programming been stymied by complicated words and abstractions? If so, this talk is for you.

We’re going to take a practical, example-based journey through complex-sounding but deceptively simple functional patterns such as functors, applicatives and the big bad monad. We’ll see how these patterns work, what they’re for and how they are used to make clean, composable code. We’ll also identify the places where functional patterns are quietly being used in our mainstream day to day languages. By the end of the talk, you will be better equipped to take further steps down the functional programming path of enlightenment.

Orange (B215) Object Recognition with HoloLens Stephen Carter

From modern art to asset management and everything in between, the object recognition market is poised to be worth billions of dollars in coming years. In this presentation, Stephen will introduce you to developing object recognition for HoloLens.

Purple (B218) Going Viral for Fun, not Profit Ben Dechrai <a href="" class="targetBlank"></a>

Going viral hasn’t always been considered good. Whether you’re fighting the common cold, or trying to remove the ILOVEYOU computer worm from your corporate file server, two things are certain: your immune system is based on your gut health, and computers have really poor gut health.

Stopping viruses is hard. The main reason for this is that viruses are really clever. They’ve evolved over time to escape detection. Each previously detected virus allows the next iteration of the virus to become more resillient. The second reason is that your computer’s gut health has to fight every virus, whereas each virus just has to find one immunocompromised system to survive.

Let’s work out how viruses hide. How to they sneak past the checkpoints. How they attach themselves to your system. How they fight detection, and removal. We’ll look at aspects such as self-replication, cryptographic obfuscation, and touch on methods of delivery and infection.

Now that you’re thinking like a virus writer, you can anticipate which areas of your applications need hardening. Just remember, we’re doing it for good, not profit :)

This presentation will feature live demos of writing PHP viruses, and infection of willing targets. The theories apply equally to many languages, so an understanding of PHP is not required.

Junior | Red (K212) - 20mins Crossfit & Coding Skills Mark Brown II <a href="" class="targetBlank"></a>

I know I know, you’re like Crossfit? and Coding? What? Well in my life and experience they aren’t at all that different and in my talk I will discuss the transferable skills that I have found that apply to both.

The focus in my talk is the discussion of soft-skills that I believe that can make you a better engineer and a better Crossfitter (or physical athlete in any capacity).

Subjects that will be discussed include mental fortitude (doing a workout with over 100 reps requires you to fight through when you mind says quit and sometimes we have to push code out on a deadline even when we’re exhausted), tackling complex problems one step at a time (debugging code sometimes requires going one line by one line and doing a heavy snatch in CF requires the same), keeping the long-game in mind (getting to build complex applications does not happen in a day and neither does building up your squat weight), and celebrating the small victories (you built that front-end page as a programmer and today you got your first toes-to-bar).

With this talk I hope to engage people with the concept that rather than compartmentalizing themselves between being a programmer - and then everything else, to see themselves as a holistic being and become more conscious of themselves.

Junior | Red (K212) - 20mins When is a DIV not a DIV? When it's a button Allison Ravenhall <a href="" class="targetBlank"></a>

People with severe vision impairment rely on screen readers to use their computer and mobile phone. If the HTML isn’t semantic, screen readers don’t describe elements correctly and users get stuck. How to make your HTML sing with ARIA markup and make your website work for more visitors.

Yellow (K213) Disrupting the Disruptors with Practical IOT Solutions Geoff Schaller, Chris Schaller <a href="" class="targetBlank"></a>

Populist disruptor IOT solutions have headed down the path of using tiny CPUs or battery powered sensors sending tiny scraps of data through LoraWAN solutions. They claim to be remaking the AgTech landscape in particular. But in the Ag Tech space involving monitoring hot houses, irrigation systems or cool room complexes, there are tons of sensors, often streaming kilobits per hour per sensor and many of them interconnected.

So how do you build low cost solutions for the client that has affordable bandwidth and can still yield trending data to intelligent dashboards? We’ll show you one such solution vertical using a Microsoft stack: OS to cloud. Using a live prototype, we will show you that it is easy to remotely configure and manage data flows in real time with Raspberry Pi3 devices and Microsoft’s IoT Azure Suite.

In addition, we will explain how to use 4G as a coms pipe, yet keeping the costs down to an acceptable level. We will play with the sensors in the session and review the code blocks that deal with the data flow. If you want to learn how to add real data value to IOT solutions, this session is a must.

12:45 - 13:45

Foyer Lunch

13:45 - 14:30

Aqua (K309) Practical Machine Learning for the average Joe developer Mahdi Hasheminejad

From smart recommendation systems to self driving cars, everyone is talking about how machine learning will change our future. Most developers think that in order to use machine learning in real-world applications, they need a group of data scientists [with PhD] and a huge budget for all the research and of course all the GPUs! However, you’ll be surprised [I know I was] to know how much you can do with just a basic understanding of the main algorithms and cloud services or modern machine learning libraries. In this talk, we’ll briefly review basic concepts and then use that knowledge to build our own deep neural network to identify objects in the image, train it and build a mobile app to use the trained model, all in less than an hour.

Blue (K321) Stop Mocking – start testing. Raphael Haddad <a href="" class="targetBlank"></a>

How much value do your automated tests really provide? I will demonstrate common and regular pitfalls in automated testing. Namely, that of mis-defining what a ‘unit’ is and disregard for integration tests. Among other things I will also demonstrate how stale tests – be they failing or passing are a problem as well.

Testing is a good thing, testing a lot for the sake of it is NOT. Stop mocking and actually start testing to provide the highest amount of value in your application with the least amount of code.

Green (B214) An introvert's guide to influencing people and being recognised Mahesh Krishnan <a href="" class="targetBlank"></a>

Developers are generally classified as being introverts by nature. What about you? Are you an introvert? Have you been constantly told to change, to speak up, and be heard to be successful? What if it is against your nature? What if you liked to sit in your quiet corner and let your work do all the talking? Can you still influence people? Can you succeed in a workplace filled with chest thumping extroverts ??

Many introverts (like Tim Cook) have succeeded in a world filled with extroverts (like Steve Jobs). You could very well be one of them. In this session, Mahesh Krishnan talks about how introverts can leverage on what they are already good at, and use it to their advantage to influence people, and be recognized.

Orange (B215) Unit testing: are you making a Mock<ery>? Michelle Gleeson

Refactoring and cleaning our code is a must if we want to stay productive, but when the test suite becomes flaky and constantly breaks it can quickly end up rotting in the too hard basket. This is a practical example of how to unit test the behaviours of your dotnet core WebApi in memory at its system boundaries : using less mocks, making your test suite more trust worthy and your production code a dream to maintain

Purple (B218) What modern DevOps looks like today Danijel Malik <a href="" class="targetBlank"></a>

Modern DevOps is a highway to greater business value and it works cross-platform. Automated deployments solved a handover problem, Application Monitoring Platforms closed the feedback and crash reporting gap, and containers made the “works on my machine” stereotype real. Next mission: automated environments. In this session, Danijel will start by identifying the common bad practices to give you some quick wins. His experience starts from the smallest businesses and extends to the largest businesses including some of the largest banks. You will learn why Zero Based Infrastructure is the next step of a DevOps evolution, why Cloud is your best friend, and how to integrate this approach back into your deployment pipeline. You will walk away with a solid understanding of what Infrastructure as Code is and the main advantages, leaving you with nothing to worry about but your code.

Junior | Red (K212) Git. What the **** is it doing anyway? Erin Zimmer

While we can all agree that git is an incredibly useful collaboration tool, it’s also quite a complicated one. It can be tempting to treat git commands a bit like magic spells - if you type this string of words, then that thing happens, but it’s not really obvious why.

This talk is going to demystify all that. We’ll have a look under git’s covers and see how it organises itself and tracks your changes, and what actually happens when you stage and commit code. We won’t be going through a list of commands memorising syntax. Instead, we’ll be concentrating on the basic concepts that git operates on - so at least when it doesn’t do what you want, you’ll know why!

Yellow (K213) Mindfulness & Meditation 101 Alison Ritchie <a href="" class="targetBlank"></a>

In this session Alison Ritchie will take you through a practical session on mindfulness and meditation in daily life. The practice, the benefits and the pitfalls.

This session is designed to be accessible to everyone. Alison will introduce meditation and mindfulness at a very comfortable level so that it is manageable, and possible to fit into your daily schedule. Offering a solid foundation and simple techniques to those who are brand new to meditation, and refinement and integrity to those with an established practice.

Alison has been teaching yoga and meditative practices for over 10 years. With over 4000 hours of teaching experience she teaches by drawing on her own direct experience of dedicated practice.

14:30 - 15:00

Foyer Afternoon Tea

15:00 - 15:45

Aqua (K309) Old man yells about REST JT

It’s 2017 and everyone’s claiming their API is RESTful this, and RESTful that. All REST, all the time.

I ask them: “What does REST mean to you?”, they answer excitedly, “We use Post AS WELL AS Get aaaaand we serialise data to JSON.” I cry myself to sleep that night.

Come join me for what may be a talk, a lecture, a rant or possibly even the very public decline in to total madness as we discuss some real world lessons learned about: Why REST is more than just HTTP Verbs. Resource modelling. Why your front-end team will buy you cake if you implement HATEOAS. How to retrofit hypermedia to your existing API, and how does all of this tie together with fancy buzzwords the youth of today are using like “Microservices” and “Backends for Frontends”.

Blue (K321) Building Single Page Applications with ASP.NET Core Jason Taylor <a href="" class="targetBlank"></a>

In this talk, we’ll look at using ASP.NET Core JavaScript Services to build single page applications using Angular, Aurelia, Knockout, React, React+Redux or Vue. Using this approach you can develop on Windows, Mac, or Linux using your preferred source code editor. I’ll demonstrate server-side prerendering, webpack dev middleware, hot module replacement (HMR), efficient production builds and much more. You will walk away ready to create single page applications using your favourite client-side framework and ASP.NET Core.

Green (B214) Graph Databases - what you need to know Joel Gallagher

With the rise of Big Data & social networks, traditional Relational Databases have reached the limits of their abilities to handle inter-connected entities.

As a result, Graph databases have become more popular, with the likes of Microsoft and GitHub recently offering Graph solutions.

This talk will explain the theory behind Graph databases, when (and when not) to use them, and then demonstrate their power using Neo4j, one of the more popular graph databases.

Orange (B215) Excellent Teams and How to Build Them Amanda Dean

Ever wondered why some teams work well together and why some don’t, even when they have great people on them? Ever asked what the difference between management and leadership is?

After attending this session, you will have an understanding of servant leadership and psychological safety and how you can apply these to your teams, as well as some experience based thoughts on recruitment to find great people.

Purple (B218) React/Redux - What you should know before getting started Shiran Ginige <a href="" class="targetBlank"></a>

Redux seems to be the popular choice when it comes to application state management with React. While doing a “TODO Application” is pretty straightforward, it could get tricky when managing a complex application with it. We have been using it for over 8 months in a large scale application and I will be sharing some of our experiences along the way.

  • React/Redux basics
  • What worked best for us
  • What are some of the difficulties we faced
  • What tools, frameworks worked best for us

Yellow (K213) Depression - Software developer strain Igor Gorelik <a href="" class="targetBlank"></a>

Everyone heard about depression. But most of us are sure that this won’t happen to us. As we are strong and, as software developers, we are very logical. And depression is illogical. Right? It depends. Come to this session to hear some facts about depression, listen about my personal experience, and, the most important, what you can do about it.

15:45 - 16:00

Foyer Change over

16:00 - 16:45

Locknote | Aqua (K309) Design Thinking is awesome Sarah Roocroft <a href="" class="targetBlank"></a>

You know what is even more awesome? Design Thinking + Creative Thinking + Computational Thinking + Conscious Thinking + Positive Thinking. In this talk, Sarah Roocroft a qualified Hypnotherapist, Design Thinking Coach and NLP Master will explore design thinking for design and complex problem solving, states of consciousness and the neuroscience of creativity, the secret sauce is within.

With a passion for innovation and an insatiable curiosity about life, Sarah is a creative curator and an energetic entrepreneur - responsible for igniting awe, wonder, conversation and connection amongst more than 2000 Australian professionals each year.

After a bout of anxiety and a suspected mini stroke, Sarah discovered meditation and mindfulness, and has been experimenting with ways to tap her brain’s capacity and capability for wellness and productivity since.

Sarah worked at Commonwealth Bank for over seven years, during which she dreamt up the vision for Wired for Wonder, Australia’s most innovative event series and worked as one of the first Intrapreneurs in the business. She recently founded The Wonder Tribe, a creative consultancy to work with big businesses to unleash innovative thinking, wonder and curiosity at scale.

Sarah is also founder of Sienna Baby, a baby shoe company inspired by her incredible girls, is an advocate for equality, radical inclusion and flexible working and has a Bachelor of Business from Monash University and is a qualified Neuro- linguistic programming practitioner, Design Thinker, Reiki Master and hypnotherapist. She is writing her first book ‘The Wonder Mindset’ and speaks around Australia on creativity, business, family, wonder, productivity, the future of work, mindsets and more.

16:45 - 17:00

Aqua (K309) Giveaways and wrap-up

Next EventSat Aug 12, 2017

  • One Day
  • Full Catered
  • Industry-leading Presenters
  • Only $49

Important Dates

Friday May 19

09:00 Call for content opens

Saturday June 10

10:00 Ticket Wave 1 opens

Monday June 19

12:00 Ticket wave 2 opens

Monday June 19

18:00 Call for content closes

Tuesday June 20

10:00 Voting opens

Thursday June 29

10:00 Voting closes

Friday July 7

09:00 Agenda Published

DDD Melbourne DDD Melbourne DDD Melbourne DDD Melbourne

Platinum Partner


Gold Sponsors

A Cloud Guru Auth0 BuzzConf DevExpress Kiandra IT Microsoft MYOB Nintex

Silver Sponsors

Car Sales NDC Sydney Octopus Deploy Progress

Developer Recharge (Coffee) by: Drawboard Ladies Breakfast by: VETtrak

Community Partners

DDD Perth DDD Sydney Humanitarian Toolbox JuniorDev
Aspose Pluralsight Seq
DDD By Night

Free evening event.

Find Out More