Talks

Proposed Talks for DDD South West 2018

There are currently 43 proposed talks for DDD South West 2018. Interested in speaking this year? Why not register and propose a talk?.

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

An attempt to cut right through all the hype, giving an up-to-date summary of what AI is:- 1) What do I make of the hype? Where we are in the journey to general AI; 2) Where ML fits into this; 3) Why do you need ML in your system - what ML is and isn't?; what are the limitations and risks? 4) Some good applications of ML 5) Where do developers fit into this? 6) How developers can get started - some simple practical ways to introduce a little ML 7) A comparison of a few of the major platforms; 8) Tools, resources and courses to help you on your journey.

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, Adam and his girlfriend turned the remote working dial up to eleven. They bought a camper van, a couple of EU SIM cards, and hit a traffic jam near Basel. Six months and seven countries later, they realised the ski season was starting. Back home to Switzerland it was, to reflect on their 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 easyJet.com 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 (http://en.wikipedia.org/wiki/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 ...

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.

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

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?

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!