Proposed Talks for DDD South West 2018

There are currently 73 proposed talks for DDD South West 2018.

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

by Joel Hammond-Turner

Async is hard - processing pipelines doubly so. But the TPL Dataflow library is there to give you a helping hand. And I bet you've never even heard of it! In this talk, I'll provide an introduction to the TPL Dataflow library and explain the basics - with examples that are more than just "Hello World"

Building your first dashboard with Azure PowerBI Embedded

by Joel Hammond-Turner

Users love dashboards... but why are they so hard to implement? In this session, I'll show you how to use Microsoft's Azure PowerBI Embedded product to easily create dashboards that live within your own application.

Deploying Functions to Azure with OctopusDeploy

by Joel Hammond-Turner

Azure Functions are the basic building blocks of "serverless" computing in the Azure stack. n this talk, I'll show how we can use our old favourite, OctopusDeploy, to build and deploy an Azure Function in a reliable, repeatable way.

Azure In Action - CosmosDB, Functions and ServiceBus in Perfect Harmony

by Joel Hammond-Turner

There's so many parts to Azure, it's sometimes hard to decide what to use and when. In this talk I'll describe how at Landmark we made these kind of decisions as we implemented some new features in our product, and show some of the code we wrote to use CosmosDB, Azure Functions and ServiceBus together.

Web Components - the end of JavaScript framework wars?

by Jag Reehal

With a new JavaScript framework out at the end of every other week, it's difficult to know what's the right choice. It's taken a while but Web Components change everything. In this talk, I'll explain why, how to create them and use them in your existing React, Angular, Vue or vanilla web apps.

APIs on the Scale of Decades

by Gary Fleming

"APIs are hard. They are pretty much ship now, regret later." -- Chet Haase. What do Greek philosophy, early video games, and Japanese bullet trains tell us about how we should design our APIs? Writing any old API is easy. Writing an API that can evolve to meet your needs over the coming months, years, and even decades; now that's hard. We'll look at some common practices and try to see where they go wrong, some misunderstood techniques and how to use them better, and some less common practices that might be useful.

Getting started with the Internet of Things

by Stephen Harrison

Fancy making an Thing but don't know where to start? Lets take a look at the Maker ecosystem of development boards.

Building Internet connected things with the Particle Photon.

by Stephen Harrison

Learn how you can quickly and easily make Internet Of Things Things with the Photon from

From monolithic monster to majestic microservice app

by Callum Whyte

How do you scale an over engineered monolith intended for millions of users? How do you fix bugs and add new features to a codebase that's impossible to understand? How can you avoid rewriting everything yet make the application perform as it was intended? How do you do all of this while the app is LIVE and being used by many users every day? The answer: restructure it into small maintainable chunks – microservices! Callum will discuss the process he followed to transition an app for the NHS into a majestically constructed microservices architecture, the lessons learnt and pain points felt along the way. We'll take a look at the infrastructure components you can use with limited knowledge to get started using microservices, and finally take a look into the code and iterative changes made to make an old monolithic app scale as microservices!

Adrian Banks

Alexa - how to create your first skill

by Adrian Banks

Ever wanted to create an Alexa skill but don't know where to start? This session will show you the components of an Alexa skill and how to create one using C#. We'll also consider the various options for hosting the skill and how to get it published to the skills store.

Legacy systems in your head, and why they matter

by Lizzie Darville

Using the concept of legacy in software to explain some important neuroscience that comes into play in the workplace.

James World

Git Deep Dive

by James World

Do you think you know git? This talk explains the fundamentals of how git works and takes a deep dive into the typical workflows of an advanced git user.

James World

On The Shoulders Of Giants

by James World

I am a firm believer in not reinventing the wheel. Yet all too often we fail to learn from those that have gone before. In this talk, I present an essential reading list for .NET developers - books that have demonstrated a longevity beyond the passing vogues of the latest framework or technology.

James World

An Introduction To Reactive Extensions in .NET

by James World

Learn all about the exciting Reactive Extensions (Rx) library with this practical overview and demonstration.

Pilot Decision Management

by Clifford Agius

This talk explores Clifford's experience as a Boeing 787 Dreamliner Pilot and the critical decision management skills required therein. As an Airline pilot, you may be required to make a decision often quickly to react to a situation as it presents itself and you will discover a way to achieve this called TDODAR. This model ensures that you achieve a safe outcome for all on board and Clifford often finds himself using the same model when facing a problem whilst wearing his Dev hat and it's yet to fail him.

Using AI to Beat the Bookies

by Gary Short

In this talk, using the Team Data Science Process, I'll walk you through the process for predicting who will win a horse race. I will also show you where the weaknesses are in such a model, and I'll show you techniques you can use to mitigate against them.

Using AI to Count Your Chickens After They've Hatched

by Gary Short

When you're one of the leading free range chicken farmers in the UK, and you buy your fertilized eggs by the ton, how do you know how many chickens you own after they hatch? How many are in each barn when you lock them in for the night? If someone stole a large quantity, would you even notice? In this session I'll walk you through the IoT and Machine Learning solution I developed to solve this problem. Along the way I'll teach you several machine vision techniques as well as demonstrating to you how I adapted a well known clustering algorithm in order to help me short circuit the machine learning model training phase of the project.

AI for everyone.

by Gian Paolo Santopaolo

Artificial Intelligence is changing everything - are you ready? From self-driving cars to synthetic creativity to virtual personal assistants, AI is no longer for specialists, but transforming innovation everywhere. Enjoy this whirlwind overview of what AI is, where it is going, and how you can be a part of it. See this magic up-close, and together we will look behind the curtain to learn how it’s done. From Cognitive Services to Machine Learning and Deep Neural Network, all that you need to know to start using artificial intelligence making your app or site intelligent. In this session, we will walk through

The More Personal Computing Era from a dev perspective

by Gian Paolo Santopaolo

Since the release of Windows 10, we started hearing the term "More Personal Computing" to define the new era of devices. In this session we will explore what it means in terms of Universal Windows Platform API, to develop a More Personal and More Secure app by implementing: Touch, Ink, Vision, and Identity. Which are the limits of today’s human-computer interaction? Is it possible to make the Windows 10 user experience even more personal? Let's create a Windows 10 UWP app together and explore ways users are interacting with computers today. Things we can do to make their experience even more personal, are to implement a new set of controls, which enable us, developers, to build better software for social interaction and more human computing and to give users an even more natural experience. What happens when we need to scale tablet and desktop apps to Large Screen Experience (LSX)? The problem here: The effective pixel challenge when developing UWP for LSX. That’s the last takeaway from this session.

Extend your existing app to the business market and the Surface Hub

by Gian Paolo Santopaolo

Do you have an app published on the Windows Store that can be used by the business World and on a Surface Hub? If so that’s your session! Windows Team Family, particular Windows 10 used on Surface Hib, is growing fast becoming for sure, a desirable market for anyone has released or is going to release a UWP app on the Windows Store. In this session, we will walk through how to extend your app design to fit a large multitouch multiuser device and make it becomes user-friendly and desirable even to the business world that could bring you a lot of satisfaction from revenue generated by your application.

All that you need to know about Windows Ink and beyond to enable natural input into your UWP app making your users loving it

by Gian Paolo Santopaolo

From experience on the field developing CollaBoard, one of the apps that most uses Ink on Windows, used by many corporations worldwide, a finalist at the latest edition of the Windows Developer Award – App. In this session, we will explore how to use Ink bringing the technology to its limit to enable natural input on your app and to make users loving it.

James Broome

Analyzing flight data in real time using Cosmos DB, Azure Functions and Power BI

by James Broome

Cosmos DB is redefining the database in the age of cloud; globally distributed, multi-model, multi-API Database as a Service. This session will cover Cosmos DB’s main features in the context of an Aircraft tracking use-case developed by endjin. It will include a live demo of the solution architecture, operational system, example queries, and performance optimisation strategies. We will also show examples of how we integrated with Azure Functions and Power BI to create real-time analytics over the ingested flight data.

Jess Panni

Lessons learned - ingesting, securing and processing 200 million messages a day

by Jess Panni

Building real-world IOT solutions require ingesting and making sense of vast amounts of data. In this session we will share how we designed and built a predictive maintenance solution using Azure Event Hubs, Azure Data Lake, Azure Functions & Power BI. We will discuss real-world implications such as securing sensitive data and the vital role of DevSecOps.

Introduction to Windows Mixed Reality development using Unity and the Mixed Reality Toolkit

by Davide Zordan

In this session, we will explore how to fast-start Windows Mixed Reality development using Unity, the Mixed Reality toolkit and the Universal Windows Platform.

SSO for your Fridge - IoT Security with the OAuth Device Flow

by Scott Brady

Bringing secure, interactive user authentication and authorization to the internet of things, browserless platforms, and devices with limited input methods. Why should your fridge be vulnerable?

Breaking The Common Myths Around Artificial Intelligence

by Galiya Warrier

In this presentation, we will be talking about 5 main common myths around Artificial Intelligence as well as what it can actually deliver at this moment in time. We will discuss and see a few demos of interesting AI examples that span beyond chatbots and personal assistants, and that should leave you with some practical ideas on how you can get started in this space.

Give it a REST - Tips for designing and consuming public APIs

by Liam Westley

Ever wondered why someone created a REST API in the way they did? Ever wondered why someone consumed your REST API in the way they did? We'll examine APIs from both sides of the fence; checking out good practice, poor practice, and some gotchas as well as bright solutions to things like versioning and deprecation.

Know when to give up. Failure handling in messaging

by Szymon Pobiega

Let's face it, most systems don't even try to handle failures. A micro service encounters an a database connection error while processing a request? Log that error and return 500. A micro service calls another one and gets a 500? Log that error and return 500. This talk focuses on various failure handling strategies that involve retrying processing of a message, emphasizing the trade-off between false positives in poison message detection and the availability of a service.

I shall say this only once

by Szymon Pobiega

And you shall do it only once. Exactly once. That's a very common assumption for most of business software. One trigger equals one outcome. As it turns out, it is easier said than done. This talk focuses on various ways of making sure a message is processed correctly in the face of infrastructure failures.

Machine Learning for Developers

by Ed Yau

The good, the bad and the ugly! Not a day goes by without another media article talking about how AI will revolutionise our industries and make us all redundant. Much of this is hype, as we well know what is being talked about in research circles is still some way off a production ready system that is about to roll into operations. But how much of it is real and how much is due to journalists being over generous? It's not all about Data Scientists: developers can get involved too. Bootstrap your knowledge and find out how you can get started today. And towards the end we will have a go at building our own hotdog/nothotdog system.

Developing for Google Assistant and Google Home using Typescript, Serverless and DialogFlow.

by Benjamin Paul

Learn how to develop conversational assistants that support Google Home devices as well as Google Assistant apps using the new DialogFlow tools from Google. We will also be talking about how to support the new forthcoming transaction API's that will allow you to accept payment for goods and services using your voice as well as taking a look at how to best structure your code, how to debug locally and what tools and services can help make the development experience better.

Taming Types in the Cloud

by Isaac Abraham

A tour around the F# Azure Storage Type provider, showing how we can use the advanced features of F# to make working with Cloud data easy - and fun!

Code on the road

by Adam Ralph

Last summer, not content with only working from home, Adam turned the remote working dial up to eleven. He bought a camper van, a couple of EU SIM cards, and... hit a traffic jam near Basel. Seven months and seven countries later, he realised the ski season was starting. Back home to Switzerland it was, to reflect on his experience over a pot of hot cheese.

Finding your service boundaries - a practical guide.

by Adam Ralph

We know it's useful to split up complex systems. We've seen the benefits of modular deployment of microservices. Dealing with only one piece of code at a time eases our cognitive load. But how do we know where to draw the service boundaries? In complex business domains, it's often difficult to know where to start. When we get our boundaries wrong, the clocks starts ticking. Before long, we hear ourselves say "it would be easier to re-write it".

Bitcoin, C#, and Lambda

by Andrew Chaa

Not a talk about blockchain, but how to use Bitcoin as trading vehicle. We'll explore different trading ideas and strategies of cryptocurrencies in quantitative viewpoint. We'll write simple code that can run our strategies so that AWS Lambda makes money for us (or lose). Let the machine trade for us while we enjoy a sip of bitter sweet coffee over morning stand-up.

Supersizing your web deployment

by Nick Hills

In the recent sale saw a peak of 20,000 users. We'll run through some ideas and approaches for how to handle this scale of users on your web application.

Kanban - Happier, more efficient, and more profitable (NOTE: can be run as a workshop)

by Anthony Dang

This is a high level crash course in Kanban. We'll discuss Kanban, and how it can make your team/organisation run more smoothly and efficient. We'll be discussing core concepts, with a focus on workflow. We'll analyse what can cause disruptions in your workflow, and possible ways to help smooth them out.

Teaching an old dog new tricks

by Ismail Mayat

What is clean code and why you show follow clean code practices.

What's that smell?

by Anthony Dang

You thought you inherited a puppy, but it turned out to be a skunk. This session is about inheriting existing websites. We will discuss common signs and smells which can indicate that you're about to inherit a skunk. We will dive into how we (Cogworks) were burned in the past when taking on poor implementations. Building on this, we will talk about some development processes, and propose what likely went wrong in the agency/organisation during the original build.

Implementing Hypothesis-Driven Development with ASP.NET Core

by Tugberk Ugurlu

When you are operating under a problem space of uncertainty in an exploratory fashion it's important to know whether you are channelling your efforts to solving the right problems for your customers. I want to introduce the Hypothesis-Driven Development approach which lets you build software in an uncertain problem space in an iterative way by testing the assumptions about your customers. By the end of the talk, you will also have a good implementation example with ASP.NET Core to take away and relate to your next challenges in a similar context.

Essentials for Building and Leading Highly Effective Development Teams

by Tugberk Ugurlu

Individually creating software to get the tasks done is the easier part of the whole story compared to doing it as a development team. As being a Tech Lead, I'll share my experience on what the essential principles are for building and leading fast-paced, highly effective software development team.

Levelling up to Become a Technical Lead

by Tugberk Ugurlu

Join me on my journey to the career path change of going from a Software Engineer role to Technical Lead, where the success I had achieved as a Software Engineer drastically helped me to get this role, but it didn't take long to realise that it wouldn't solely help me to be successful on that role.

Practical Monad in C#

by Andrew Chaa

"There is no problem in computer science which cannot be solved by one more level of indirection" David Wheeler ( C#'s Linq syntax is Monadic and so is Generics. Let's see how we can simplify many practical programming challenges, from dealing with nulls and managing state, to parsing with Monads.

Unity 101 for C# Developers

by Andy Clarke

If you are interested in mixed or virtual reality development then Unity is a tool you’ll want to learn. Go to Microsoft’s Hololens development page and you’ll find the installation of Unity recommended in the first paragraph. In this demo led session we’ll go back to basics with Unity, easily creating a simple 3D experience with realistic physics. We’ll look at the fantastic Visual Studio integration and how easy it is to add C# to manipulate your 3D world.

Nature's approach to complex distributed systems

by Ian Johnson

The systems that we write are not the first complex systems that the world has produced. Nature has been producing complex, distributed systems for a long time and we can look to nature for inspiration. What can we learn from its successes and even its inefficiencies?

From VMs to Containers - migrating "legacy" Windows applications to containers and beyond

by Shahid Iqbal

Windows containers opens the door to building a single platform to run both legacy .NET and new .NET Core applications with the same tooling

Kubernetes for .NET developers

by Shahid Iqbal

Introduction to Kubernetes from a .NET developers perspective

Outside-In TDD

by Ian Russell

This session will demonstrate the core techniques of Outside-In TDD, help you appreciate some of the potential pitfalls and show you how it enables you to write better Object-Oriented code.

Applying the principles of chaos to Serverless

by Yan Cui

Join us in this talk as Yan Cui shares his thought experiments, and actual experiments, in his pursuit to understand how we can apply the principles of chaos to a serverless architecture. A word of warning though, you’re guaranteed to walk away with more questions than answers!

The present and future of serverless observability

by Yan Cui

Join us in this talk as serverless expert Yan Cui gives us an overview of the challenges with observing a serverless architecture, the tradeoffs to consider, the current state of the tooling for serverless observability and a sneak peek at some of the new and coming tools that will hopefully inform us what the future of serverless observability might look like.

Serverless design patterns

by Yan Cui

Join us in this talk to see some architectural design patterns that have emerged with Serverless technologies like AWS Lambda, and learn how to pick the right event source based on the tradeoffs you want. Here are a few patterns that we'll cover in the talk: pub-sub, cron, push-pull, saga and decoupled invocation.

Serverless in production, an experience report

by Yan Cui

AWS Lambda has changed the way we deploy and run software, but this new serverless paradigm has created new challenges to old problems - how do you test a cloud-hosted function locally? How do you monitor them? What about logging and config management? And how do we start migrating from existing architectures? In this talk Yan will discuss solutions to these challenges by drawing from real-world experience running Lambda in production and migrating from an existing monolithic architecture.

Build a cross-platform game in an hour with C#

by Andy Clarke

In this session we'll use some ideas from the session attendees to create a cross-platform game using Visual Studio and C#. The session will focus on Monogame, which is an open-source game engine that utilizes Xamarin to allow easy porting of the game from Windows to IOS, Android, Linux and more ...

Chester Burbidge

Hunting typosquatters with F#

by Chester Burbidge

In August 2017 a typosquatting attack was discovered in the popular code repository npm. For two weeks nobody noticed as hackers tricked users into installing malicious packages that exfiltrated developer’s credentials. In this talk I’ll describe the attack in detail and show how I used some of the awesome features of the F# language to hunt for other attacks.

Why you should write Functional C#

by Ian Russell

This session will look at how you can use functional programming techniques to improve the quality of your software.

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.

Navigating the HttpClient minefield with HttpClientFactory

by Steve Gordon

This talk explores the new HttpClientFactory feature introduced with ASP.NET Core 2.1. Steve will explore the problems HttpClientFactory solves before looking at how we can use HttpClientFactory in our code. We'll explore the most basic usage, through to more advanced named and Typed clients, outgoing request "middleware" and implementing retry patterns with Polly. If you're building microservices that need to make external HTTP calls, this talk is for you! It's time to start leveraging the power of HttpClientFactory.

Docker for .NET Developers

by Steve Gordon

In this talk Steve will introduce you to Docker, a technology which opens new possibilities for development and deployment of your ASP.NET and .NET applications. Steve will share with you the Docker journey that his team are on, exploring their motivations for using Docker, the benefits they've achieved and the workflows they have developed for hosting containers on AWS ECS. You’ll leave this talk with the knowledge you need to get started using Docker and excited about the value that Docker can add to your software projects.

Open Source isn't Scary!

by Steve Gordon

In this talk Steve will take you on a journey from Open Source newbie, to core contributor and project maintainer. Steve will share his personal experience and along the way impart some practical Git and GitHub advice, discuss etiquette, look at pull requests and dive into why contributing to Open Source can be great for your career and the community! By working on open source projects you can learn new skills and experience new technologies on your way to furthering your career and mastering your trade. You'll leave this talk inspired; ready to clone some source code and excited to make your first pull request.

Dan Clarke

Developer Productivity!

by Dan Clarke

Are you the type of developer that likes to Get Sh*t Done? Join me for a fast-paced talk on the tips and tricks I've found along my 20 years of software development that has saved me an insane amount of time! We'll cover a wide range of topics - from compound learning, to tools and automation, to productivity techniques like Pomodoro and GTD ...

Joseph Woodward

Patterns and Practices for Building a Better Web API Architecture

by Joseph Woodward

We've all worked with a typical n-tier application and we all know the unbearable pains associated with them. In this talk we'll take a look at an alternative architectural approach utilising such patterns as CQRS to better isolate and decouple our business logic from our framework, how we can better deal with cross-cutting concerns such as validation and logging.

Joseph Woodward

Improving System Resiliency via Chaos Engineering

by Joseph Woodward

Advances in Cloud technology means systems are becoming increasingly more distributed and complex. Large monoliths are being split up into microservices and Function as a Service (FaaS) and Serverless are becoming more common. The very nature of distributed systems mean they're far more prone to problems than similarly-scoped monoliths; this makes predicting or preventing possible failure modes increasingly more difficult. In this talk we'll look at how we 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 resiliency and reliability.

How can monitoring save your bacon

by Sean Farmar

We usually think of monitoring as something the Operations team will take care of, and in a monolith system that might be enough. However, when it comes to distributed systems and microservices we need to reconsider that approach as these systems are built to fail. Your system will show up as running, but in reality, it is not functioning Let’s talk about how we can do a better job at keeping our systems running and functioning…

SOA lessons learnt (OR Microservices done better)

by Sean Farmar

Service Oriented Architecture has been around for a while, now Microservices is the new black, that’s cool, but can we learn from when we failed and succeeded implementing SOA? There are some really useful lessons we can take and avoid the pitfalls.

Successfully Decomposing Your Monolith or UpdateUser Means Nothing To Me

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 entities, bounded contexts and carving out the processes on the road to building better applications.

Spot the difference: automating visual regression testing

by Viv Richards

This session looks at why we automate tests, the issue with just manually testing, common end to end automation pitfalls, a brief introduction to visual testing and finally a look at common issues with visual testing and ways to overcome them.

You keep using the word agile, I do not think it means what you think it means

by Nathan Gloyn

Are you working in an "agile" environment? How do you know its "agile"? Is it what you think "agile" should be? In this talk I'll cover what most people think agile means, how they might not actually be agile at all and some guidance on what an agile environment looks like.

Microservices - What I’ve learned after a year building systems

by Nathan Gloyn

Over the past 18 months I've been involved in building a couple of different systems using the microservice architecture and I talk about my expereince building and running these systems.

Interactive APIs with GraphQL

by Sam Hogarth

What is GraphQL, and how can I use it to build awesome APIs with JavaScript?

Joseph Woodward

10 Lessons Learnt Building Resilient Microservices

by Joseph Woodward

The distributed nature of microservices mean they're far more prone to problems such as transient network faults, cascading failures and the dreaded 'thundering herd problem' than similarly-scoped monoliths. In this talk we'll look at 10 lessons I've learnt whilst building and managing microservices where resiliency is priority.

Interfaces for the Modern World

by Michael James

A brief history of interfaces before delving into Alexa and how it’s more than just voice , finally peering into the future

Headless UI testing with Chrome and Puppeteer

by rippo Richard Wilde

Wouldn't it be nice to be able to UI test your code changes before you check into source!

Universal Windows Apps for the IOT developer

by Darren Blaby

Join me on this voyage of discovery as we look at creating universal windows applications that can run on Windows IoT Core