Proposed Talks for DDD South West 2019

There are currently 74 proposed talks for DDD South West 2019.

How to Steal an Election - Data Science For Evil

by Gary Short

Ever wanted to be the mayor of Soggy Bottom, but you just couldn't get the votes? Well don't despair, in this session, I'll teach you some of the tactics used to steal elections and thwart the the democratic will of the people. If you want to be the next Bond villain, this talk is for you!

Machine Learning Will Solve All Your Problems - Until it Won't, Then What?

by Gary Short

In this talk I'll demonstrate the border of where ML can no longer help you, and what you can do when you stumble onto the part of the ML map that says: "here be dragons!"

Docker and the Microsoft Stack

by Michal Poreba

Are you a Microsoft stack developer (.net, C#, SQL Server) who would love to join the docker revolution, run your services in containers? Most of us do, but what if your serious sysadmin tells you she will not let you run on Linux. Or the grumpy DBA tells you that it's fine, but only as long as you use windows authentication from those containers (which you cannot). That's OK. There is still a lot of fun to be had. Let me show you how.

The Good, The Bad and The Avoidable

by Michal Poreba

Code quality matters! It matters regardless of the language you use. It matters even when according to the language specification (or paradigm) the code quality doesn't matter. Because, even if the computer doesn't care, even if the 'present you' doesn't, the 'future you' do. Let me show you why with examples from a language nobody loves, the T-SQL.

Nailing down distributed workflows with microservices

by Ben Arroyo

Workflows are present in every business. These bring up different challenges such as integration with different systems, long-lived transactions, failure recovery and more. In this session we’ll learn how to address these issues with a distributed, event-driven architecture based on microservices that I’ve been using successfully in the last three years across different projects. We also learn how to implement this architecture with MassTransit and Automatonymous and run it on containers with Kubernetes.

Alerting on production tests

by Jorge Marín

How are you handling alerting while testing in production? How reliable are your alerts? Which channels do you use? This talk focuses on different strategies for alerting and notifying on failures with your production systems. Keep your on-call engineers happy by avoiding false positives.

Dockerdev - A disposable remote development environment

by Jorge Marín

In the cloud era, why don't we take advantage of the cloud also for developing? Stop relying on your hardware and let somebody else take care of that. This talk materializes the idea of using disposable containers in the cloud as remote development environments. It will cover the journey of setting up individual remote development environments for a whole engineering team based on the cloud using containers. Advantages, issues, limitations and more.

Testing in production: Ideas, experiences, limits, roadblocks

by Jorge Marín

Are you afraid of testing in production? Do you test in production? Do you use real data? By definition testing in production is hard. This talk puts together my experience testing in production a large scale system that affects millions of users. Experience, ideas, limits, roadblocks, tips and more.

CI/CD pipeline in real life

by Jorge Marín

Learn how to properly build a CI/CD pipeline, with the software tools of your choice but focusing on the atomic steps. In this session we are going to design a healthy CI/CD pipeline by comparing it to a human supply chain and real human behaviour.

Naming in testing is also hard

by Jorge Marín

Software testing does also experience one of the hardest problems in the software world: naming things. In this session we will try define different testing levels and strategies, giving them an appropriate name based on their function. This will help the whole software testing community referring to things by their name rather than explaining a million times what an integration test means to you or your organisation.

Managing the Conversation Flow within a Bot

by Rabeb Othmani

When it comes to Conversational AI, the interaction between the user and the app should be smooth and effortless. A key to a successful conversational interface is a good conversation flow. Let's see how we can have a good conversation flow using Microsoft Bot Framework and dialogs.

Better the 'dev tool' you know

by Viv Richards

Despite its name, DevTools isn’t just a tool for developers. DevTools contains many tools which can help you in your day to day testing of web applications. Whether you want to know how to put client validation to the test, gain a better understanding of how to identify and debug errors or just simply run audits on your web applications, then this session is for you. Perhaps you’ve heard about DevTools but have never used it? Maybe you’ve used one or two of the tools within a few of the panels but don’t fully understand how some of the tools could help you. Throughout this session I will highlight a handful of useful tools that are available.

Office 365 as a Development Platform

by Dylan Hayes

Office 365 offers a rich and varied development platform which can help create solutions to business problems in record time. I'll be covering why this makes sense, what parts of the platform they are to help you and why you should be considering it for your projects.

Exploring APIs with Postman

by Viv Richards

While some UI testing will always be needed to verify that elements appear on a page and can be interacted with, API tests are much faster and more reliable than UI-based tests and can offer quicker feedback. By pushing tests further down the stack you can gain more confidence in the software you are trying to develop and release, and shorten the feedback loops in order to adapt to change when things don't go quite to plan. Join me in this session to learn how to get started testing APIs using Postman. Whether your totally new to Postman or API testing or you've done a little, in this session I will share how to get started as well as various hints and tips to start to hopefully help you find bugs earlier in the development process, often before the UI has been created.

Building HTTP APIs With Carter

by Richard Tasker

Carter is a library that allows Nancy-esque routing for use with ASP.Net Core. In this session I will introduce you to Carter, an alternative library for building HTTP APIs.

Securing the web with AI

by Callum Whyte

This session explores some interesting and experimental ways that AI could be used to improve security and protect users on the web

Stoicism is a superpower!

by Ceri Newton

A deep dive into stress, how it hampers our best selves when we're trying to work on complex projects - and how / why Stoicism can counteract the effects.

Resilient global applications with Azure Front Door

by Callum Whyte

Using Azure Front Door Service (currently in preview) and related services to add enterprise-grade resilience to a globally distributed application

Cross-platform headless .NET apps

by Callum Whyte

Using "Headless" hosted services and .NET to quickly build cross-platform applications

How else can we c* this up? Planning for failure to allow success

by Ceri Newton

Checklists are all well and good - but what if we were to approach things from the other side, and work out the myriad ways our project is going to fail? What would we discover?

Oops! I did it again... (The increasing complexity of responsibility)

by Ceri Newton

A look at the reasons behind the "stupid" mistakes we make as we progress further in our careers, despite familiarity and increasing technical ability. We'll wander through some case studies from a range of fields where the same problem has been picked up - and what we can do about it.

A Spoonful of Sugar: Harnessing language to achieve team goals

by Ceri Newton

A considered look at the language we use, and ways we can shift HOW we say what we want to say, to achieve better outcomes for ourselves, our teams and our business.

Logic Apps, Cosmos DB, Power BI and more

by Philip Oldale

An overview of some Azure technologies that have emerged in the last few years, their potential applications in the real world and some lessons learned.

It’s not you, it’s not me, it is us.

by Viv Richards & Michal Poręba

Do you even need developers to build quality software? That’s a question nobody really asks. On the other hand, people often question when it is appropriate or necessary for testers, sysadmins, or dbas to get involved. “We don’t need testers, we do TDD”. “We don’t need sysadmins, we do DevOps”. “We don’t need DBAs, we do NoSQL”. And so people with skills essential for delivery of good quality products are alienated from the process, added somewhere at the end to tick some boxes. Join us, a tester and a DBA who went on a quest to find their own places in an agile team, and agile software development process. We have (re)discovered the value of early, cross-functional team collaboration. Let us show you how through cross-functional pairing we can increase the quality of both product and code.

Building a bot with MS Conversation Learner: using a ML driven approach

by Ed Yau

2017's hype and 2018's disappointment. But maybe, just maybe 2019 is the year where our understanding of Conversation UIs and the technology progresses to a point where you can build a bot that is actually useful. That's what MS Conversation Learner promises: a chatbot approach that is ML all the way through - and gets better as it sees more conversations. Still a work in progress, but at least it makes building a bot like it should do, and not just glorified web development!

'Speech & lights' as a User Experience

by Jonathan Brook

As more and more of our world becomes organised by devices with very small screens and voice controls what do we need to do to create a compelling experience and keep users engaged.

DiagnosticSourcery 101

by Mark Rendle

An overview of the System.Diagnostics.DiagnosticSource feature from .NET Core, that also works with .NET Framework and lets you generate and consume metrics, events and activity data across applications and libraries. Includes a demonstration of using InfluxDB and Grafana to demonstrate data storage and dashboard creation.

Solving the Travelling Surveyor problem in .Net using Google OR Tools

by Joel Hammond-Turner

The "Travelling Salesman" problem is a computational classic - but firmly grounded in the real world. In this session I'll discuss how at Landmark we used Google's Open-Source Optimisation & Routing (OR) Tools to generate recommended routes for hundreds of surveyors and thousands of jobs on a daily basis for one of the largest firms in the country. We'll cover the basics of the problem, and some of the classic approaches before moving on to how to use the tools Google OR Tools library. We'll look at some pitfalls and limitations - as well as how we created a fluent API for describing general case routing problems to pass to the Google OR Tools library.

Designing for scale and resilience in the cloud 101

by Frans Lytzen

Learn the basic techniques that most real-world web apps can use to scale better and be more resilient in the cloud - without re-inventing everything.

C# Async Deep Dive

by Frans Lytzen

Azync in .Net doesn't work the way you (probably) think. This session goes under the covers to explain how it works and highlight the pitfalls.

Improving System Resiliency via Chaos Engineering

by Joseph Woodward

In this talk we'll look at how we can harness Chaos Engineering, a discipline pioneered by Netflix, to better understand our systems, their failure modes and how we can use this information to improve system overall resiliency and reliability.

Responsible Animations

by Mike Masey

Animations are becoming an ever more present feature on the web and sometimes it can feel overwhelming with the amount of information you need to take into consideration. Responsible Animations aims to bring many of these concepts together and create a mindset to help improve how you conceptualise, design and develop animations for your projects.

Treating Your Infrastructure As Code: Terraform 101

by Ashley Poole

As a developer, you might dread the thought of being asked to reconfigure servers or deploy new infrastructure but why? Treat your Infrastructure As Code! In this talk, we’ll walk through how you can re-use your skills as a developer and apply those to the the concept of Infrastructure As Code. We’ll also cover the various benefits it can bring such as being able to version your infrastructure just like your application code.

You're the Tech Lead - *you* fix it!

by Joel Hammond-Turner

Over the last couple of years, I've presented 20 tricks and tips that I've found invaluable as a Tech Lead. But in this session, I want to turn things around and look at applying some of those to solving specific issues that are common within many software development teams.

TPL Dataflow - The Best Little Async Library You've Never Heard Of

by Joel Hammond-Turner

From the docs: > The Task Parallel Library (TPL) provides dataflow components to help increase the robustness of concurrency-enabled applications. What it actually does is give you the tools to create in-process async pipelines in a simple, structured manner. And I'm betting that like me (until recently), this is a library you'll never even have heard of. I'll cover the basics - Sources, Targets and Blocks - and how to link them together into useful **asynchronous** and **parallel** pipelines within your programs. We'll handle error conditions, cancellation and how to control the degree of parallelism - with samples that give you a bit more than "Hello World".

Falling down holes for beginners: Getting started in open source

by Alex McAuliffe

Getting started in open source is a daunting experience and most don’t since they feel they have nothing to bring to the party. Using myself as an example I’ll explain how I got into open source, the resources and tools that helped me and how you can too. I’ll show you that anyone can contribute and join the wider open source community!

Zero to Mobile Hero - Intro to Xamarin, Cognitive Services and Azure DevOps

by Luce Carter

Ever dreamed of getting started writing apps for your phones, tablets, TV's, watches etc. but don't know where to start? Ever written in C# or F# and heard about this Xamarin thing for cross-platform mobile development? Ever wanted to throw some machine learning goodness into your apps? This talk will include slides, demos, code samples, live coding and the audience will walk away feeling like they too can create a mobile app in just a few minutes and carry their work around with them in their pocket or backpack!

Kubernetes, Raspberry Pis, and more!

by Dan Clarke

In this session, we'll be installing Kubernetes from scratch on a cluster of Raspberry Pis (yes, real hardware!). Then we'll create a basic ASP.NET Core webapp; RabbitMQ instance; and a subscribing console app to demonstrate how easy it is to spin-up this kind of 'messaging' architecture in Kubernetes. Along the way, I'll explain some of the core concepts and benefits of Docker, Kubernetes, and message queues. This talk is suitable for both those who have never used Docker or Kubernetes before; those who have and are interested in installing Kubernetes on bare-metal; or those who just like Raspberry Pis and shiny things!


by Chester Burbidge

F# contains many language features that can effectively model the domain and cleanly express logic. Structured business applications often include a separate project that contains the majority of the domain logic. In this talk, I plan to show the benefits of writing this project in F#.

F#ll stack development

by Chester Burbidge

This talk explores a interesting set of F# libraries that allow code sharing across the server, browser and cross platform mobile clients.

gRPC and ASP.NET Core 3.0: Letting services talk their own language!

by Steve Gordon

In this session, Steve will introduce gRPC, a modern high-performance RPC framework for inter-service communication. gRPC uses HTTP/2 as its transport protocol and ProtoBuf encoded content for fast, efficient, communication. In this talk, Steve will demonstrate how to define gRPC services and use the MSBuild tooling to code gen an ASP.NET Core 3.0 gRPC server with clients in C# and Node.js.

Solving microservices challenges on the Kubernetes platform

by Shahid Iqbal

This talk introduces a "journey" to microservices and highlights some new problems that are created by adopting such an architecture. We then step through how we can leverage cloud native technologies such as Kubernetes and service meshes such as Istio to try and address some of these new problems

ML.NET for beginners

by Lee Mallon

How do you get started with machine learning as a .NET developer and without a PhD in linear algebra?

Saving the World with IoT

by Tomasz Bartoszewski

TL;DR Watch the presentation, go home and in 10 minutes build your IoT solution. In this talk I will show you how we are using IoT to use more renewable energy.

A selection of short stories where Azure DevOps saved the bacon

by Matteo Emili

Selected real-world experiences on how certain features made my life much easier with Azure DevOps

Seamless high fidelity migrations from Team Foundation Server to Azure DevOps

by Matteo Emili

Session on the edge cases, the gotchas and the experiences of performing migrations from Team Foundation Server towards Azure DevOps Services.

Stop talking DevOps, start talking Continuous Improvement!

by Matteo Emili

How misusing a term drives people to the wrong path - the case of DevOps and Continuous Improvement. Are you doing one or the other?

“The computer says no” – software quality in the DevOps world

by Matteo Emili

Quality is first and foremost these days. You might be able to ship a product but if the overall experience isn't up to the expectation it is likely to become a problem more than an opportunity. There are tools you can use to systematically increase your code quality, let's hear about them.

What did I learn trying to migrate teams from legacy to modern

by Matteo Emili

Session on the psychology behind change and trasformations in the software industry. It's a collection of personal experiences where I faced situations of change within software development teams over my career, and how I overcame these or what I learned from these.

Am I doing deployments right? Advanced deployment patterns in practice

by Matteo Emili

This session is about advanced deployment patterns: Rolling, Blue-Green and even NoDTAP or fluid environments. Are you already doing these? Great - continuous feedback has always been my thing. Never heard of them? You might dramatically improve your deployment experience in an hour.

Turbocharged: Writing High-Performance C# and .NET Code

by Steve Gordon

This talk is for developers wishing to take advantage of the new C# and .NET Core framework features such as Span<T>, Pipelines and ArrayPools. Together we'll take an introductory journey to performance tuning C# code and begin to apply these new features. Join Steve as we turbocharge some C# code!

Dependency Injection in ASP.NET Core

by Steve Gordon

In this session we'll discover the features of the built-in dependency injection container in ASP.NET Core, looking at how to correctly use it to register and resolve services. We'll talk a little about its internals and how to extend it with libraries such as Scrutor or by replacing the container entirely with a container such as Autofac.

Let's Talk HTTP in .NET Core

by Steve Gordon

This session focuses on some of the improvements which have been released in .NET Core and ASP.NET Core 2.1, such as IHttpClientFactory. Steve will identify common HTTP anti-patterns and mistakes and demonstrate how we can refactor existing code to fix them and use the new HttpClientFactory feature.

VUE js in action

by Simone Cuomo

Join me in this interactive session where we are going to uncover the beauty of VueJs by building a full application. This session will provide you a good understanding of this framework, and will cover many different aspect from setup to Unit Test.

The Analytical Engine

by John Stovin

Describing and simulating Charles Babbage's Analytical Engine

GraphQL and Dapper : The quick route to flexible and efficient mobile APIs

by John Stovin

Using GraphQL and Dapper to develop a mobile API

Making a Noise with FSharp

by John Stovin

Live coding audio in FSharp

Reasonable Software

by Ian Johnson

Software should be reasonable, that is, we should be able to reason about the software without holding the entire system in your head. I want to explore the properties of systems that can make them easier to reason about.

A Monolith of Microservices

by Ian Johnson

I will show some of the benefits and some of the drawbacks of both the microservice and monolith application styles. I will show how we can build a monolith of microservices as a better design for a monolith or simply as a stepping stone to a microservice architecture.

SUT does NOT mean a class

by Andrew Chaa

Do you think TDD is dead in 2019? Do you feel like writing tests slows you down? Are you tired of updating tests code even to make them build? “If you find yourself routinely changing existing tests just to make them pass when a new feature is added then your tests are not testing what they should be testing.” from

Why you should consider Web Assembly in your next frontend project

by Håkan Silfvernagel

During the last decades more functionality has been pushed into the client by using the latest JavaScript framework. But what if we could be using native code in the browser in order to run computations faster and reuse backend code in the frontend? Web Assembly can help you achieving this.

How to make a multi-lingual chatbot and use it in your Xamarin Forms application

by Håkan Silfvernagel

In this session I will demonstrate how you can make a chatbot by using the Microsoft Bot Framework together with LUIS (Language Understanding Intelligent Services). The chatbot will be multi-lingual meaning it will adapt in real-time according to the user’s language.

Affective Computing - What is it and why should I care?

by Håkan Silfvernagel

Emotions play an integral role in decision making, cognition, perception, learning and more. Affective computing is a field with the goal of making our computers aware of our emotions to be able to better interact with us. This talk will give an overview of Affective computing and its applications.

The History of AI - what can we learn from the past?

by Håkan Silfvernagel

Nowadays AI is all the hype, but what many might not know is that AI is an established discipline originating from a workshop in the 1950s. In this talk I will present the historical milestones of AI from the originating workshop up until present days.

A more flexible way to store your data with MongoDB

by Kevin Smith

If you've been anywhere near software development, the norm is to store your data in a relational form, but what if there was a different way

No More DTOs, Services, and Managers in your code. Let Objects have meaningful behaviours.

by Andrew Chaa

Do you write DTOs a lot, using classes as only property bags? Do you name every of your service class as manager and service? Do you wonder why your domain objects are so anemic to the point of death? C# (or Java) is an OOP language, and our code is not supposed to be like that. Come and join my talk to discuss how we can make our plain old C# object have meaningful behaviors and express the complex business logic in terms of object.

To be agile from developer's point of view

by Andrew Chaa

Having daily stand-up, SCRUM / Kanban board, and cross-functional team is only the beginning to the journey. Do you divide and conquer in your story breakdown? Do you have to wait till Sprint 3 to do any demo? Do you assign stories to developers? Do you have to implement every detail of a feature to go to next story? If you say "yes" to most of the questions, controversially, you are not developing in agile way. Let me share my journey to agile through challenges and resistance with this talk.

Simplify your code and focus on your features with ASP.NET Core and MediatR

by Jon Hilton

Customers ask for "simple" features and "small changes" to their web applications. And for some reason, these simple requests are anything but. A few hours in you find yourself knee-deep in your application's "architecture", desperately trying to figure out where on earth that one line of code is hiding. But there's an alternative! When you write your code using vertical slices, you can simplify your code base and knock these small changes out of the park (freeing you up to work on more interesting requirements).

Introduction to Data Lakes


With the rise of big data, IOT and event based architectures, drawing benefit from your data has become a first class tenet in system design. In this session I will highlight the benefits, patterns and practices and common pitfalls of a data lake. I will compare data warehouses with data lakes and classic ETL vs modern data management pipelines. I will also cover some example architectures and possibly implementations, specifically in Azure.

Introduction to Databricks


Like big data, then you'll love Azure Databricks. Azure Databricks is an Apache Spark-based PaaS analytics platform. With this platform Microsoft have created a turn key introduction to Spark and big data analytics. In this session I will cover the basic Spark and Databricks architecture and concepts, as well as some of the functional sugar Databricks provides over the plain Spark. In the live demo I will highlight some simple but powerful examples of how Databricks can be used to query huge data sets with little to no infrastructure, knowledge or bootstrapping. I will also cover the compiling and executing a spark job.

DevOps and Microservices Better Together

by Sean Farmar

If you are trying to drive towards continuous delivery you will need to consider your architecture. I will talk about how moving to SOA/Microservices architecture can get you to increase your delivery velocity and how DevOps and Microservices style architectures support each other to help you move to the holy grail of continuous delivery

How can monitoring save your bacon

by Sean Farmar

We usually think of monitoring as something the Operations team will take care of, while that might be enough in a monolith it will no do in distributed systems and microservices... Let’s talk about how we can do a better job at keeping the lights on and our systems running and functioning…

Successfully Decomposing Your Monolith Using DDD

by Sean Farmar

Designing a system is hard, it’s even harder to build a distributed (microservices) style architecture… Let's try and walk through a simplified example of carving out our bounded contexts and the processes, finding our service boundaries, on the way to building better applications. We will focus on moving from "monolith" to "distributed" thinking, moving from one single entity driven data model to multiple vertical bounded contexts.