CPH DevFest 2024
2024-08-26..2024-08-30
Copenhagen, Denmark
who it's for
dotnet developers, backend engineers, security engineers, engineering managers, platform engineers, frontend developers, site reliability engineers
topics
Azure Cosmos DB partitioning; zero-knowledge proofs with Concordium; Java virtual threads (Project Loom); relationship-based access control (Zanzibar); source generators for .NET; eBPF firewall with Java; verifiable credentials and DIDs; Playwright advanced testing techniques; WebAssembly components; secure React application techniques; CI/CD patterns and antipatterns
| title | author | length |
|---|---|---|
| Performance tuning for Azure Cosmos DB | Hasan Savran | 52m |
Cosmos DB physical partitions cap at 50 GB / 10,000 RU per physical partition, so bad partition keys blow up cost and scale — ChatGPT drove ~25,000 partitions… | ||
| Open-source releases: Everything we've learnt in 4 years | Linda Ikechukwu | 35m |
step-ca and step CLI run as two mature open-source projects with ~11k stars each, 800 forks and ~1,500 known users, with over 97% of code still written by the… | ||
| Building a Safer Digital World using Concordium with Zero-Knowledge Proofs | Boğaçhan Yiğitbaşı | 40m |
Concordium combines an on‑chain identity layer with zero‑knowledge proofs so wallets can emit verifiable proofs (age, license, legal entity) without revealing… | ||
| Autonomous teams require great managers | Gitte Klitgaard, Jakob Wolman | 53m |
Claim: autonomous teams only work when three things exist together — a competent stable team, a skilled manager, and a supportive system. Concrete failures… | ||
| Java 21: The revolution of virtual threads - A Deep dive | Christian Woerz | 46m |
Shows migrating a Spring Boot app from blocking to reactive to Java 21 virtual threads, using JMeter with 1,000 concurrent users and artificial delays (1,000ms… | ||
| Why Verifiable Credentials and Decentralized Identity? | Daniel Krzyczkowski | 01h 02m |
Explains that verifiable credentials follow W3C and OpenID specs, store claims in a user wallet (not on-chain), and use DIDs and DID Documents retrieved from a… | ||
| How to be a problem solver? | Carolina Pascale Campos | 57m |
Argues that being a problem solver means using concrete frameworks not buzzwords: adopt LNO (leverage/neutral/overhead) to prioritize work, keep an in-team… | ||
| Supercharging OAuth 2.0 Security | Philippe De Ryck | 01h 00m |
Walks through concrete fixes: request objects become signed JWTs so parameters can’t be tampered (JAR), or the client pushes the whole request to the STS and… | ||
| Fine Grained Authorisation with Relationship-Based Access Control | Ben Dechrai | 49m |
Relationship-based access control is shown end-to-end: an EAV model stores entities, relationships and permissions; a local demo runs in Docker with Postman… | ||
| Faster, Cheaper, Greener: Pick Three | Lea Mladineo | 58m |
Rearchitected a monolithic rule engine into a cloud native, share‑nothing pipeline on AWS using Step Functions, SQS, S3, DynamoDB, Lambda, Fargate/ECS and… | ||
| From IL Weaving to Source Generators, the Realm story | Ferdinando Papale | 39m |
Realm .NET moves from IL weaving to Source Generators after a six‑month effort and a November 2022 release that embeds the generator in the SDK; IL weaving… | ||
| Debug Like a Scientist! | Maciej Rząsa | 43m |
Shows a repeatable workflow: observe surprising failures, form falsifiable hypotheses, run tiny experiments, and iterate. Examples: an intermittent integration… | ||
| Basics Designs and How We Got Them Wrong | Adam Furmanek | 58m |
Argues that core language constructs are misdesigned and gives concrete failures: the common square/rectangle LSP example is wrong and LSP must use explicit… | ||
| XR Demystified: Separating Facts from Fiction in 2024 | Rafał Legiędź | 59m |
A clear XR timeline shows hardware and software milestones and which actually solve problems: standalone Meta Quest headsets gain monthly OS features like hand… | ||
| Build a lightning fast Firewall with Java & eBPF | Johannes Bechberger | 58m |
Claims a Java library called hello-ebpf lets Java apps compile and load eBPF programs (via libbpf and Project Panama) to the kernel, attach an XDP hook to the… | ||
| The subtle art of supporting mature products | Flavia Circiumaru | 51m |
Describes how FundApps moves from a quarterly rotational rota that produced half-answered tickets and undocumented changes to a focused dedicated support team… | ||
| ASP.NET Core Authentication and Authorization - the Key Concepts | Anders Abel | 57m |
Clear, practical mapping of ASP.NET Core authentication APIs: how AuthenticateAsync/ChallengeAsync/SignInAsync/SignOutAsync/ForbidAsync behave across cookie… | ||
| When will you learn? A Teacher’s Guide to Developer Learning | Emma Burstow | 55m |
Five practical moves: create your own curriculum by preselecting a narrow set of resources (CodeAcademy, documentation, open source repos) and schedule… | ||
| The Elephant in your Dataset: Addressing Bias in Machine Learning | Michelle Frost | 01h 00m |
Walks through the ProPublica COMPAS dataset (~7,214 rows), reproduces the recidivism score with a simple logistic regression (~76% accuracy) and shows Black… | ||
| The Future of Cloud-Native Application Development with Radius | Loek Duys | 01h 01m |
Radius is an open source CNCF platform that runs on Kubernetes and uses a CLI plus Bicep templates to define applications, environments, workspaces and… | ||
| Let's build a .NET YouTube player! For which platform? All of them! | Steve Bilogan | 01h 00m |
Builds a cross‑platform YouTube player that runs on Windows, Android, iOS, macOS, Linux and WebAssembly using Uno Platform and a single .cs project. Uses… | ||
| LLMs gone wild | Tess Ferrandez-Norlander | 57m |
Shows why retrieval augmented generation (RAG) often fails in production: embedding mismatch, bad chunking, messy PDFs and images, stale vector indexes, and… | ||
| Rust-ifying Your C# Codebase: A Tale of Adventure and Transformation | Chris Woody Woodruff | 01h 04m |
Rust claims faster native performance (near C/C++) and lower energy use than most managed languages, backed by Cargo and crates, rustup, Clippy and rustfmt for… | ||
| How to Build a Database | Liam McLennan | 52m |
A tiny readable database called Wormwood is implemented as 660 lines of TypeScript that reads newline JSON FIFA records, parses SQL-like strings into a parser… | ||
| Exposing the not-so-secret practices of the cult of DDD | Chris Klug | 01h 03m |
Demystifies concrete DDD tactics and shows what actually changes code: use C# records and value objects (personal-number, color examples) to encapsulate… | ||
| Building amazing Front-End Project with Gemma: A State-of-the-Art Open Model | Teresa wu | 44m |
Google Gemma is an open model family you can download and run locally (models are a few GB, examples show 7B and smaller 2B variants), integrate via… | ||
| Sound generation in the browser using Web Audio and C# | Kristoffer Strube | 12m |
Shows how the Web Audio API is used from C# via Blazor wrappers to generate and analyze sound: creates an AudioContext with an OscillatorNode routed through a… | ||
| Our future without passwords | Milica Mihajlija | 15m |
Passwords force frequent resets (90% several times a year, 6% daily) and cause 81% of breach‑related attacks; replacing them with pass keys uses per‑site… | ||
| Mobile Farming for Perfection | Sasha Denisov | 14m |
Cloud device farms provide real devices, remote debugging and automation so teams reproduce device-specific bugs across Android and iOS and avoid buying… | ||
| How writing just one import the wrong way slows down your website | Francois Martin | 16m |
A single import written the wrong way can pull an entire library into the client bundle: adding lodash via a default/ES-with-CommonJS mix increases the bundle… | ||
| Coding a Disability Inclusive World: 3 Stories | Dennie Declercq | 56m |
A demo social network using pictograph social network design lets low‑literacy users find local pubs; a prototype cloth-based digital agenda syncs with cheap… | ||
| Athens to Algorithms: Zeno as a Tech Leader | Andrew Murphy | 42m |
Zeno of Citium’s life—losing a Tyrian purple cargo in a shipwreck and becoming penniless, then learning philosophy in an Athenian bookstore—frames three… | ||
| Side Projects: The Unsung Heroes of Software Development | Rasmus Kromann-Larsen | 51m |
A weekend project becomes poe.ninja, a Path of Exile economy site built with ASP.NET Core, C#, TypeScript and React that processes ~500 TB of API data and… | ||
| Total ReDoS: the dangers of regex in JavaScript | Phil Nash | 43m |
Explains concrete ReDoS cases and fixes: a simple A+\\$ pattern causes quadratic backtracking and crashed Stack Overflow for 34 minutes, complex .. sequences… | ||
| Build your own CoPilot | Callum Whyte | 56m |
Shows how to build a custom CoPilot using Azure OpenAI Service and Semantic Kernel with .NET, wired into an Umbraco CMS plugin architecture. Demonstrates… | ||
| The Power of Dev Containers and GitHub Codespaces | Chris Ayers | 54m |
Live demos show Dev Containers + GitHub Codespaces reproducibly spin up full dev environments from a repo in minutes (first pull 3–5 min, subsequent launches… | ||
| Unix shell - We can do better now | Ilya Sher | 11m |
Claim: the Unix shell still uses a 1974–75 telegraph paradigm and must evolve to interactive objects on the screen that plugins manipulate. Implementation… | ||
| Harnessing AI for Malevolence: A Hackers Tale | Mackenzie Jackson | 16m |
Live demos show prompt injection bypasses 15 of 20 online summarizers tested, including an email assistant coerced to add a malicious “evil.com” link and speak… | ||
| Test-Driven Leadership: Crafting Testable Strategies | Andrew Murphy | 14m |
Begins with the Hawthorne effect — productivity rises when people feel observed — and proposes Test-Driven Leadership: apply red green blue refactor cycles to… | ||
| A11y Broke My Build | Kristoffer Nordström | 13m |
A tiny Vue to‑do app gets layered with automated checks: linting with ESLint + vue‑a11y, unit tests using axe‑core, and end‑to‑end checks with Playwright, plus… | ||
| Tales from the .NET 8 Migration Trenches | Jimmy Bogard | 01h 04m |
Migrates a large .NET 4.8 ASP.NET MVC app to .NET 8 incrementally by deploying an empty ASP.NET Core app that hosts system.web adapters and YARP as a reverse… | ||
| The community power in the developers life | Michela Bertaina | 48m |
Draws on a survey of 250 communities from 33 countries and concrete stories: one member shifts from agriculture into tech, organizes six local groups then… | ||
| Flutter + Firebase. Explosive combination | Sasha Denisov | 38m |
Shows a one–codebase “movies” app running on iOS Android and web that implements Firebase Authentication (Google Apple email phone anonymous), stores trailers… | ||
| Modern & secure adaptive streaming on the Web | Katarzyna Dusza | 58m |
Shows how MP4s are fragmented and served with DASH using Bento4 and ffmpeg, producing an init segment plus numbered media segments and a stream MPD that lists… | ||
| In praise of programming minimalism | Stian Veum Møllersen | 38m |
Argues that removing language features exposes their value by reconstructing a concatenative programming language implemented in JavaScript, using HTML Canvas… | ||
| From Hell to Heaven: Porting Doom to MAUI | Nico Vermeir | 56m |
A .NET WPF Doom port is adapted to .NET MAUI by reusing the core engine, packaging the WAD into the app container and swapping WritableBitmap for SKBitmap via… | ||
| So you wanna be a demoscener | Espen Sande-Larsen | 53m |
History and mechanics of demos from Commodore 64 assembly and SID trackers through Amiga mods to PC VGA and modern GPU shaders, with concrete how-tos… | ||
| Evil Tech: How Devs Became Villains | Sergès Goma | 50m |
Shows a clear claim: engineers face structural ethical tradeoffs, not just bad intent. Cites the code of ethics (1987) and a literature scan finding only 16%… | ||
| Failure is not an option: durable execution + Dapr = 🚀 | Marc Duiker | 48m |
Shows durable execution using Dapr Workflow (v1.14) and demos code in C# running with the Dapr CLI multi-app run. A validate-order workflow persists state to a… | ||
| .NET gRPC - deep dive | Irina Dominte(Scurtu) | 01h 01m |
Live demo of .NET gRPC builds a Visual Studio template service and simple console clients that exercise all four RPC modes including server streaming and… | ||
| Advanced Playwright Techniques for Flawless Testing | Debbie O'Brien | 51m |
Playwright demonstrations use the VS Code codegen to record TypeScript tests, the trace viewer for DOM snapshots and debugging, and built‑in locators and… | ||
| In Prompts We Trust | Jiaranai Keatnuxsuo | 01h 04m |
Argument: careful prompt design reduces uncertainty and raises measurable trust by improving accuracy, reliability, personalization, ethics and alignment… | ||
| Writing Code with Code: Getting Started with the Roslyn APIs | Steve Gordon | 01h 01m |
Shows how the Roslyn APIs are used to generate a full .NET client from a JSON schema: parse a TypeScript spec with TS‑morph into a normalized JSON schema, then… | ||
| 10 things you didn't know EF Core can do | Hannes Lowette | 01h 01m |
A practical checklist of 11 EF Core capabilities (one is fake): compiled queries to precompile LINQ and cut per-request parsing, SQL Server hierarchyid support… | ||
| Solving Layout Challenges With Pure Sass | Lemon | 57m |
Shows twelve concrete layout fixes implemented with pure Sass/CSS — no framework, minimal JS — using viewport units and scroll-snap to build full-page… | ||
| Mobile App Architecture: How to Conquer the Giant! | Heather Downing | 58m |
Updated decision tree maps when to pick native (Swift/Kotlin + Xcode/Android Studio), cross‑platform compiled (.NET MAUI/Xamarin, Flutter, React Native)… | ||
| Using AI for Secure Code Creation: Enhancing Software Security | Jim Manico | 59m |
Claims AI reduces defects ~40% and boosts productivity ~60% when used with disciplined prompt engineering; a pipeline is built using GPT‑4 for boilerplate… | ||
| Breaking Java Stereotypes: It's Not Your Dad's Language Anymore | Bazlur Rahman | 57m |
Shows Java 23 code in IntelliJ and claims modern Java is concise and concurrent. Demonstrates records replacing 40+ lines of getters/equals/toString with one… | ||
| It’s About Time! Practical examples of time zones in TypeScript | Michael Dowden | 50m |
Practical, code-level takeaways for TypeScript: JavaScript Date is unreliable for time zones, parsers, mutable objects and DST edge cases (one-millisecond add… | ||
| Geek Out - How television led to streaming video on your mobile phone | Liam Westley | 57m |
Explains how TV moves from mechanical 30‑line experiments to modern phones by naming formats, tools and bottlenecks: 405/525/625 line standards, NTSC 29.97 vs… | ||
| React Server Components: A New Way to Build Fast and Interactive Web Apps | Aurora Walberg Scharff | 48m |
React Server Components stream HTML from the server while only shipping interactivity where needed, implemented here with Next.js App Router, streaming RSC… | ||
| Build Microservices At Your Own Pace with .NET Aspire | Jiachen Jiang | 01h 00m |
Claim: .NET Aspire packages and dashboard make it practical to adopt microservices gradually by wiring containers, observability, and deployment into C# code… | ||
| How building a portable escape room made me a better developer | William Brander | 53m |
Built a portable IoT escape room for 5–10 year olds that uses battery-powered ESP devices as tiny web servers, an MQTT broker (mosquito on a Raspberry Pi) and… | ||
| Design Engineering: The next era of Software Design | Diana Mounter | 54m |
Argues that a dedicated design engineering role must both design and ship production code and gives concrete examples at GitHub where 11 interviews surfaced… | ||
| Cracking the Furby code: The path to evolve an icon | Luke McNeice | 41m |
1998 Furby sold ~40 million units; reverse engineering digs up a 197‑page 6502 assembly leak, a shipped bug that makes Furbies “sick,” and activation sequences… | ||
| From Pong to Playstation: The Evolution of Video Games | Wesley Cabus | 01h 04m |
Replica Game Boy hardware uses an FPGA Game Boy replica to emulate 1989 behavior, and Pong runs on no CPU logic—just flip‑flops and transistors. Early… | ||
| Using serverless functions for real-time observability | Liz Fong Jones | 49m |
A custom retriever column store (ClickHouse-like) moves older shards to S3 and farms queries to AWS Lambda + S3 workers so interactive queries cover months of… | ||
| Building a Browser Based Code Editor | Jo Franchetti | 34m |
A working browser code editor that accepts TypeScript, packages it into a one-file project, and deploys each edit as a fresh serverless URL is shown using Deno… | ||
| Build Your Own Game Engine in the Browser | David Whitney | 51m |
Builds a working 2D game engine that runs in the browser and was put together in 10 days, using HTML5 canvas rendering, sprite sheets and animated GIFs, a… | ||
| Are Rewrites always a Bad Idea? | Adele Carpenter | 54m |
A legacy C++ item‑response service gets fully rewritten into Kotlin Spring Boot using the Kotlin standard library (rejecting multik and smile), splitting work… | ||
| An introduction to WebAssembly components | Mikkel Mørk Hegnhøj | 01h 01m |
WebAssembly components let code from different languages become one deployable unit: the demo composes Rust and .NET pieces into a single WASM using cargo… | ||
| The .NET MAUI Community Toolkits | Brandon Minnick | 58m |
Three open-source libraries are shown: CommunityToolkit.Maui adds ready-made controls like AvatarView, CameraView, DrawingView, Popup, Toast/SnackBar and a… | ||
| Reviewing NuGet Packages security easily using OpenSSF Scorecard | Niels Tanis | 59m |
About 80% of an app is third‑party code and Scorecard gives a fast, evidence‑based lens: OpenSSF Scorecard runs ~30 checks (vulns, branch protection, CI… | ||
| Asymmetric Encryption: A Deep Dive | Eli Holderness | 58m |
Explains RSA with a worked example using 323 = 17 × 19, computing λ(323)=144, e=5 and d=29 to show encryption/decryption; builds elliptic-curve group over mod… | ||
| Building Secure ReactJS Applications: Mastering Advanced Security Techniques | Jim Manico | 56m |
Covers concrete fixes: stop putting access control in the client, never embed secrets, and treat URLs as the biggest real-world risk (Google sees ~1/3 of… | ||
| Level up with GitHub Copilot: using AI to learn, code, and build | Michelle "MishManners" Duke | 01h 02m |
Live demo shows installing the VS Code extension, accepting inline suggestions with Tab, and using Copilot Chat for conversational coding and explanations… | ||
| On Becoming a Space-Faring Civilization | Richard Campbell | 01h 02m |
States that asteroid-deflection tests (DART) changed a moonlet’s orbit by half an hour instead of 70 seconds, showing rubble‑pile behavior and huge ejecta… | ||
| What's new with CSS? | Amy Kapernick | 53m |
Covers concrete, usable CSS features: native CSS nesting for shorter selectors; the :has parent selector used to count children and toggle an error when a… | ||
| The History of Computer Art | Anders Norås | 46m |
An evidence-rich tour from a 1962 analog drawing machine to modern AI shows what gets surprising attention: an IBM 1401 Fortran bug that prints accidental art… | ||
| Success On Your Own Terms | Todd H. Gardner | 59m |
Bootstraps a software business that becomes TrackJS, doubles take‑home pay, then learns time is the real currency and chases guacamole money by moving from… | ||
| Tech, Bugs & Rock’n’Roll | Dylan Beattie, Mark Rendle | 01h 00m |
Live podcast records jokes and tooling tradeoffs while arguing most projects don’t need Kubernetes and can be far simpler. Example build: a Raspberry Pi 5… | ||
| Herding cats: lessons from 15 years of managing engineers at Microsoft | Kevin Pilch | 01h 03m |
15 years of Microsoft management experience distilled into concrete practices: manage a 30‑engineer developer‑experience team for Azure Cosmos DB, previously… | ||
| Case study: Managing a complex engineering project | Nelly Sattari | 43m |
Atlassian Micros rebuilds platform to support cloud data residency across new AWS regions, splitting load across accounts to avoid rate limits and coordinating… | ||
| Nerds on a plane: what we can learn from the aviation industry | Sarah Young | 43m |
Draws concrete parallels: aviation uses the Swiss Cheese model and formal Aviation Safety Management Systems, publishes black boxes public reports, and reduced… | ||
| An Introduction to Residuality Theory | Barry O'Reilly | 54m |
Residuality theory models software as sequences of leftover systems — residues — and claims architects should train systems to survive unknown events rather… | ||
| Understanding Nuclear Power | Richard Campbell | 01h 02m |
Covers reactor types (PWR, BWR, RBMK, molten salt, pebble bed), how fuel is handled, and hard numbers: 50,000 centrifuges produced ~1 kg 235U/day in WWII… | ||
| Distribu-ready with the Modular Monolith | Layla Porter | 01h 02m |
Argues that a modular monolith is distribu-ready by design and gives concrete patterns: use .NET minimal APIs with class library modules, register dependencies… | ||
| Developer Happiness and why it matters | Damian Brady | 47m |
Research shows deep focus matters: one meeting = 99% chance of feeling progress, two meetings = 75%, and three meetings = 14%, so blocking uninterrupted time… | ||
| Command Line Craftsmanship: Building and Sharing .NET CLI Tools | Roland Bodenstaff | 11m |
Builds a real currency converter CLI using Spectre.Console, wiring a command class that derives from Command, a settings type for positional arguments, and an… | ||
| Is Fun Fundamental? | Sam Newman | 44m |
Argues that paying more can reduce performance on cognitive tasks (MIT studies and Indian replication show higher rewards hurt anything but mechanical work)… | ||
| Ditch your Backlog and Shape Up your product development | Glenn F. Henriksen | 01h 01m |
A small Norwegian startup of 15 people moves from a ballooning backlog that would take two years to finish to six-week cycles plus two-week cooldowns… | ||
| The Grand Unified Theory of Clean Architecture and Test Pyramid | Gui Ferreira | 53m |
Claims a concrete workflow: build the application core first, write unit tests that run only against that core, then implement tiny translation adapters and… | ||
| Locknote: The Albatross Project | Rendle | 46m |
A decades‑long corporate rewrite traces infomix 4GL dumb‑terminal screens to Windows 95 client/server, an offshored ASP system that returns HTML from SQL… | ||
| So You Want to Build An Event Driven System? | James Eastham | 54m |
Explains why event driven systems replace runtime coupling with publish/subscribe, shows concrete patterns that make them work: outbox pattern to prevent lost… | ||
| Let’s catch up with C#! Exciting new features in C# 9, 10, 11 and 12! | Filip Ekberg | 55m |
Walks through concrete C# 8–12 changes with compile-time examples in Visual Studio: nullable reference types now warn by default and work with required and… | ||
| 👍 Looks GREAT To Me: Getting Past Bare Minimum Code Reviews | Adrienne Braganza Tacke | 49m |
Actionable checklist: require local linting/formatting and CI tests during development, split large changes into under 500 lines and ideally <20 files… | ||
| CI/CD Patterns and Antipatterns - Things your Pipeline Should (Not) Do | Daniel Raniz Raneland | 51m |
Lists concrete CI/CD antipatterns and exact fixes: use a pre-step to detect changed paths and run conditional pipeline steps so backend tests skip pure… | ||
| Keynote: How To Be A Rockstar Developer | Dylan Beattie | 59m |
A parody language becomes a real stack: a Bon Jovi–inspired grammar plus a community test suite, multiple implementations in JavaScript, then a full .NET/C#… | ||
| nothing matches | ||