NDC London 2025
2025-01-27..2025-01-31
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 architects, backend developers, platform engineers, web developers, engineering managers, QA and test engineers
topics
Azure Service Bus tracing; W3C Trace Context; OpenTelemetry custom spans; modular monolith with EF; C# 14 language features; nullable reference reflection; Blazor web apps and emulation; self-hosted LLMs and RAG; event storming and CloudEvents; GitHub Actions for .NET deployments
| title | author | length |
|---|---|---|
| Modern Observability and Event Driven Architectures | Martin Thwaites, Ian Cooper | 01h 05m |
Builds a one-minute pizza shop demo with three services (storefront, pizza shop, courier) and shows C#/JavaScript code, Azure Service Bus and Kafka, and… | ||
| Advanced Cloud Native Development with .NET Aspire | Scott Hunter, Maddy Montaquila | 01h 01m |
Aspire generates a cloud-agnostic manifest file that tools convert into provider resources, and CI/CD flows run via a generated GitHub Actions workflow (edit… | ||
| Locknote: Confessions of an Imposter | Rendle | 53m |
Confesses can't implement Quicksort even with Co‑Pilot and stops Advent of Code day eight when Dijkstra and Fibonacci‑heap details appear; reports learning… | ||
| Where next, C#? | Mads Torgersen | 01h 00m |
C# 14 roadmap is tentative but concrete: work surfaces on GitHub (Roslyn and csharplang), many features already in preview behind LangVersion dictionary… | ||
| On Becoming a Space-Faring Civilization | Richard Campbell | 01h 00m |
DART deliberately changes an asteroid moonlet’s orbit by about 30 minutes instead of the planned 1 minute, proving kinetic deflection and prompting ESA’s Hera… | ||
| You Don’t Know Git | Edward Thomson | 01h 02m |
Covers concrete git hacks: global aliases for compact git lol and git graph, color tweaks (256/hex when terminal supports), faster repo searches with git grep… | ||
| Practical advice for building glorious monoliths | Glenn F. Henriksen | 01h 04m |
Built a single deployable "glorious monolith" for a Norway scaleup instead of microservices, avoiding a 60–70k‑line single file and an 11‑file change ripple… | ||
| Getting to 300 million requests a month with a one man AI/Dev-Ops team | Rob Frelow | 54m |
Scale story graph to 300 million requests a month as a one‑person AI/DevOps team by swapping cloud for self‑hosting, using Redis queues + PG Bouncer for… | ||
| Navigating complexity in event-driven architectures: A domain-driven approach | David Boyne | 55m |
Event-driven systems start simple and then suffer accidental complexity: undocumented payloads, leaked implementation details, unknown consumers and a… | ||
| Null & Void - Everything about Nothing in .NET | Stefan Pölz | 01h 06m |
Step-by-step, the session shows that C# nullable reference types are compile-time annotations (implemented as attributes with context codes 0/1/2)… | ||
| Useful and Beautiful Developer Docs and How to Create Them | Johannes Dienst | 48m |
A practical playbook for turning unusable docs into a working product: derive user goals from sales/support, break each goal into modular learning objectives… | ||
| Speech Technologies for a Multilingual World | Jessica Rose | 32m |
Crowdsourced speech dataset Common Voice curates 130+ languages (largest hours: Catalan), released quarterly under CC0 licence, built only after language… | ||
| The subtle art of supporting mature products | Flavia Circiumaru | 42m |
A company discovers the standard rotation causes 900 engineer days of unaccounted work in a year and shifts from six‑week Shape Up experiments to a dedicated… | ||
| 82 Bugs I Collected in a Year You Won’t Believe Made It to Production | Francois Martin | 51m |
Collected 158 bugs across about two years with 124 in 2024, showing 73 UI bugs as the biggest category and surprising concentrations in responsiveness… | ||
| Open Source, Open Mind: The Cost of Free Software | Dylan Beattie | 01h 04m |
History and hard examples of free software show concrete tradeoffs: the Linksys WRT54G firmware prompts a GPL source demand and a later Cisco settlement; the… | ||
| Can you trust your (large language) model? | Jodie Burchell | 01h 05m |
Argues that public benchmarks and human exams mislead: scores can reflect memorized training data not reasoning, with GPT‑4 solving Codeforces puzzles released… | ||
| The Philosophy of Architecture | Barry O'Reilly | 52m |
Claim that default architect mindset called logical structuralism causes fragile systems by freezing complex social contexts into static models and thus… | ||
| Keynote: The past, present, and future of AI for application developers | Steve Sanderson | 58m |
Starts with a live Eliza demo showing 230 lines of string replacements, then a Markov generator trained on NDC session descriptions to produce plausible… | ||
| NDC Party: A Brief History of Computer Art | Anders Norås | 47m |
Signed 1978 "hello world" print sells for $8,500 and 1960s Bell Labs engineers turn a Fortran plotter print into the first computer art; mechanical analog… | ||
| Write Uno Time, Run Everywhere with the Uno Platform | Joseph by Guadagno | 58m |
Shows a working .NET/XAML single-codebase that compiles to Android, iOS, Windows and WebAssembly using the Uno Platform; demos use Visual Studio (and Rider/VS… | ||
| Secure your Modular Monolith by pretending it's a cat | William Brander | 43m |
Advocates including user identity on every internal message, implemented in the mediator pipeline so messages that leave process sign messages with private key… | ||
| Building a modern, native app for Windows: Which UI framework should you choose? | Alvin Ashcraft | 57m |
Demos show a single shopping-list app implemented in WinForms, WPF, UWP, WinUI, .NET MAUI, Blazor Hybrid and Uno so viewers see exact code and UX differences… | ||
| So Long Secure Coding - Practical Steps for Securing the entire SDLC | Laura Bell | 52m |
Covers practical SDLC steps: map every system and annotate where data and controls live, run simple threat models (use OWASP Threat Dragon) and treat… | ||
| Demystify cloud-native development with .NET Aspire | Maddy Montaquila | 01h 01m |
.NET Aspire surfaces opinionated tools, templates and NuGet integrations that wire up observability, health checks and infra so a multi-service app boots… | ||
| Effective Data Visualization | David Giard | 01h 01m |
Shows concrete rules from Edward Tufte: measure and maximize the data-ink ratio (keep ink only for real data), compute a lie factor (graphic effect ÷ data… | ||
| We are the Guardians of our Future | Tess Ferrandez-Norlander | 01h 01m |
Shows concrete failures and fixes: a model claims 90% accuracy at detecting criminals using logistic regression/KNN and a biased CalGang ground truth that even… | ||
| Fine-Grained Authorization for Modern Applications | Ashish Jha | 54m |
Claim: centralizing authorization with a Zanzibar-style relationship graph reduces code duplication and speeds auditing. Implementation: OpenFGA (open source)… | ||
| So You Want to Maintain a Reliable Event-Driven System | James Eastham | 49m |
Advice for running event systems: publish explicit versions (for example use order-confirmed-V1 topics) and set a hard deprecation date; use the outbox pattern… | ||
| Build RAG from Scratch | Phil Nash | 53m |
Live-coded a working RAG pipeline that starts with a 2,938-dim bag-of-words vector built from ~100 scraped talk titles and descriptions, compares queries using… | ||
| The Definition Of Insanity | Sam Newman | 56m |
Argues that timeouts, retries, idempotency are the real levers for resilient distributed systems and gives concrete fixes: tune histograms-first timeouts… | ||
| Build Your Own Game Engine in the Browser | David Whitney | 50m |
A retro‑inspired asynchronous multiplayer platform engine runs entirely in the browser, implemented in TypeScript + Canvas with requestAnimationFrame and the… | ||
| Performance loop—A practical guide to profiling and benchmarking | Daniel Marbach | 01h 03m |
Shows a concrete profile with dotMemory/dotTrace workflow and a small MSMQ-based harness that publishes 1,000 messages and isolates the NServiceBus pipeline… | ||
| Architecture isn't Kubernetes | Diana Montalion | 58m |
Argues that architecture is designing relationships not tool choice, showing how a legacy monolith becomes microservices after three tries because teams’… | ||
| OPFS: Next evolution in web storage or just another buzzword? | Piyush Gupta | 53m |
OPFS is a sandboxed origin-scoped file system that supports in-place writes and a sync access handle for web workers, letting large video streams be written to… | ||
| Cracking the Furby code: The path to evolve an icon | Luke McNeice | 53m |
Reverse engineers the original Furby firmware (a leaked 6502 assembly of ~296 pages) and shows that the “learning” is table lookup not ML, that 40 million… | ||
| Start covering your bases & Stop chasing APT headlines | Avishay Zawoznik | 52m |
End-to-end demo shows a realistic breach: phishing with a macro launches a Python/Powershell hoax shell reverse connection, attacker downloads ADFind, mimikatz… | ||
| Using GPT Visual Capabilities to Solve a Wordle Puzzle | Jennifer Marsman | 53m |
Uses GPT-4v preview plus Python pre‑processing and a GitHub repo to automate a 5‑letter Wordle (6 guesses). Builds an image pipeline that OCRs bracketed… | ||
| C#'s Functional Journey | Mads Torgersen | 01h 00m |
A clear version-by-version tour shows C# steadily adopting functional ideas: C#2 adds generics and type inference, C#3 adds lambdas, extension methods and LINQ… | ||
| Beyond The Hype: Every Day, Real World Uses for Copilot | Rob Conery | 59m |
Demonstrates GitHub Copilot inside VS Code using custom instructions to pre-load specs, code styles and a sqlite schema, then generates a working e-commerce… | ||
| Keynote: AI without the BS, for humans | Scott Hanselman | 59m |
Argues that small models often beat cloud hogging for real users and demos a working pipeline: a Python/Node proxy that extracts token log‑probs and a token… | ||
| Develop a Second Brain | Michela Bertaina | 43m |
Claim: ineffective internal knowledge costs big companies $31 billion lost per year. Workflow prescribes CODE — Capture, Organize, Distill, Express — and PARA… | ||
| Post-quantum cryptography for .NET developers | Filip W | 59m |
NIST finalizes three post‑quantum standards in August 2024 and the talk shows concrete .NET tooling: Kyber (ML KEM), Dilithium/Falcon for signatures, libs from… | ||
| Mobile App Architecture: How to Conquer the Giant! | Heather Downing | 01h 00m |
Compares concrete stacks and results: Swift/Xcode and Kotlin/Android Studio for native, Flutter, React Native, MAUI and Kotlin Multiplatform for… | ||
| The Forgotten AI of Video Games | Layla Porter | 01h 01m |
Shows concrete game AI work: Unity project for a non-player character walking a demonic hellhound, built navmeshes and A pathfinding with G/H/F cost tuning… | ||
| Dungeons Dragons & Developers | Matt Brunt | 45m |
Compares a chaotic team of four wizards (senior devs hoarding skills) with a balanced party and argues that mixed roles beat everyone being a lone hero; shows… | ||
| Codex: The Impact of English on Programming Languages | Guy Royse | 50m |
Argues English shapes both the symbols and grammar of mainstream languages, demonstrating with a regex phone-number example, a COBOL-like Englishy snippet, an… | ||
| Adventures in Spacetime | Kevlin Henney | 01h 03m |
Explains that ordering in distributed systems is fundamentally partial and shows the actual Lamport algorithm: keep a counter, increment on send, include… | ||
| How to Modernize Your Legacy ASP.NET Apps Gradually | Jonathan "J." Tower | 01h 02m |
Live migration demo upgrades an ASP.NET MVC app side‑by‑side to ASP.NET Core using YARP as a reverse proxy and the net Upgrade Assistant for project… | ||
| Thinking Like an Architect | Gregor Hohpe | 01h 02m |
Argues architects do not decide for teams but make others smarter by using concrete tools: the architect elevator to connect strategy and code, metaphors… | ||
| Leadership and the Power of Regret: Turning Emotions into Action | Arthur Doler | 57m |
Argues regret is a learning signal tied to upward counterfactuals and soothed by downward counterfactuals, not moralizing shame. Gives concrete examples: a… | ||
| Unveiling .NET Secrets with the World's Smallest C# Program | Steve Gordon | 01h 00m |
Creates a two‑character C# file "{}" and compiles it via the Roslyn CSC invoked through dotnet to produce a DLL and PDB, runs to ExitCode 0 after adding a… | ||
| When will you learn? A Teacher’s Guide to Developer Learning | Emma Burstow | 01h 02m |
Five concrete practices for ongoing developer growth: create your own curriculum that schedules brief practice, reflection and peer feedback; use specific… | ||
| How building a portable escape room made me a better developer | William Brander | 53m |
Built a portable IoT escape room using ESP8266 devices talking over MQTT/Mosquitto, with a messaging bridge to RabbitMQ for durable queuing and analytics… | ||
| 20 year old cloud native apps with .NET | Scott Hanselman | 01h 00m |
Twenty‑year‑old .NET apps compile and run on modern runtimes: legacy site images and XML “database” (≈6,000 files) move from a 30 GB physical disk to… | ||
| Consistency and Agreements in Distributed Systems | Jimmy Bogard | 01h 02m |
Argues that two‑phase distributed transactions fail in real distributed environments and even add a 10x throughput drop in testing, then demonstrates a working… | ||
| Thirteen ways of looking at a Turtle | Scott Wlaschin | 01h 06m |
Thirteen different F# implementations of a turtle graphics API appear, each making a concrete tradeoff: 13 implementations delivered in ~4 minutes each, from… | ||
| Surviving Long Event History | Vagif Abilov | 01h 03m |
Media publishing systems keep a full event journal for decades, using Akka persistent actors and an outbox for outgoing notifications, storing events in SQL… | ||
| Building a Browser Based Code Editor | Jo Franchetti | 35m |
Builds a browser editor that accepts TypeScript, syntax highlights live and executes user code by sending it to Deno Subhosting functions which return a URL… | ||
| How I built a ZX Spectrum emulator from scratch using C# and Blazor | Jimmy Engström | 50m |
A ZX Spectrum emulator written in C# and Blazor WebAssembly that runs at 3.5 MHz and 50 FPS, implements ~1,000 prefixed instructions on top of 256 base opcodes… | ||
| Testing First - Getting The How | Stacy Cashmore | 01h 02m |
Shows a pragmatic path to testing-first by building a .NET Web API with xUnit, an in-memory repository and WebApplicationFactory tests that exercise inputs and… | ||
| You’re Doing Exceptions Wrong | Matt Burke | 57m |
Four practical categories determine how to handle errors: fatal vs boneheaded vs vexing vs exogenous — treat out-of-memory and stack overflow as… | ||
| Could a Co-Pilot be an Aircraft Co-Pilot | Clifford Agius | 55m |
Shows concrete failures and prototypes: MCAS killed single‑AoA sensor failure (189 and 157 fatalities cited), engine birdsurge and Hudson ditching where pilots… | ||
| Microservices, Where Did It All Go Wrong | Ian Cooper | 55m |
Argues microservices often devolve into costly distributed monoliths because teams misread “micro” and split by convenience, not domain; cites 30–40 developers… | ||
| Those "Business People" - they just don't get me! - how to talk IT to non-IT leaders | Hanna Engel | 49m |
Practical playbook for getting budget and buy‑in: three concrete mindset prompts (ask three outcome questions), an agenda + one‑sentence call to action… | ||
| How to become a go-to person | Hila Fox | 52m |
Becoming a go-to person means proving repeatable value through concrete behaviors: follow internal channels and read designs, join or record relevant meetings… | ||
| Building the NDC London Mobile App Live! with .NET MAUI | Gerald Versluis | 01h 04m |
Live builds an NDC London companion app using .NET MAUI with a real backend: reversed Sessionize endpoints hosted as an Azure endpoint to serve speakers and… | ||
| Blazor-testing from A to Z | Egil Hansen | 59m |
Uses Playwright for browser-driven E2E with Chromium, WebApplicationFactory-hosted app on a random localhost port, headless runs and trace ZIPs (screenshots… | ||
| Building a Robot Arm with .NET 8, Raspberry Pi, Blazor and SignalR | Peter Gallagher | 47m |
A working Raspberry Pi robot arm wired to three servos (rotate, reach, grip) uses .NET 8, a single-line install script to get the SDK on Pi, System.Device.Gpio… | ||
| Coder, Coach, Catalyst - using questions to make people grow | Martin Mazur | 01h 10m |
Delivers a concrete formula: one skill: active listening, three formats: formal, impromptu, team, five questions: initiation, excavation, focus, options… | ||
| Reading Code | Marit van Dijk | 57m |
Developers spend 58% of their time reading code, so a structured practice shows faster comprehension: a code reading club meets monthly (two years running)… | ||
| The Unsung Hero of Modern Software: Asynchronous Messaging | Irina Dominte | 01h 01m |
Argues that HTTP request/response becomes brittle at scale and shows concrete alternatives: demos use MassTransit + RabbitMQ to send commands/events, spin up… | ||
| Digital Spit-Fire Interface Rage: How to Calm the Savage User | Dean Schuster | 57m |
Diary-style research of 200+ users (Hertzum & Hornbæk) finds 6.6 minutes per hour of frustration, 84% of problems repeat and 74% still complete the task; top… | ||
| AI vs Humans: Rewriting the Rules of Success | Michelle Frost | 54m |
Tracing AI milestones and measurement, the talk argues current success metrics prioritize systems that beat humans (Deep Blue 1997, AlphaGo 2016, ChatGPT 2022)… | ||
| .NET Aspire and AWS: a match made in heaven | David Pallmann | 01h 01m |
Demonstrates a workflow that starts from a Blazor UI and with one solution adds instrumentation, provisions AWS resources via CDK, and runs everything locally… | ||
| Exposing the not-so-secret practices of the cult of DDD | Chris Klug | 01h 03m |
Practical DDD tactics that can be applied today: using value objects as C# records with immutability, value equality and constructor validation to collapse… | ||
| Build Trust with Your Users Through UX | Tetiana Gulei | 45m |
Claims that first impressions form in one‑tenth of a second, then walks through concrete tactics: apply three Nielsen heuristics (match system to real world… | ||
| The future of UI is "open" | Brecht De Ruyte | 47m |
Open UI is a W3C community effort that ships concrete browser features: a popover API (popover/popover-target, actions toggle|show|hide, auto/manual/hint… | ||
| (Guitar) strings attached: from UTF-8 to EADGBE | Hannes Lowette | 59m |
Builds a complete electric guitar from scratch after becoming a licensed carpenter, makes custom radius fretboard blocks and a routed neck with an installed… | ||
| If .NET brewed beer… | Shaun Lawrence | 56m |
Build applies .NET on a Meadow F7 featherboard (32 MB RAM, 32-thread limit) to automate a DIY fermentation chamber hacked from a cooler box, using a PT100… | ||
| Can Gen AI make the world Disability inclusive? | Dennie Declercq | 57m |
Shows concrete demos: taking a photo of a medicine leaflet and having the system read dosage and side effects aloud, generating usable alternative text and… | ||
| Speak your users’ language: what to look out for when going global | Robin Martijn | 57m |
Nine concrete gotchas: prefer ISO 8601 date strings and use locale-aware formatters; display currencies with explicit currency codes and use PHP… | ||
| Design for Developers | Lex Lofthouse | 01h 02m |
Claims that developers can do practical UI work using four concrete rules: Hierarchy, Contrast, Proximity, Balance. Recommends specific tools and numbers: pair… | ||
| Prove going for a walk makes you more productive by measuring CO2 with an IoT device. | Jim Bennett | 56m |
Claims that indoor CO2 makes people drowsy and a short walk restores focus, backed by a cited Harvard finding of 21% cognitive drop when CO2 rises from ~550 to… | ||
| Inside Google's Discovery and Remediation of a Critical CPU Vulnerability | Yousif Hussin | 44m |
Google discloses an internal discovery named Reptar, a CPU flaw that triggers machine check exceptions and—per Intel analysis—can escalate to full privilege… | ||
| nothing matches | ||