Current status: Counting down the days

DDD Sydney

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

Sessions

Below are the sessions submitted (56 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.


Serverless with Azure Functions

Over the last decade, we have seen many technology trends from monolithic applications to microservices and recently the rise of serverless event driven functions.

With Azure Functions, you get an event driven serverless compute, Scale based on demand and pay only for the resources you consume.

In this session, I will show you how to build, deploy and monitor an azure function written in C# that responds to different events generated from multiple azure services.


Simplified Unit Testing with the Entity Framework Core InMemory Provider

In this talk, we'll look at how using the EF Core InMemory Provider will simplify your unit testing approach. We will discuss the typical approach versus the simplified approach, limitations, and other considerations. You will walk away ready to write simplified unit tests for systems that depend on EF Core.


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.


Automating API testing using Postman

Microservices / web services is not a new buzz word in software world, however the quest for testing it better is the current challenge. As this approach of building software is becoming popular, the need for broader coverage and deeper testing is extremely crucial. In this talk we will Share:
* How do we use Postman + Newman to automate API testing.
* How automating API tests at different layers helped us gain confidence in the stability of the system
* And how this helped free up QA to do exploratory testing of the system instead of being a human smoke check.


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.


Case Study: How Serverless Applications Have Helped Enterprise Turn Their ITSM More Agile

The term, 'Serverless' is not a buzz any longer. Many enterprises actively adopt serverless applications into their business cases. In addition, Those serverless applications don't have to lock in a certain vendor at all. Why bother? From the business perspective, as long as their services are up and running, they are happy.


In this session,
Justin will talk about a case study that he(and / or company he works for) delivered a few serverless applications to his customer, using Azure Functions, Azure Logic Apps and AWS Lambda.He will also show that those applications helped the customer save a lot of time and resources for their ITSM infrastructure.He will also share a few tips to consider for developing serverless applications.


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.


Coming to grips with Progressive Web Apps

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.


What's in the Box? Docker Delight with Habitat

With the rush to move everything to containers, operational concerns are often overlooked. The open source Habitat project (https://habitat.sh) wants to make it easier to build, manage and deploy applications into containers; whether it's on Docker, appc or Windows Server Containers. Habitat is a system for describing, building and packaging applications as well as a process supervisor that manages runtime configuration. Habitat answers the question "what's in the box?" and complements container orchestrators like ECS, Kubernetes and Docker Swarm while providing a path for bringing new and legacy applications into modern environments (not just containers!). This session will provide an overview of Habitat and a demonstration of building and packaging multi-node applications with Docker.


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


Project forecasting using Monte Carlo method

This talk is about using Monte Carlo simulations for creating project forecasts. I was using this method when delivering solutions for a financial institution undergoing a transformation towards Agile processes. I would like to share my experiences about how it helped me to educate Product Owner and stakeholders on differences between forecasts and commitments, keep stakeholders involved in backlog prioritization and provide a forecast that can be easily turned into a release plan.


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.


What a modern DevOps looks like today

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, I 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.


Developing and Deploying Databases

The session will highlight some of the most common problems teams face when dealing with databases; such as how to share them between team members; deploy them and run unit, integration and regression testing.


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.


JS Type-Checking Tools and Techniques

It's easy to make mistakes when writing code. We have some commonly-used tools to help us with this, with tests and linters, but there's more out there. Tools like Flow (http://flow.org/) and TypeScript (http://typescriptlang.org/) can be used to have the computer help us check our code, and can act as another protective barrier to bugs and blunders.

We'll explore types and type-checking with Flow. You'll see common bugs it catches and, step-by-step, will learn both how to use it, and how to reduce the number of tests you need to write. We'll then walk through more advanced techniques, using unions, wrappers, gatekeepers, phantoms, and other things besides to build a small robust app.

To enjoy this talk, you'll ideally have an intermediate-level understanding of JavaScript. We'll start easy with types and Flow, but will ramp it up as we go to keep things interesting if you're a more experienced user of either.

(Though this session uses Flow for its examples, but pretty much everything will be directly transferable to TypeScript with little effort.)


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.


TypeScript 2.3, The What, The Why, And The How!

Have you started working with TypeScript 2.x yet? Have you started working with TypeScript at all?

In this session, we go through the reason TypeScript is getting so much love nowadays, and some of the super awesome features that became available in TypeScript 2.0 throughout 2.3.

We also go through how you can easily get up with running with TypeScript for a web application, a node application, or a particular web framework like Angular or (yes), React.


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.


Do not pass Go

At the company where I work, we've built different systems with a blend of C#, Node.js, Ruby, and far too much script-glue but we're now adopting Golang as our preferred language moving forward.

I'll explain why we used the languages we did, the challenges that this presented, and how we came to choose Golang over these and some other options. I'll look at the benefits Golang is now realising and do a brief lap around the Go language itself and its tooling and development workflow.


DevSec Delight with Compliance as Code

For too long audits and security reviews have been seen as resistant or even blocking the frequent release of software. Auditors require access to static systems and environments, which would seem to make continuous delivery impossible. Too frequently audits are a fire drill sampling of the current state and temporary fixes are put in place to appease the compliance audit without being integrated into future releases.
What if auditing, compliance, and security could be fully integrated into continuous integration and continuous delivery pipelines? What if we automated our compliance policies so they could be "shifted left" as part of the application and infrastructure lifecycle? This session will discuss real-world examples of how to translate security and compliance requirements into software and make them a proactive part of the software-delivery process. We can decrease risk by defining compliance rules as code and making them a part of the standard continuous delivery workflow.


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 + Akka.net 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: https://medium.com/zdjohn/making-resilient-service-using-akka-net-5434e28f87c8


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.


Who's Using Your Platform?

Build mobile applications is so yesterday! Everyone's building a platform that can be exposed to all manner of interfaces such as mobile and desktop applications, responsive web sites and the recent addition of chatbots. But how do you know who's using your platform? How do you control what they can access? This session looks at how you can secure access to your platform using a combination of authentication and authorisation technologies such as Azure Active Directory (ADAL and MSAL, and Azure AD B2C), Graph API, Google and Facebook APIs.


The Decentralised web (true Web 3.0)

TL;DR Decentralised web uses Blockchain for logic, IPFS for files. Takes power away from Facebook, etc. and back to the users.

The internet was originally built to be distributed and give the power to anyone to publish content. However the applications and services we use have become increasingly centralised services that are vulnerable to censorship, allow 3rd parties to track us, and remove ownership of content from us to these centralised services (Facebook, Twitter, etc.). It has also lead to a "Digital Amnesia" where content that was created even a year ago are now broken links of history with blog posts and news articles lost forever. Edge networks in remote areas and IoT devices on low powered networks can also have connectivity issues to centralised services.

Advances in cryptography has allowed a future where the "decentralised web" enables us to take back control. IPFS allows decentralised file sharing to enable censor resistant web content delivery, and has archiving built in. Blockchain allows decentralised logic to be executed to power these decentralised apps. Cryptographic functions allow systems to verify information and content. Self-sovereign identity enables us to take back ownership of our privacy. It can also allow local communities to be empowered to be in control of their apps and communication, and not be held hostage to fragile internet links that can be cut.

The future is bright, we can take back control of the web and make it work for us.


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.


A Developer's Guide to Fluent Design

The Windows platform is welcoming in a new era of innovation as it takes on a new design philosophy. Fluent Design is based on the building blocks of Light, Depth, Motion, Material and Scale, and with it applications built for the Windows platform will appear richer and more intuitive to use than ever before.
Ranging from IoT devices, through the range of phones, tablets and laptops, all the way through to new interfaces such as Xbox, Hololens and Surface Hub, the Windows platform needs to accommodate a wide range of display, input and output interfaces. The changes to Windows is occurring in waves with the first taking form with additions such as acrylic material, reveal highlights, connected animations, conscious controls and perspective parallax.
This session will jump into Fluent Design and cover the guiding principles, how they're taking effect in the tools and the components available to developers.


Avoiding death by a thousand containers. Kubernetes to the rescue!

So you packaged your application as a docker container and started enjoying the portability, repeatability and light-weight isolation it brings. That's awesome! Now you want to launch your product and scale it to hundreds or maybe thousands of containers. Only to find that it's much harder than "docker start".
This is when you need the help of a container orchestration framework, and Kubernetes is among the leaders in this area.
In this demo-packed session you'll see how Kubernetes can automate, scale, and manage your container cluster with its infrastructure-as-code approach.
Kubernetes is open source and widely adopted. So what you'll see applies to major cloud providers and on-premises environments as well.


Create Production Ready Angular Applications With Angular CLI

The Angular CLI makes it very easy to create new Angular projects, with so many features built-in, like dev and production builds, tests, lazy loaded routes, linting, and much much more.

In this session Meligy, one of a small team of Angular CLI First Responders team worldwide, shows us what's his real world workflow when using the Angular CLI in serious projects.

The session builds on the experience obtained while helping one of Australia's big 4 banks ship several projects with Angular 2, Angular 4, and the Angular CLI.


Spec Driven Development – API Mocking for Lean App Development – MuleSoft API Manager, Azure API Management & Amazon API Gateway

As a front-end, full-stack and/or mobile app developer, using APIs is inevitable. However, what if those APIs are not yet implemented? Should I wait for back-end developers to complete API implementation? Nah, we don't need to wait for them as long as those API definitions are defined via RAML or Swagger.

In this session, Justin will talk about how beneficial API design-first approach will be, then how API spec is designed and mocked on MuleSoft API Manager, Azure API Management and Amazon API Gateway so that front-end, full-stack and/or mobile app developers can play around until the actual API implementations are done.


JavaScript Testing IS Hard, Let's Make It Easy With Angular

Have you ever written a JavaScript unit test?

In the past, just setting up JS unit test infrastructure was quite a troublesome task, not to mention making it work in your CI build.

And once you are past that, you get to make to make interesting choices like "Which pieces to test?", "What to test inside this piece?", and "How to test this at all?".

Coming from an experience converting several hardcore .NET developers with little JS experience into avid JavaScripters who test "every single piece" in their application, Meligy, from the Angular CLI First Responders team, shows us how the CLI makes it super easy to setup our tests,

But we don't stop there, since we won't spend time setting up testing infrastructure and what not, Meligy will also show us several tricks he and his teams have discovered to make writing tests easy, fun, and more effective (A.K.A. useful tests, which catch real problems).


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.


JavaScript is Awe-Ful

JavaScript is an incredibly powerful language, and thanks to its renaissance, it now has uses that extend beyond the browser.

However, being a language that's extremely accessible, with a shallow learning curve and large userbase, it's the subject of - at times - vitriolic abuse from other language communities.

Yes, JavaScript was created in a very short timeframe, and there are inherent issues with some very early design decisions that can cause some grief to developers. However, as the engine that powers the web, it's able to prove it's versatility and usefulness. So why the hate?

In this talk, we will discuss the history of JavaScript, it's future, and how some it's 'wat's can be avoided in everyday use in other to leverage the power of this universal language. We will also take a short tour through over a dozen other languages and some of their quirks, to prove how no language is without fault.


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.


Building Windows Apps for the Xbox

The Xbox is no longer the domain of hardcore gamers, it's becoming a living room entertainment center. Now, developers building apps for the Universal Windows Platform (UWP) can add the Xbox to the list of target devices. Building for Xbox has a unique set of challenges around design and navigation, controller and keyboard input, media (specifically 4K and HDR support) and content protection (DRM) well as considerations regarding parental control and building a multi-user application. This session will cover designing and developing applications for the Xbox to take full advantage of its features in order to build an engaging application for the living room.


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!


Solving real life problems with machine learning

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


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.


Testing, Testing, Testing! Are Serverless Applications Testable? - Azure Functions & Logic Apps

Testing applications is more than important nowadays. Traditionally, developers perform unit tests and/or integration tests in variety of environments. Now, we see serverless applications. How can we test those applications? That's a trick question.

In this session, Justin will demo how serverless applications, especially Azure Functions and Logic Apps, are written with considering testability. Then he will also show how those apps can be tested in a continuous integration pipeline, with various approach.


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.


"dot new angular" and other ways to marry angular & .NET

Have you ever wondered how easy it is to setup Angular and .NET? It's easier than you think, whether you are talking .NET 4.x, or .NET Core.

In this session, we explore how to get Angular and .NET to work together, what works very nicely, what might need a bit of fiddling, and what are some challenges you might meet in real projects.


Tapping into the wonders of RxJS 5

RxJS, also known as lodash for events, or async magic wand, is a very underutilised tool that can make your JavaScript applications a lot more fun to write.

Being a superior tool, many developers who use RxJS in their applications already (especially Angular) tend to only use a tiny fraction of the features it offer, and to write some very complicated code that can often be replaced by a couple of built-in RxJS operators. Sometimes not fully understanding the tool causes you to have silly bugs like exessive AJAX requests that can be easily avoided if you know which operators to use.

So, this session starts by introducing what RxJS is, why is it super useful, and what are the most important 20% APIs that can serve you very well in more than 80% of your application needs.


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.


ASP.NET MVC with server side react views

This talk will be about how to use React as an ASP.NET MVC view engine on the server side. We will go step by step through setting up the project and talk about how it works.


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.