NDC London 2023
2023-01-23..2023-01-27
London, United Kingdom
[NDC London 2017, NDC London 2018, NDC London 2019, NDC London 2020, NDC London 2021, NDC London 2023, NDC London 2024, NDC London 2025, NDC London 2026]
who it's for
.NET developers, software developers, cloud architects, DevOps engineers, security engineers, frontend developers, data engineers
topics
Hot Chocolate GraphQL on ASP.NET Core; FIDO2 WebAuthn passwordless auth; C# 11 language features; Dapr with Azure Container Apps; CodeQL code scanning and Dependabot; Blazor in .NET MAUI hybrid apps; serverless idempotency patterns; OpenAPI with .NET APIs; property based testing in .NET; probabilistic data structures
| title | author | length |
|---|---|---|
| Building modern applications with GraphQL 2023 and beyond in ASP.NET Core 7 | Michael Staib | 01h 05m |
Builds a GraphQL backend on ASP.NET Core 7 using Hot Chocolate, showing a live crypto dashboard (one GraphQL request per view) with queries, mutations… | ||
| The Next Decade of Software Development | Richard Campbell | 01h 07m |
Predicts Moore's Law hits a hard limit within the next decade because transistors approach atomic scale, cites Moore's Law ends within a decade and compares… | ||
| NOPASSWD: Building a Passwordless Cloud Infrastructure | Kyle Kotowick | 50m |
Demonstrates a full passwordless cloud stack that replaces AWS IAM keys, VPN passwords, DB credentials and CICD secrets using FIDO2/WebAuthn for login, Azure… | ||
| Clone yourself with Azure Custom Neural Voice | Callum Whyte | 01h 06m |
Shows how to use Azure Custom Neural Voice to build a usable voice clone: the free 20–50 utterances “light” flow records in-browser (about 15 minutes) and… | ||
| What's new in C# 11 | David Wengier | 58m |
C# 11 adds concrete changes with examples and compiler demos: raw string literals let you embed content without escapes by using n+1 quotes, ignore the initial… | ||
| The Future of Energy | Richard Campbell | 01h 01m |
Current UK electricity use hits about 15 terawatts peak and grid choices hinge on costs and reliability: coal supplies <2% now, last plants closing 2024… | ||
| Sockets, Sparks, and Magic Smoke | Dylan Beattie | 59m |
Covers concrete numbers and real builds: a proposed mechanical Venus rover that uses wind and reflective semaphore plates instead of electronics, Voyager’s… | ||
| Vapourware: The best software that never was | Anders Norås | 48m |
A tour of concrete failures: a Flash prototype shows WinFS based on SQL Server and Avalon UI features but the project resets and bans .NET from the kernel… | ||
| A perfect match: Dapr & Azure Container Apps | Sander Molenkamp | 01h 02m |
Shows a runnable microservice sample that wires Azure Container Apps with Dapr sidecar injection to solve service discovery, state and pub/sub. Builds three… | ||
| Functional Programming with C# | Simon Painter | 01h 09m |
Shows how to write functional C# using only built‑in features: LINQ and IEnumerable, Func delegates, extension methods, switch expressions, records and init… | ||
| From App Security to Dev Security – Shift left with GitHub Advanced Security | Michael Kaufmann | 54m |
Claims that shifting security into the developer experience reduces breaches by catching issues earlier and not slowing teams down. Demonstrations use CodeQL… | ||
| .NET MAUI Blazor - Build Hybrid Mobile, Desktop, and Web apps | Gerald Versluis | 01h 02m |
Builds a hybrid app by hosting Razor components inside a .NET MAUI app using a Blazor WebView that renders HTML/CSS inside an embedded browser but runs as… | ||
| Practical tips to elevate your UX and accessibility | Jessica Engström | 54m |
Concrete fixes: move labels above inputs cuts visual fixations from 32 to 18 on a form, and splitting long numbers into chunks or pages with a progress bar… | ||
| Writing Code with Code: Getting Started with the Roslyn APIs | Steve Gordon | 57m |
Demonstrates using the Roslyn APIs and Microsoft.CodeAnalysis.CSharp to turn a JSON/TypeScript-driven spec (processed with TS-morph) into a schema.json and… | ||
| Exploring Serverless Options for .NET in Azure, AWS, and Beyond | Spencer Schneidenbach | 01h 02m |
Compares deploying the same .NET function across Azure, AWS and Google, ran 300 requests to measure failures and monitoring; Azure gives rich telemetry via… | ||
| What is X++.net? | Brent Dawson | 47m |
X++ is the Dynamics 365 Finance & Operations language that compiles inside Visual Studio but code lives inside SQL as models rather than DLLs, so builds must… | ||
| Exploring patterns to Debug Your Life | Dennie Declercq, Miriam Perrone | 53m |
Argues that recurring life patterns behave like code patterns and can be debugged using specific techniques: a CBT-style reframing process (CBT… | ||
| An Infrastructure as Code Bake-off, comparing ARM, Terraform and Bicep | Mike Benkovich | 01h 05m |
Live demo builds a small .NET web dad app and deploys it to Azure via three IaC paths: raw ARM JSON (edited in VS/VS Code), Bicep (decompile ARM → decompile… | ||
| Adding Live, Interactive Video to Your Application with Amazon IVS | Todd Sharp | 51m |
Amazon IVS is a managed low‑latency live streaming platform with SDKs for web, iOS, Android and server languages that creates channels programmatically… | ||
| Running a real world, mission-critical system on Azure | Loek Duys | 59m |
A production-ready gas‑storage control system runs on Azure using Docker, AKS, Azure SQL and an active‑active messaging design (Redis/Service Bus), with… | ||
| How Kubernetes optimisation can combat climate change | Annie Talvasto | 59m |
Claim: optimizing Kubernetes deployments meaningfully cuts CO2 by lowering runtime and shifting where and when compute runs. Demo uses KEDA autoscaling with an… | ||
| Emulating a Game Boy in .NET 6 | Wesley Cabus | 56m |
Emulates a Game Boy as a .NET 6 C# project by implementing the SM83 CPU, picture and audio units, memory-mapped I/O, boot ROM checks and cartridge bank… | ||
| CSS Techniques for Blazor Developers | Ed Charbeneau | 01h 03m |
Explains concrete techniques: install and run the dart Sass binary (choco/brew) and hook it into MSBuild to compile without Node; use CSS isolation generates… | ||
| Zero Downtime Application Deployments on Azure PaaS | Marcel de Vries | 01h 04m |
Shows how to get true zero downtime on Azure PaaS by using Azure DevOps pipelines, Azure Web Apps deployment slots (up to 20, cookie‑based routing and… | ||
| How to Build a Quokkabot | Amy Kapernick | 57m |
A working quokka-identifying chatbot that accepts WhatsApp messages and emails, uses Twilio WhatsApp API and SendGrid for I/O, runs on Azure Functions, and… | ||
| Developing Flexible Authorisation Capabilities in ASP.NET Core | Jason Taylor | 47m |
Demonstrates a concrete, working extension to ASP.NET Core: a Blazor WebAssembly app hosted on ASP.NET Core that replaces brittle role edits with Blazor… | ||
| Getting API security right | Philippe De Ryck | 52m |
A survey of ~30 e‑health apps finds 77% had hard‑coded API keys and 7% exposed credentials, and every inspected backend shows broken object‑level authorization… | ||
| Building Secure Microservices in Azure | Jimmy Bogard | 01h 05m |
Describes a concrete .NET 6 demo that secures microservices with Azure AD using client credentials for machine-to-machine calls, managed identities for… | ||
| How to deprecate a feature the right way | William Bishop | 37m |
Concrete plan: convene a cross‑functional working group (product, engineering, customer success) and reverse‑engineer a retirement date from a six month… | ||
| Owning Your Experience: Talking about Mental Health In the Workplace | Arthur Doler | 54m |
Argues that experiential language beats clinical labels for workplace conversations, showing concrete scripts: an asking script, offering script… | ||
| Hyper Speed! When Big Data Blooms | Scott Helme | 48m |
Built a telemetry pipeline that scales from a few hundred reports to 65,000 JSON payloads per second at peak, with growth milestones from 1M/day to 1M/hour… | ||
| Goodbye controllers, hello Minimal APIs | Nick Chapsas | 54m |
Minimal APIs use C# 9/10 features like top-level statements and implicit usings plus inferred lambda types and attributes on lambdas to remove MVC boilerplate… | ||
| You Keep Using That Word: Asynchronous And Interprocess Comms | Sam Newman | 01h 01m |
Claim: the word "asynchronous" is meaningless without context because people use it to mean different things — non-blocking/await code using futures or… | ||
| Ethical Machine Learning | Kesha Williams | 54m |
Lists real failures and workable fixes: COMPAS biased against people of color and Amazon recruiting tool scrapped for penalizing women, plus more than one… | ||
| Building cloud-ready applications in .NET | Layla Porter | 01h 02m |
Live demos show concrete wins: a RabbitMQ topic exchange that publishes orders and a consumer that acknowledges messages successfully, a Eureka service… | ||
| What's new in C#? Exciting new features in C# 8.0, 9.0 and 10! | Filip Ekberg | 01h 00m |
C# 8–10 adds concrete, compiler-driven tools: nullable reference types (enabled by default on .NET 6) surface likely nulls as warnings or errors so builds fail… | ||
| “Wouldn’t it be cool…” and other bad design approaches | Billy Hollis | 01h 05m |
Shows concrete failures and fixes: F‑35 touchscreens suffer ~20% failure after replacing tactile switches; Story Remix demo adds pointless explosions; a… | ||
| Celebrity Deathmatch: Akka.NET vs Orleans | Hannes Lowette | 01h 01m |
Direct comparison of two .NET actor frameworks: Akka.NET uses local object references, offers 10 million msgs/s in the presenter’s laptop benchmark, favors… | ||
| Where we're going... we don't need batch jobs | Adam Ralph | 54m |
Argues that recurring batch jobs become unnecessary by modelling future events as persistent timeouts: implement a saga that maintains a single-row sliding… | ||
| Message processing failed! But what's the root cause? | Laila Bougria | 58m |
Shows how to find root causes across services by combining integration tests, message-level unit tests that assert outgoing messages and ordering, and… | ||
| Hostile JavaScript: Attacking and Defending the Browser | Todd H. Gardner | 40m |
Shows concrete browser attacks and defenses: demonstrates a geocities demo that loads third‑party scripts, implements monkey patching to override fetch and… | ||
| How to use Chrome DevTools to improve accessibility of your webpage | Dominika Zając | 47m |
Demonstrates concrete DevTools steps: use Emulate vision deficiencies (Rendering) to see color-blind or blurred views, open CSS Overview to list palette and… | ||
| Micro-Frontends in AWS | Luca Mezzalira | 59m |
Micro-frontends map to business subdomains, enforce team ownership, and minimize shared libraries so deployments don’t require cross-team coordination… | ||
| Incident Management - Talk the Talk, Walk the Walk | Hila Fish | 45m |
Five concrete practices: a five‑pillar workflow — identify and categorize, notify and escalate, investigate and diagnose, resolve and recovery, then closure —… | ||
| Super Hero Layouts | Anton Ball | 46m |
Recreates comic layouts using concrete techniques: a 16‑column CSS Grid with 12px gaps and grid-auto-rows for Golden Age staggered panels; multi-row spanning… | ||
| Running Blazor in production, lessons learned | Jimmy Engström | 57m |
Team runs Blazor in production for over two years, started seven days after GA and credits it with saving a project; they run Blazor Server, WebAssembly and… | ||
| Power BI for the Developer | Peter Myers, Chris Webb | 58m |
Builds a real report by joining Azure SQL operational sales data with a Wikipedia-scraped population table (52 rows added), creates a quick DAX measure for… | ||
| Apache Kafka in 1 hour for C# Developers | Guilherme Ferreira | 55m |
Shows a working C# pipeline: Patreon webhooks -> Azure Function HTTP trigger -> Confluent Cloud Kafka topic, produced and consumed with KafkaFlow on .NET… | ||
| GitHub + Azure: Better Together! | April Edwards | 55m |
Live demo shows code edited in a GitHub Codespace, pushed to a branch blocked by push protection when a secret is detected, then scanned by CodeQL and… | ||
| Building games in .NET MAUI | Shaun Lawrence | 54m |
Shows a working 2D engine called Orbit game engine built on .NET MAUI using the MAUI GraphicsView + Dispatcher loop to update state, render and wait (16 ms… | ||
| Pride & Prejudice & C# | Simon Painter | 31m |
C# Markov chains read Pride and Prejudice from Project Gutenberg, split into sentences, replaced punctuation with spaced tokens, and treat 2-word state pairs… | ||
| The Modern Trolley Problem - Responsible AI Principles | Michelle Mei-Ling Sandford | 58m |
Demonstrates training a model with Custom Vision (started with 15 images, ~1 hour to train ~100) and deploying it to an Azure Percept device to detect cones… | ||
| Build it fast, make it quick | Cory Gideon | 52m |
Warning against premature optimization with concrete counters: a legacy payment job grows from a few requests to 40,000 checks/hour, 15 minutes each and… | ||
| Logging, tracing and metrics: instrumentation in .NET and Azure | Alex Thissen | 01h 01m |
Demo builds a .NET web API + web app (Docker compose) instrumented with Application Insights, Azure Monitor, Serilog/Seq and OpenTelemetry-compatible… | ||
| Building confidence in concurrent code with a model checker | Scott Wlaschin | 01h 07m |
Demonstrates using TLA+ / TLC to model-check concurrency: a count-to-three model reveals a deadlock reached until a loop (stuttering) and weak fairness are… | ||
| Building Operable Software with TDD (but not the way you think) | Martin Thwaites | 52m |
Argues that tests should exercise service boundaries not mocked internals, showing a working, production‑like .NET system built over two years that uses… | ||
| Designing and Facilitating Better Workshops | Nick Tune, Mike Rozinsky, Dan Young | 59m |
Practical playbook for running workshops: a tested checklist of 16 design aspects (time, size, framing, power dynamics) plus low-tech and digital… | ||
| Discussing Backend For Front-end | Nicolas Fränkel | 41m |
Argues that device-specific aggregation belongs to a Backend‑For‑Frontend team to avoid exploding client calls and duplicated per-service device logic… | ||
| Top 5 techniques for building the worst microservice system ever | William Brander | 41m |
Five concrete antipatterns and their painful consequences: converting a monolith to many HTTP services on .NET causes more threads to linger and Gen2… | ||
| From Domain Boundaries to Software Architecture | Maxime Sanglan-Charlier | 54m |
Shows how to find concrete service boundaries by running Event Storming, then validating flows with Domain Message Flow Modelling and locking decisions with a… | ||
| Refactoring Is Not Just Clickbait | Kevlin Henney | 01h 07m |
Argues that refactoring is a design process not just an IDE shortcut, citing Martin Fowler’s definition and Bill Opdyke’s thesis, and shows concrete examples… | ||
| Pilot Critical Decision Making skills | Clifford Agius | 01h 09m |
Explains a concrete decision routine used in cockpits: the TDODAR framework (Time, Diagnose, Options, Decide, Assign, Review), practiced in full-motion… | ||
| Spaces, squares, and circles - an intro to UI design | Ash Banaszek | 01h 02m |
Covers practical, repeatable rules: use component libraries like Material or an internal Storybook to avoid inconsistent controls; follow atomic design and… | ||
| User testing in production: how to run a public beta | Eli Holderness | 47m |
Explains how to run a public beta from a developer-tooling perspective: start when the MVP lets users solve a new problem, keep it opt‑in and reversible… | ||
| OpenAPI & .NET: You're Doing It Wrong | Mark Rendle | 01h 01m |
Argues that teams should write and maintain the OpenAPI YAML as the source of truth instead of relying on Swashbuckle/NSwag generation, store it in Git, and… | ||
| Keynote: Why web tech is like this | Steve Sanderson | 01h 01m |
The history traces concrete artifacts and surprises: a 730-line C server that listens on port 2784 then later 80 and only serves files via telnet, a NeXT… | ||
| Fun with Algorithms | Tess Ferrandez-Norlander | 57m |
Covers concrete algorithms and when to use them: binary search (1–100 → 7 tries, 1M → ~20, 1T → ~29) and using Python’s bisect for non‑manual divides; graph… | ||
| Intentional Code - Minimalism in a World of Dogmatic Design | David Whitney | 50m |
Argument: intentionality in software design beats dogma and every single character matters, not just naming or SOLID rules. Shows a real rewrite: collapsing… | ||
| Tactics for Building Background Services in .NET | Kevin Griffin | 01h 00m |
Compares concrete tactics: runs a demo cleanup job that deletes temp files on a 15s schedule to show how .NET hosted services and Windows services run inside… | ||
| VSCode for the C# Developer | Tim Corey | 54m |
Step-by-step setup shows VS Code plus the .NET SDK and dotnet new templates create console, class library, Blazor Server and even WPF/WinForms projects that… | ||
| One Serverless Principle to Rule Them All: Idempotency | Adrienne Braganza Tacke | 30m |
Idempotency is presented as the single serverless principle that makes safe retries possible: generate an idempotency key, check a DynamoDB persistence store… | ||
| Azure Static Web Apps with Blazor and .NET | Melissa Houghton | 48m |
Deploys a Blazor WebAssembly front end and .NET back end using Azure Static Web Apps with an auto-generated GitHub Actions workflow that builds and publishes… | ||
| Psychologically Safe Reliability Management | Lesley Cordero | 40m |
Argues that reliability teams must treat psychological safety as an engineering problem, not just a slogan: chronic, repetitive failures erode trust and cause… | ||
| Let's Code an incremental source generator with Roslyn | Stefan Pölz | 01h 04m |
Live codes an incremental Roslyn source generator that emits enum IsDefined methods as compile-time partial methods, using .NET 6 incremental APIs and… | ||
| Throw away your Xbox - The future of games is written in JavaScript | Opher Vishnia | 54m |
A claim: modern browsers already run real multiplayer 3D matches without installs, unlike Apex Legends’ 67 GB download — demos load from a URL and play… | ||
| The Computer Science Behind Colour | Hayley Stewart | 54m |
Demos mix paint (blue+yellow→green, subtractive) and flashlights (red+green→yellow, additive) to show why screens use RGB = red green blue. Explains eye… | ||
| Property-Based Testing | Lucy Mair | 51m |
Introduces property-based testing with concrete results: uses FSCheck (and Fast-check for JS) to run ~100 generated cases, finds real bugs and then shrinking… | ||
| Is everything difficult or is it just me? | Jo Franchetti | 01h 04m |
Claims that chronic workplace stress drives a constantly active autonomic nervous system and links anxiety, burnout and depression backed by one cited figure… | ||
| 50 ways to show your data | Thomas Hütter | 01h 01m |
Shows reproducible R code using ggplot2 and tidyverse to turn messy tables into tidy data, including converting a scraped Formula One 2016 dataset to long… | ||
| How to steal Azure DevOps secrets | Björn Weström | 39m |
Demonstrates concrete attacks and fixes: a secret printed in logs is recovered by splitting it (a substring masking bypass), or written to disk and retrieved… | ||
| Understanding Probabilistic Data Structures with 112,092 UFO Sightings | Guy Royse | 59m |
112,092 UFO reports from a public CSV (screen-scraped by Tim Renner) become a testbed for concrete probabilistic tools: Bloom filter for membership with a… | ||
| Testing in Production | Talia Nassi | 34m |
Testing in production replaces brittle staging with concrete steps: deploy behind feature flagging, run automated checks (recommendation: Robot Framework)… | ||
| The invisible elephant in the room | Magali Milbergue | 55m |
Many coworkers have invisible disabilities that get forgotten mid-conversation, yet around 20% of the population counts as disabled and discrimination doubles… | ||
| OpenTelemetry tracing for .NET developers | Vagif Abilov | 51m |
Explains how OpenTelemetry integrates with .NET/C# by adding NuGet SDK + instrumentation packages and exporters (Jaeger, console), showing a console app that… | ||
| Making a difference in open-source | Florian Verdonck | 51m |
A developer gets paid by G-Research to work one day a week on F# tooling and refactors phantomus, releases phantomus v5 (Sept) and grows a maintainer team so… | ||
| Maths or magic? End-to-end encryption explained like I'm five | Paolo Insogna | 29m |
Live demonstration shows a hand‑built end‑to‑end scheme using a public interactive implementation of Diffie‑Hellman key exchange, with a concrete math… | ||
| Exciting new features in SQL Server for developers | Hasan Savran | 56m |
Covers concrete SQL Server additions: row-level JSON functions like json_modify/json_value plus new creators json_array/json_object and json_path_exists, and… | ||
| Uno Platform: Your Apps Everywhere | Martin Zikmund | 52m |
Uno Platform runs the same C# + XAML codebase on Windows, Android, Linux, macOS, iOS and WebAssembly, showing a calculator demo on Windows/Android/WSL and a… | ||
| The Metaverse - Beyond the buzzword | Andreas Erben | 59m |
Walkthrough of concrete tooling and experiments rather than buzzwords: an early AR mascot prototype literally fails until claws are removed, proving small… | ||
| Azure Static Web Apps for the Enterprise | Stacy Cashmore | 59m |
Shows how to run Azure Static Web Apps in enterprise mode by automating resource creation, domain setup and CI/CD: it builds three GitHub workflows that create… | ||
| Use your source code to document your application | Michaël Hompus | 01h 00m |
Tool walks C# syntax trees and the semantic model to extract real behavior: it finds command and event types, locates command handlers and all event… | ||
| Deploying your JS App Anywhere with .NET MAUI | Alyssa Nicoll | 44m |
Shows how to package any built JavaScript app (Angular/React/Vue) inside a MAUI Blazor hybrid project by copying the production build into the app’s wwwroot… | ||
| Don’t Build a Distributed Monolith | Jonathan "J." Tower | 01h 04m |
Claims that systems built as “microservices” often become distributed monoliths that perform worse than either a monolith or true microservices, and lists 10… | ||
| nothing matches | ||