Speaking
I speak at developer conferences, meetups, and livestreams around the world, and I run private sessions for engineering teams. Since 2018 that adds up to more than 100 conferences, meetups, and shows, and Sessionize named me a Most Active Speaker in 2023 and 2024.
Want one of these talks at your event, or a private session for your team? Email me.
For hands-on training, see the workshop.
Current talks
- Correcting Common Async/Await Mistakes in .NET. The talk behind AsyncAwaitBestPractices: the mistakes that cause deadlocks and swallowed exceptions, and how to fix each one. Kept current through .NET 10. slides, code, and recording Given at 20 events since 2018.
- The .NET MAUI Community Toolkits. What is in CommunityToolkit.Maui and CommunityToolkit.Maui.Markup, and how to use them in your app, from the maintainer. slides, code, and recording Given at 5 events since 2022.
- Easily Add GenAI to .NET Apps using Microsoft.Extensions.AI. The abstractions that let one .NET codebase talk to OpenAI, OpenAI-compatible endpoints, and AWS Bedrock, with evaluation built in. slides, code, and recording
- Introduction to Serverless with AWS Lambda in C#. Your first C# Lambda function, then cold starts, warm starts, and triggers. slides, code, and recording Given at 7 events since 2023.
- Choosing the Best AWS Service for Your Website and API. A decision guide for hosting a .NET website and API on AWS. slides, code, and recording
- Building GraphQL APIs in C#. Build a GraphQL API in ASP.NET Core with Hot Chocolate. slides, code, and recording Given at 9 events since 2020.
- Consuming GraphQL APIs in C#. Query GraphQL from any .NET app with Strawberry Shake. slides, code, and recording Given at 6 events since 2019.
- Maintaining Open Source Libraries without Losing Your Mind. Lessons from running CommunityToolkit.Maui and AsyncAwaitBestPractices. slides and code
- Creating Apps with .NET MAUI. Build your first cross-platform app for iOS, Android, Windows, and Mac in C#. slides, code, and recording Given at 7 events since 2022.
- Confusion is the Sweat of Learning. Why confusion helps people learn, from the research, and how to use it when you teach.
Comedy sets at PubConf: Drummer or Developer (2026), Humans Reach Peak Laziness (2024), Who's Killing Open Source? (2024), and Don't Read the Comments (2022).
Talks and events
2026
- NDC Oslo (Sep): The .NET MAUI Community Toolkits (slides, code, recording); Become an Expert with Async/Await in C#, 2-day workshop
- KCDC, Kansas City (Sep): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- NDC London (Jan): Correcting Common Async/Await Mistakes in .NET (slides, code, recording); Become an Expert with Async/Await in C#, 1-day workshop
2025
- NDC Copenhagen (Sep): Easily Add GenAI to .NET Apps using Microsoft.Extensions.AI (slides, code, recording)
- NDC Melbourne (Apr): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- Orlando Code Camp (Apr): The .NET MAUI Community Toolkits (slides, code, recording)
- Iowa .NET Meetup (Jan): Building GraphQL APIs in C# (slides, code, recording)
2024
- TechBash, Pennsylvania (Sep): Confusion is the Sweat of Learning; Creating Apps with .NET MAUI (slides, code, recording); Introduction to Serverless with AWS Lambda in C# (slides, code, recording)
- NDC Copenhagen (Aug): The .NET MAUI Community Toolkits (slides, code, recording)
- THAT Conference (Jul): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- GitHub Campus Experts (Jul): Maintaining Open Source Libraries without Losing Your Mind (slides and code)
- PubConf at KCDC (Jun): Humans Reach Peak Laziness
- KCDC, Kansas City (Jun): Choosing the Best AWS Service for Your Website and API (slides, code, recording); Building GraphQL APIs in C# (slides, code, recording)
- NDC Oslo (Jun): Choosing the Best AWS Service for Your Website and API (slides, code, recording)
- Techorama Belgium, Antwerp (May): Consuming GraphQL APIs in C# (slides, code, recording)
- .NET Days Romania (Apr): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- NDC Sydney (Feb): Introduction to Serverless with AWS Lambda in C# (slides, code, recording)
- Swetugg, Stockholm (Feb): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- PubConf at NDC London (Feb): Who's Killing Open Source?
- NDC London (Jan): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
2023
- Swetugg, Gothenburg (Oct): Introduction to Serverless with AWS Lambda in C# (slides, code, recording)
- NDC Porto (Oct): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- Techorama Netherlands (Oct): Introduction to Serverless with AWS Lambda in C# (slides, code, recording); The .NET MAUI Community Toolkits (slides, code, recording)
- GraphQLConf, San Francisco (Sep): Consuming GraphQL APIs in C# (slides, code, recording)
- NDC Copenhagen (Aug): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- .NET Enterprise Developer Day (AWS) (Aug): AWS Toolkit (slides and code)
- Inside .NET livestream (Jun): Introduction to Serverless with AWS Lambda in C# (slides, code, recording)
- KCDC, Kansas City (Jun): Building GraphQL APIs in C# (slides, code, recording)
- NDC Oslo (May): Introduction to Serverless with AWS Lambda in C#
- Stavanger meetup (May): Creating Apps with .NET MAUI (slides, code, recording)
- Inside .NET livestream (Apr): Building .NET MAUI UIs in C# (slides, code, recording)
- Sydney meetup (Apr): Creating Apps with .NET MAUI (slides, code, recording)
- Orlando Code Camp (Mar): Building GraphQL APIs in C# (slides, code, recording)
- XamExpertDay (online) (Feb): Building .NET MAUI UIs in C# (slides, code, recording)
- NDC London (Jan): Creating Apps with .NET MAUI; Introduction to Serverless with AWS Lambda in C# (slides, code, recording)
2022
- PubConf at NDC Minnesota (Nov): Don't Read the Comments
- West Virginia University, guest lecture (Nov): Creating Apps with .NET MAUI
- NDC Oslo (Sep): Creating Apps with .NET MAUI; Consuming GraphQL APIs in C# (slides and code)
- Microsoft Reactor (Aug): Creating Apps with .NET MAUI
- KCDC, Kansas City (Aug): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- THAT Conference (Jul): Building GraphQL APIs in C# (slides, code, recording)
- On .NET Live (Microsoft show) (May): The .NET MAUI Community Toolkits (slides, code, recording)
- On .NET (Microsoft show) (Apr): Building .NET MAUI UIs in C# (slides, code, recording)
- Brussels .NET meetup (MADN) (Apr): Building GraphQL APIs in C# (slides, code, recording)
2021
- NDC Oslo (Dec): Building GraphQL APIs in C# (slides, code, recording)
- Update Conference, Prague (Nov): Creating Apps with .NET MAUI (slides, code, recording)
- CodePath, guest lecture (Aug): Building GraphQL APIs in C# (slides and code); Consuming GraphQL APIs in C# (slides and code); Introduction to GraphQL (slides and code)
- THAT Conference (Jul): Creating Apps with .NET MAUI (slides, code, recording)
- Indy Xamarin Meetup (Mar): Building Xamarin.Forms UIs in C# (slides, code, recording)
- Indy Xamarin Meetup (Jan): The Future of Xamarin (slides, code, recording)
2020
- Indy Xamarin Meetup (Dec): Xamarin + GraphQL (slides and code)
- West Virginia University, guest lecture (Nov): Creating iOS and Android Apps in C# Using Xamarin (slides and code)
- DevReach (online) (Oct): Building Xamarin.Forms UIs in C# (slides, code, recording)
- Indy Xamarin Meetup (Sep): Architecting Xamarin.Forms Apps
- Microsoft Ignite 2020 (virtual) (Aug): Upgrading a Web Application to App Services (MOD20S)
- MonkeyFest (online) (Aug): Building Xamarin.Forms UIs in C# (slides and code)
- Xamarin Summit Brasil (Aug): Building Xamarin.Forms UIs in C# (slides, code, recording)
- THAT Conference (Aug): Creating Serverless Apps without Writing Any Code
- Toronto meetup (online) (Jul): The Future of Xamarin (slides, code, recording)
- Xamarin Assemble (online) (Jul): Building Xamarin.Forms UIs in C# (slides, code, recording)
- Minnesota meetup (online) (Jun): The Future of Xamarin (slides, code, recording)
- NDC Oslo (Jun): Choosing the Best Mobile App Framework (slides, code, recording)
- mDevCamp, Prague (Jun): The Future of Xamarin (slides, code, recording)
- Sydney meetup (online) (Jun): The Future of Xamarin (slides, code, recording)
- Zurich meetup (online) (May): The Future of Xamarin (slides, code, recording)
- Microsoft Build 2020 (virtual) (May): Xamarin.Forms Experts Panel (slides and code)
- Microsoft Student Partners .NET series (May): Creating iOS and Android Apps in C# Using Xamarin (slides and code)
- Startup Safari (Apr): Easily Add AI to Your Apps (Cognitive Services) (slides and code)
- On .NET (Microsoft show) (Feb): Building GraphQL APIs in C# (slides and code); Consuming GraphQL APIs in C# (slides and code); Introduction to GraphQL (slides and code)
- Microsoft Ignite The Tour, Seoul (Jan): Building and Running Your App in the Cloud (APPS10) (slides and code); Azure Functions and Azure Logic Apps (AFUN95) (slides and code)
2019
- Update Conference, Prague (Nov): Choosing the Best Mobile App Framework (slides and code); Creating Your First Mobile Backend with App Center Data (slides and code)
- GraphQL Summit, San Francisco (Oct): Consuming GraphQL APIs in C# (slides and code)
- Codemotion, Milan (Oct): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- Techorama Netherlands (Sep): Correcting Common Async/Await Mistakes in .NET (slides, code, recording); Xamarin + GraphQL (slides and code)
- THAT Conference (Aug): Creating iOS and Android Apps in C# Using Xamarin (slides and code)
- Xamarin Developer Summit, Houston (Jul): Xamarin + GraphQL (slides and code); Xamarin.Essentials Essentials
- Developer Week (DWX), Nuremberg (Jun): Xamarin + GraphQL (slides and code); Creating iOS and Android Apps in C# Using Xamarin (slides and code)
- NDC Oslo (Jun): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- Microsoft Build 2019 (May): Xamarin + Microsoft Learn (slides, code, recording)
- Orlando Code Camp (Mar): Correcting Common Async/Await Mistakes in .NET (slides, code, recording); Xamarin + GraphQL (slides and code)
- Visual Studio Live!, Las Vegas (Mar): Creating iOS and Android Apps in C# Using Xamarin
- Boeing, private session (Feb): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- OOP Konferenz, Munich (Jan): Easily Add AI to Your Apps (Cognitive Services) (slides and code)
2018
- Dutch Mobile .NET Meetup (Dec): Text Message Sentiment (TextMood) (slides and code)
- DevDay.be, Belgium (Nov): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- Update Conference, Prague (Nov): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- Visual Studio User Group Vienna (Nov): Xamarin + IoT (slides and code)
- Samsung Developer Conference, San Francisco (Nov): What's New in Tizen .NET? (slides, code, recording)
- West Virginia University, guest lecture (Oct): Creating iOS and Android Apps in C# Using Xamarin (slides and code)
- DevFest Weekend (Oct): Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- NDC Sydney (Sep): Easily Add AI to Your Apps (Cognitive Services) (slides, code, recording); Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- THAT Conference (Aug): Easily Add AI to Your Apps (Cognitive Services); Correcting Common Async/Await Mistakes in .NET (slides, code, recording)
- Xamarin + IoT workshop, San Francisco (Jul): Creating iOS and Android Apps in C# Using Xamarin (slides, code, recording)
- mDevCamp, Prague (Jun): Easily Add AI to Your Apps (Cognitive Services) (slides and code)
- Xamarin workshop, Prague (Jun): Creating iOS and Android Apps in C# Using Xamarin
- Canada's Technology Triangle .NET User Group (May): Xamarin + IoT
- Xamarin workshop, Montreal (May): Creating iOS and Android Apps in C# Using Xamarin
- Microsoft Build 2018 (May): Building Smart Apps (Microsoft Build theater session)
- DotNext, St. Petersburg (Apr): Easily Add AI to Your Apps (Cognitive Services)
- Carnegie Mellon University, guest lecture (Apr): Xamarin + IoT; Easily Add AI to Your Apps (Cognitive Services)
- North Florida Xamarin User Group (Mar): Easily Add AI to Your Apps (Cognitive Services)
- Orlando Code Camp (Mar): Easily Add AI to Your Apps (Cognitive Services)
- CocoaHeads, Lehi, Utah (Mar): Easily Add AI to Your Apps (Cognitive Services)
- On .NET (Microsoft show) (Jan): Correcting Common Async/Await Mistakes in .NET
Missing something? Every talk page above stays live, so links and QR codes from past events keep working. Email me to book a talk.