Current status: Planning 2017

DDD Sydney

DDD Sydney is a non profit community event run by developers, for developers & will be held on 15th July 2017


Below are the sessions submitted (30 sessions so far)

Note we manually approve all entries so dont worry if you have just submitted a session and it is not appearing yet:

Create a Consistent, Repeatable and Dependable DevOps process using FAKE

A corner stone of any solution is its build and release process. In this talk, I will demo why developers should use FAKE to build their DevOps process.
There are many build / CI servers out there, and there are even more options for scripting something. However, coming up with something that can be adopted by everybody in the team, easy to use, and dependable, can be challenging. FAKE makes this a lot easier, especially when you have different environments, varying build agents (Windows/Mac/Linux), and multiple challenging build steps. I will show how FAKE could be used to simplify any build process, and I will demo parts of my real world DevOps process.

Working smarter, not harder: automating the pain out of open-source maintenance

Maintaining open-source software can be a complex and time-intensive task. In today's world of open-source maintainers often being restricted to their free time, how do we maximise the time developers can spend delivering features and minimise the time spent on chores and project maintenance?

This talk will be delivering a brief summary of using automation, testing, and release software to simplify and streamline maintaining open-source projects. Using Cake (C# Make) as a case study, this presentation includes both high-level guidelines and a practical guide to using a combination of process, documentation, automation and community engagement to reduce the burden on project maintainers and improve project quality.

This talk is especially valuable to open-source project maintainers but will be of value to anyone involved in the open-source community at any level. Maintainers will understand how to improve efficiency and rely on automation to make maintenance easier; contributors will learn how to make maintenance and review easier, getting features merged faster.

AutoFac and the art of failing fast

AutoFac is a very well known and loved by most as a great IoC container. Like other IoC containers, it could bring some challenges in ensuring registrations are done properly and in the way we expect them. Most developers would admit that they have had some RunTime issues when updating something and forgetting to update the IoC registration. And many other developers would not even know that their apps were memory-leaking because of the way they have used AutoFac.
In this talk, I will show how this could be avoided and how we can build a robust safety net to ensure that it will never happen again.
I will share what we are doing to ensure that we fail fast and we shorten that feedback loop so that we do not have to be embarrassed about pushing something that does not work, or cause our apps to crash due to memory leaks.

Graphically Unnerving - The story behind the pixel

It's 2017 and just about everything is sporting photorealistic real time rendering.
How does this magic work and how did we get here?
Join Luke as he takes a tour of some of the cool technology and interesting insights that lead up to our day wonderland of digital eye candy.

React Native Better Than Native

React Native allows developers to create native cross-platform using JavaScript, or really anything that will compile to JS C#, TypeScript, or even F#. But why would you use React Native? How run-time typed language like JavaScript be a better choice for developing apps than say, Swift, Java, Kotlin, C# ( Xamarin ) or C++ all compile time static type checked languages. Firstly is just that, there is no need for a compile step, React Native can update the JS without having to reload compile and replace the previous application. Compiling an app everytime can take a long time for a small project this might be 1-5min, but larger apps can easily take as long as 45 minutes or more to build a single app.

In this talk, we will explore how features like hot code reloading allow for much faster edit and run cycles, how you can use tools like Flow or TypeScript to add type safety without incurring the long compile times found in more native methods. To Prove the how simple and fast React Native is to builds apps we will create a simple app live on stage. To top it all off, you can even embed React into existing Native Apps, avoiding the need for total rewrite.

Chatbots explained

Apps are dying, and bots are taking over. It is clear to everyone that interacting with a bot in messaging apps is way more convenient than downloading a new app.
For years human needed to understand computers and learn how to use them to get the result they wanted. Nowadays, this model has been flipped and computers are trying to understand human conversations.
In this session Microsoft Technical Evangelist Azadeh will walk you through how to build a smart chatbot by leveraging from Microsoft bot framework, Luis and Microsoft cognitive services.
Talk is designed for .Net developers but the majority of the talk is language agnostic and you can apply what you’ve learnt in node.js or any other programming language.

Tags: Machine Learning, Web, Architecture , Cloud, .Net, AI, Cognitive Services, Luis, Bot

Realm the NoSQL of mobile

SQLite is the default database that most developers choose when creating a mobile application. SQLite is not without, its challenges. Syncing data, Threading, object mapping, transactions, and data change notifications. Some libraries can help manage some of these difficulties, but they often tend only to focus a single problem, like object mapping or transaction control. In this talk, I will introduce Realm, an alternative persistence engine to SQLite.

Realm addresses the challenges often found in SQLite and brings a new method for storing and accessing data to the mobile landscape. Realm also brings a distributed sync mechanism that makes building offline-first application safe and practical.

The presentation in broken into four sections. How Realm compares with SQLite, How to model data in Realm, how to use Realm in a simple application, and how Realm handles Threading. The first section is a few slide introducing Realm, what it is and how it compares to SQLite in style and performance. The second section will continue the slides with details on how to model data and relations between objects; Realm does not have joins like SQLite, so this section will go into some detail on how to model related data. The third section will use a simple ToDo application to show how easy Realm can be to use to query data. The last section will use slides again to talk about Realms threading model, and how you can update the database from a background thread and sync with the UI.

MassTransit & EDA on top of Azure, the scale you have been looking for.

Scaling any application can be challenging although Cloud computing has made this somewhat easier. However, there are still many challenges that need to be
addressed in terms of how the system would cope when there is higher load? How much cost will that add? and how can we optimise the utilisation of our infrastructure. MassTransit is a great lightweight messaging framework, which we use extensively on top of Azure Service Bus to handle massive loads using minimal Azure infrastructure. Our current architecture have been in production for sometime now, and it has proven a great success. We can handle massive loads of IoT ingress in almost real-time.
In this talk, I will go through the context and challenges that we face in handling massive loads, and how we came to this design. I will share with you the architecture design and the building blocks of our successful recipe for scalability. And of course how can we have a good talk without a few demos :)

Meaningful metrics. Bridging the gap between developers, managers and users

The DDD community, focuses on technical excellence but how technical excellence, the best and the brightest technology an/or software pattern meets the needs of managers and users? How can technical excellence can support the decision to move to a new platform ? What's in for the guys that are paying? Why do we need to rewrite a system in Java/.Net when we can simply add more functionality in the COBOL code. what is a god metric: KLOC, Cyclomatic complexity, maintainability index, function points, story points, ping pong balls, slices of pizza or the number of likes? Is there a way to compare apples with oranges? yes there is. In one of the (real) examples that will be presented we compared Java with COOLGEN and Java lost by 1:7 in terms of productivity and cost. Hard to swallow? I bet it is.

Putting the scalabiliy of Azure IoT hub and Azure service bus into test

At Zen Ecosystems, we have a massive number of IoT devices (thermostats) that power smart homes. These devices send data in massive volume, which needs to be ingested, processed, actioned, and used to generate some reports. This zen engine, which lives in Azure receives this data not only in massive scale but at rapid speed too. Zen uses this data to improve energy efficiency and reduce the bills. Thus, the data needs to be acted upon in realtime. I have been involved as the Technical Lead in building the zen thermostat, and it's been a hell of a journey. In this talk, I will go through our real world scenario of building an IoT system that can do the job and scale to meet its demands. I will take you through the challenges, and there are many on the IoT device and on the cloud. Then, I would talk about the decisions we made to solve these challenges. I will then take you through a demo of how zen is working in production and show you some of the real world traffic that we get and how we use that.

File >> New >> Bot

Do you ever want to start playing with Bots but think it is too hard?
Let me help you.

In that talk, I will show how simple is to write a Bot with the support of the BotFramework.

Let's understand what a Bot, BotBuilder, BotConnector, LUIS and other technologies which enrich the user experience.

After this presentation, you will be able to start hacking your Bot and deploy it to Facebook, Slack and Skype with easy.

Making cross-platform builds a piece of Cake

This session will be an in-depth dive into using Cake (C# Make) to automate, orchestrate and supercharge your builds.

During the session I will be covering getting started with Cake, putting together your first build script and how to take your builds to the next level including build, test, packaging, publishing and deployment across any platform.

I'll also be outlining how to integrate Cake with your favourite editors, tools, cloud platforms and CI providers, across Windows, macOS and Linux! From Visual Studio to Azure, AppVeyor to Yeoman, Cake makes it easy to automate and control your builds, all with the full power of C# and .NET!

This session will include simple demos to go from a basic .NET solution to a complete cross-platform CI and CD pipeline using a single Cake script.

Putting the Fun back in Functional Programming

Typed languages get a bad rap. Often thought of as stodgy, ivory tower-esque or just plain not fun. This talk shows how to put the fun back in functional programming, building a multi-voice synthesiser in the browser using functional programming concepts.

With a very light introduction to music theory, and a small walk through the syntax of Reason (a new language based on OCaml), we build up in stages a synthesiser along with a beautiful syntax for writing music that will give clarity both to some of the FP techniques used, but to the nature of music and audio.

Moving out from development. A Project manager's my advice, for what it's worth.

Any developer strive to perfection, we learn and lean and learn, new technologies, new frameworks, new delivery frameworks. We are (the most) important part of the team. Some of us at some point will reach the end of the technical journey: the top dog in the development team. And yet there is a guy that tell us what to do (and get paid more than us): the Project Manager. Naturally we see that role as the next step in our career and when the opportunity comes we jump. Most of the time we jump without a parachute and there is no way back. We have to stay in a role that we don't like.
If you are contemplating to become a (real) project Manager come and see this presentation.

Building security at scale: making DevOps less terrible

DevOps allows development teams to build faster, release more often and manage operations on the fly! It also allows developers to ship wildly insecure products and skip over the most basic information security principles in the name of agility!

In this talk, I will be exploring the pitfalls of DevOps from a security point of view and looking at the common mistakes that development teams make that leads to security bugs. This will include every stage of the development process from code to deployment.

Additionally, I will be looking at the many ways you can quickly and easily improve the security standing of your codebase without sacrificing the agility and rapid release cadence that businesses and managers have come to expect from “DevOps teams”.

Finally, I will provide a brief insight into how to move your team from DevOps to SecDevOps, integrating information and product security into every layer of your development team and organisation, for the best results, all without compromising your development team’s trademark agility.

Building Serverless Integration Solutions with Azure Logic Apps

Organisations with a digital strategy require, more than ever before, to implement integration solutions to interconnect existing systems with best-of-breed cloud apps, mobile apps, microservices, and IoT solutions. Microsoft Azure Logic Apps is a rich, robust and fully-managed “serverless” Integration-Platform-as-a-Service (iPaaS) that enable us to build robust integration solutions. In this presentation, Paco will go through the capabilities of Logic Apps and demonstrate how to build “serverless” integration solutions based on this Azure offering.

Xamarin Test Cloud

Testing is hard. Mobile Testing is harder! You might think testing for mobile is as simple as "Does it work on iOS and Android?" Imagine trying to test your application to all those form factors, OS versions and configurations too.

In this session, you will learn how you can leverage the Xamarin Test Cloud platform to automate some of your mobile testing scenarios. Regardless whether you've written your application in Native iOS and Android, Xamarin, React, you can simulate your application to 3000+ (physical) mobile devices. It saves you the costs and time of buying all those hardware and doing repetitive testing tasks during integration.

DevOps? Continuous Integration? No problem! This session will also give an overview how you can integrate Test Cloud as part of your build pipeline.

Resilience in micro-service world - Mad Max style

How do we define "service resilience" in a micro-service oriented architecture?

When service health status is depended on other services. And, your code are no longer the only factor of keeping your service running as "usual", can we still ensure its resilience?

At Domain, we built a service that is self-aware, self-healing, and re-playable. It uses Kinesis + actor model, processing millions of user activities everyday in near real-time.

By intentionally designed a fragile component as part of the solution architecture. When depending APIs or datastore having difficulties. Failing fast component protects the core section of our service from being burnt. Service also aware when depending services coming back online, and replays events from where it left off.

A demo sample code is available, and here is the blog post I wrote on the topic:

VR, AR and MR are cool! ... but now what?

Devices the HoloLens, Oculus Rift and Vive have captured the public's imagination and seemingly just about everyone is desperate to jump on the bandwagon of coolness.
The catch is that it can be really hard to spot exciting or productive uses for such technologies in one's own business, community or home.
Join Luke as he talks through some of the ways he's been helping people find their inner cool 3D app.

The disturbing world of game dev

With the popularity of Virtual, Augmented and Merged Reality on the rise, a lot of developers suddenly find themselves wanting or needing to write for such devices... but there's catch!
Instead of using regular app creation tools, these devices seem to warrant the use of game creation tools such as Unity 3D instead.
Come discover with Luke the oddities that separate game development from regular app development, what's good, what's bad and where to get started in this maze of vaguely familiar yet oh so foreign concepts.

Docker, Linux, Azure AppService, and even SonarQube

Windows Azure Linux AppService allows you to easily host docker containers in the cloud without all that container orchestration rubbish. This talk will run you through Linux AppService on Azure, with in built, custom and DockerHub images. We will also take it one step further and create an ARM template to construct a fully working SonarQube image running in a Linux AppService as a container, connecting to postgres database, also running as a docker container on a Linux VM, all in one, magic, ARM template. Let the demo fail commence.

Microservices UI Composition

There's a lot of buzz around designing your Microservices on the backend, but surprisingly there's very little content on how things should be done on the frontend. This talk is about challenges you face when creating a UI for your Microservices and need to ensure service boundaries are respected while the code is still maintainable.

Introducing UI for UWP

UI for UWP is an open source suite of 20+ UI controls for Universal Windows Platform (UWP). The suite contains controls that address common UI requirements in line-of-business (LOB) applications. These include data management (DataForm), scheduling (Calendar), navigation (RadialMenu), data visualization (Chart), and more. In this demo-heavy and action-packed session, you'll see UI for UWP in-action and learn how to use it in your UWP applications.

Attack of the mutants

Code without tests is code that is going to sneak up behind you while you’re texting on your phone, put glue in your hair and steal your lucky horseshoe from your bag. Evil! But how can you find those dastardly lines? Traditionally we’ve used test coverage metrics (e.g. Istanbul) to track down those villains but coverage has a lot of gaps. A test can execute 100% of code without performing any assertions, giving you a false sense of security.

What's the solution then? Fight back against those villains by unleashing mutants! Don't worry, you don't have to drink radioactive coolaid, we're talking about mutant testing. It involves using a tool like StrykerJS to programatically insert bugs (mutants) into your code and check whether the tests catch them.

Having 100% test coverage is a noble goal but ultimately not very useful as it says nothing about the test suite's ability to catch bugs. On the other hand, having a 100% mutant identification score is a big deal. It means that your assertions can effectively pick up most potential bugs.

Next time your manager asks for a risk analysis of the company's test suite, you'll know what to do: call in the mutants!

Microservices Management using Consul

You have designed and deployed your application using Microservices patterns and deployed to production but it won't take too long to realize managing tens, hundred or even thousand instances of services manually can quickly become a nightmare. How do you make sure your services are healthy? You do you do load balancing? Does your service rely on another service? How do you do service discoveries locally, let alone acorss multi-data centers?

Come to my talk and I'll show you how this can be done relatively easily using Consul.

Computers have feelings too!

Well not quite, but they can detect them. This talk will explore Microsoft Cognitive Services in Azure. We'll take a look at the offerings overall, and then take a deeper look into specifics such as Sentiment analysis, Computer vision (image recognition) and Emotion detection.
We will look at a fluent API that can make consumption of these services quite easy and even look at an example to detect the sentiment of your email, hopefully without any tears.

How Docker improved the way we build and ship software

I have always pushed for parity between the Production and Development environments, and the environments in between, to provide confidence in deploying new software and to reduce cycle times.

For a long time this was a challenge which became easier over time with the introduction of virtual machines, Continuous Integration systems, automated deployment, and many other tools and techniques.

However, with containerisation popularised by Docker and the wider container ecosystem, the ease and reliability of shipping new software to Production consistently has leapt forward significantly.

I will look at how our company's development workflow has evolved toward a Docker-based model for all our projects, what that model looks like, and the benefits it has reaped.

The API Economy: Publishing APIs using Azure API Management

We will learn how to publish APIs using Azure API Management, manage and monitor their consumption, and how to protect and secure the back-end systems.
We will also learn how to bring a legacy SOAP API to the REST of the modern world without refactoring or writing more code.

Azure API Management can orchestrate different APIs together and create real-time integration between on-premise, legacy systems and cloud platforms and apps.
It offers a developer portal for publishing, documenting and overseeing APIs in a secure, scalable environment.

A dilettante's guide to Web Components

Late last year V1 of the Web Components specs was released, but in the face of frameworks such as Angular and ReactJS is it too little, too late or is it an idea whose time has come?

In this talk we will take a step back from the precipice and review what Web Components actually are, what they offer and what it takes to write one from scratch. From there we will take a brief tour of Polymer, one of the main libraries that has hitched it's wagon to the Web Component paradigm.

Finally we will take a critical look at where Web Components sit in the broader web development eco-system both strengths and weaknesses.

Using Docker to supercharge .NET development on Linux

With the release of .NET Core, the long-awaited dream of running .NET natively on Linux is finally here! Even better, .NET Core has arrived just in time for the coming container revolution!

In this talk I will be covering getting started with .NET Core on Linux, including a progressive approach to introducing Docker starting with CLI and tooling all the way up to a fully containerised application in a short, but practical development scenario.

In this session, we will get started with a basic Hello, World! in C# on a Linux host and demonstrate how Docker can be used not just in production, but also during development to not just simplify the Linux development experience, but also to enable powerful new capabilities including cross-platform scripting, seamless scaling, reproducible builds and simple testing.