Talks
I speak at conferences, user groups and webinars on AI-assisted development, .NET, Azure, microservices and audio programming. If you'd like me to speak at your event, please get in touch.
Watch online
-
Is .NET any Good for Audio? -
Is .NET any Good for Audio? -
Let's port an AirWindows VST to REAPER JSFX format! -
Is .NET any Good for Audio? -
Microservices in Azure: Containers or Serverless -
Moving to Microservices: Containers vs Serverless -
Building Serverless Workflows with Durable Functions
All talks
2026
- Oct
Reviving a Legacy Codebase with AI
AI Claude Code NAudio Legacy CodeAbout this talk
I spent three months of spare time using Claude Code to revive a large open source project I thought was dead: fixing its known bugs, modernizing it, improving its performance and adding new features.
In this session we'll tackle the questions developers are wrestling with about AI-generated code. Do you need to read every line? Can AI reliably review and test its own work? I'll share the agents, skills and techniques that helped most, and give an honest assessment of whether today's AI tools can produce production-ready code.
2024
- Jan
Is .NET any Good for Audio?
About this talk
For the last 20 years Mark has been maintaining NAudio, an open source audio library for .NET. While the original goal was just a bit of fun and creating some music related utilities, the library ended up becoming a mainstay of many large commercial telephony applications. In this talk, he'll share lessons learned along the way about the many and varied Windows audio APIs, battles with the limitations of .NET as a platform for real-time audio, and the joys and frustrations of running an open source project.
2023
- Aug
Is .NET any Good for Audio?
About this talk
For the last 20 years Mark has been maintaining NAudio, an open source audio library for .NET. While the original goal was just a bit of fun and creating some music related utilities, the library ended up becoming a mainstay of many large commercial telephony applications. In this talk, he'll share lessons learned along the way about the many and varied Windows audio APIs, battles with the limitations of .NET as a platform for real-time audio, and the joys and frustrations of running an open source project.
- Jan
Make Microservices Less Painful with Dapr
About this talk
Building microservices applications brings a host of challenges that can slow development down. In this session we'll see how the building blocks Dapr provides help you build distributed applications faster while following industry best practices, and discuss why you might choose Dapr, along with its strengths and weaknesses.
2022
- Oct
Make Microservices Less Painful with Dapr
About this talk
Building microservices applications brings a host of challenges that can slow development down. In this session we'll see how the building blocks Dapr provides help you build distributed applications faster while following industry best practices, with a demo of the GloboTicket sample application running on Azure Container Apps.
- Oct
HyperLINQ - take your LINQ skills to the next level
C# .NET LINQAbout this talk
An updated version of my LINQ talk, including newer features like IAsyncEnumerable. LINQ is an essential part of every C# developer's toolbox, but are you getting the most out of it? We'll look at using pipelines, thinking in patterns, being lazy, as well as how to avoid performance pitfalls and extend LINQ.
- Apr
Let's port an AirWindows VST to REAPER JSFX format!
About this talk
Learn about the process involved in porting an opensource Airwindows VST to the REAPER JSFX format, opening the door to adding a custom GUI or making your own tweaks.
2021
- Dec
Microservices
Microservices ContainersAbout this talk
Microservices architecture can be a difficult concept to grasp. In this session we'll learn about the benefits of a microservices architecture. First, we'll explore some of the benefits microservices can bring compared to more traditional architectures. Next, we'll learn about how to overcome some of the key challenges you'll encounter in a microservices architecture. And we'll also look at some practical techniques and strategies for moving to microservices
- Nov
Microservices
Microservices ContainersAbout this talk
Microservices architecture can be a difficult concept to grasp. In this session we'll learn about the benefits of a microservices architecture. First, we'll explore some of the benefits microservices can bring compared to more traditional architectures. Next, we'll learn about how to overcome some of the key challenges you'll encounter in a microservices architecture. And we'll also look at some practical techniques and strategies for moving to microservices
- Nov
Microservices
Microservices ContainersAbout this talk
Microservices architecture can be a difficult concept to grasp. In this session we'll learn about the benefits of a microservices architecture. First, we'll explore some of the benefits microservices can bring compared to more traditional architectures. Next, we'll learn about how to overcome some of the key challenges you'll encounter in a microservices architecture. And we'll also look at some practical techniques and strategies for moving to microservices
- Feb
Is .NET any Good for Audio?
About this talk
Mark is a software architect and developer currently specializing in Azure and .NET, building digital evidence management systems for criminal justice. He’s a Microsoft MVP, author of many training courses on Pluralsight, and the creator of NAudio, an open source audio library for .NET.
For the last 20 years Mark has been maintaining NAudio, an open source audio platform library for the .NET platform. While the original goal was just a bit of fun and creating some music related utilities, the library ended up becoming a mainstay of many large commercial telephony related applications. In this talk, he’ll share lessons he learned along the way about the many and varied Windows audio APIs, battles with the limitations of .NET as a platform for real-time audio, and the joys and frustrations of running an open source project.
2020
- Nov
Moving to Microservices: Containers vs Serverless
Azure Microservices Serverless ContainersAbout this talk
Many companies are looking for a path to migrate from legacy monolithic applications, towards a more modern, cloud-based microservice architecture. But there are many choices along the way.
How do you pick between two of the biggest trends in cloud architecture at the moment: containers or serverless?
In this session you'll learn about the strengths of both approaches, how to pick the right approach for your business requirements, and some of the key challenges you need to be prepared for.
We'll see how this can work in practice by looking at several key Azure technologies that enable these architectures such as Azure Kubernetes Service, Azure Functions, and Azure Container Instances.
And we'll see how the strengths of serverless and containerization can even be combined together into a hybrid architecture providing the best of both worlds.
- Nov
Microservices and Containers
Microservices ContainersAbout this talk
This session introduces the benefits of microserivces, and how containerization can help meet some of the challenges of building and operating a microservices application
- Nov
Microservices in Azure: Containers or Serverless
About this talk
Many companies are looking for a path to migrate from legacy monolithic applications, towards a more modern, cloud-based microservice architecture. But there are many choices along the way.
How do you pick between two of the biggest trends in cloud architecture at the moment: containers or serverless?
In this webinar you'll learn about the strengths of both approaches, how to pick the right approach for your business requirements, and some of the key challenges you need to be prepared for.
We'll see how this can work in practice by looking at several key Azure technologies that enable these architectures such as Azure Kubernetes Service, Azure Functions, and Azure Container Instances.
And we'll see how the strengths of serverless and containerization can even be combined together into a hybrid architecture providing the best of both worlds.
- Oct
Moving to Microservices: Containers vs Serverless
About this talk
Many companies are looking for a path to migrate from legacy monolithic applications, towards a more modern, cloud-based microservice architecture. But there are many choices along the way.
How do you pick between two of the biggest trends in cloud architecture at the moment: containers or serverless?
In this session you'll learn about the strengths of both approaches, how to pick the right approach for your business requirements, and some of the key challenges you need to be prepared for.
We'll see how this can work in practice by looking at several key Azure technologies that enable these architectures such as Azure Kubernetes Service, Azure Functions, and Azure Container Instances.
And we'll see how the strengths of serverless and containerization can even be combined together into a hybrid architecture providing the best of both worlds.
- Jan
BRK30130 Moving to Microservices: Containers vs Serverless
Azure Microservices Serverless ContainersAbout this talk
Many companies are looking for a path to migrate from legacy monolithic applications, towards a more modern, cloud-based microservice architecture. But there are many choices along the way. How do you pick between two of the hottest trends in cloud architecture at the moment: containers and serverless?
In this session you'll learn about the strengths of both approaches, how to pick the right approach for your business requirements, and some of the key challenges you need to be prepared for.
We'll see how this can work in practice by looking at several key Azure technologies that enable these architectures such as Azure Kubernetes Service, Azure Functions, and Azure Container Instances.
And we'll see how the strengths of serverless and containerization can even be combined together into a hybrid architecture providing the best of both worlds.
- Jan
BRK30129 Getting Started with Containers on Azure
About this talk
Did you know that Azure has at least seven(!) different services that can run Docker containers? There's a bewildering variety of options available including Virtual Machines, Azure Container Instances, App Service, Service Fabric, Service Fabric Mesh, and Azure Kubernetes Service. If you're new to containers it's easy to get stuck in analysis paralysis as you decide on a hosting option. In this session Mark will provide a high-level overview of the strengths of each of these services, explain how to choose the best one for your requirements, and demonstrate how simple the Azure CLI makes it to deploy containers in Azure.
2019
- Oct
Get out of (Technical) Debt
Technical DebtAbout this talk
Why is it that so often, despite our best intentions, our codebase seems to get progressively more and more difficult to work with over time? In this talk, we'll look at the various ways that decisions we made in the past can slow down our progress in the future. We'll see some ways to measure the problem, how you can work with management and developers towards addressing the issue, and ways you can avoid getting too deep into "technical debt".
- Feb
BRK3631 Building Reliable Serverless Workflows with Azure Durable Functions
Azure Azure Functions Durable FunctionsAbout this talk
Building reliable, cloud-based workflows is not a trivial task, and yet is necessary to model real-world business processes that may take many days to complete. There are many challenges involved including: how can we keep track of workflow progress? How can we effectively handle errors wherever they occur in the pipeline? What happens if something we were waiting for never happens? What if we need to run some parts of the workflow in parallel?
In this talk, Mark will show how we can meet all of these challenges with Azure Durable Functions. We'll see how Durable Functions offers an elegant solution for constructing complex workflows out of simple building blocks, resulting in reliable, observable, scalable and efficient workflows..
- Feb
Getting Started with Containers on Azure
About this talk
Did you know that Azure has at least seven(!) different services that can run Docker containers? There's a bewildering variety of options available including Virtual Machines, Azure Container Instances, App Service, Service Fabric, Service Fabric Mesh, and Azure Kubernetes Service. If you're new to containers it's easy to get stuck in analysis paralysis as you decide on a hosting option. In this session Mark will provide a high-level overview of the strengths of each of these services, explain how to choose the best one for your requirements, and demonstrate how simple the Azure CLI makes it to deploy containers in Azure.
2018
- Dec
Building Serverless Workflows with Durable Functions
About this talk
Azure Functions makes it super quick and easy to write create cloud-based functions to respond to events, but once you start connecting functions together into a workflow, things can get complex and chaotic very quickly. In this session Mark will demonstrate how Durable Functions lets you take back control of your serverless workflows, allowing you to keep track of progress and implement advanced workflow patterns such as fan out and fan in, and waiting for external approval.
- Dec
Getting Started with Containers in Azure
About this talk
There are loads of ways to run containers in Azure, but its not necessarily obvious how you should choose between them. This session will guide you through four key services in Azure that can host containers, explaining their key benefits, and demonstrate how quickly you can get started with them using a few simple Azure CLI commands.
- Oct
HyperLINQ - take your LINQ skills to the next level
C# .NET LINQAbout this talk
LINQ is an essential part of every C# developer's toolbox, but are you getting the most out of it? Working with collections of data is a core part of pretty much every application you'll ever write, so becoming more effective at wielding the power of LINQ, has the potential to make a big impact on the quality of your code.
In this talk Mark will introduce several tips and tricks that will take your LINQ code to the next level. We'll look at using pipelines, thinking in patterns, being lazy as well as how to avoid performance pitfalls and extend LINQ.
- Sep
Order from Chaos - Managing Serverless Workflows with Durable Functions
About this talk
It can get very complicated trying to track and manage the progress of workflows when they are formed of multiple stateless isolated functions.
In this talk, Mark will demonstrate how Durable Functions extends Azure Functions with orchestrators enabling you to manage the state of your workflows, support error handling, retries and simplifying the implementation of more complex patterns such as fan out, and waiting for external events.
- Feb
Docker on Azure
About this talk
Over the last few years Docker has not only revolutionised the Linux landscape but has been fully embraced by Microsoft, with rich containerization support coming to Windows, .NET, Visual Studio and Azure. Azure Container Instances (ACI), managed Kubernetes (AKS) and Web Apps on containers are just a few of a broad range of options for running containerized workloads in Azure. We'll look at how you can decide which of these offerings is right for you, and the benefits of hosting serverless containers in Azure.
- Jan
Get out of technical Debt
Technical DebtAbout this talk
Why is it that so often, despite our best intentions, our codebase seems to get progressively more and more difficult to work with over time? In this talk, we'll look at the various ways that decisions we made in the past can slow down our progress in the future. We'll see some ways to measure the problem, how you can work with management and developers towards addressing the issue, and ways you can avoid getting too deep into "technical debt".