ACCU 2025
2025-04-01..2025-04-04
Bristol, United Kingdom
ACCU ·
[ACCU 2016, ACCU 2017, ACCU 2018, ACCU 2019, ACCU Autumn 2019 Belfast, ACCU 2021 Online, ACCU 2022, ACCU 2023, ACCU 2024, ACCU 2025]
who it's for
c++ developers, library and standard contributors, systems programmers, tooling and build engineers, game developers, engineering managers, devops and ci engineers
topics
C++20 ranges and views; senders and receivers in C++; C++ coroutines (C++23/C++26); consteval compile-time programming; contracts proposed for C++26; memory allocation guidelines in C++; dynamic allocation in safety-critical C++; choosing C++ standard library containers; Conan2 continuous integration workflows; CUDA C++ developer toolbox; accelerating Python with C++; LLM agents for code refactoring and tooling
| title | author | length |
|---|---|---|
| Learning To Stop Writing C++ Code (and Why You Won’t Miss It) | Daisy Hollman | 01h 36m |
Claims that frontier LLMs (Anthropic’s Claude among others) can read, plan and edit real C++ repos: demo shows an agent bootstrapping build configs, running… | ||
| What C++ Needs to be Safe | John Lakos | 01h 31m |
Proposes making C++ safe by adding concrete tools: Contracts MVP in C++26 with runtime and symbolic assertions that catch ~65% of common errors (bounds… | ||
| The Definitive Guide to Functional Programming in Cpp | Jonathan Müller | 01h 09m |
C++ workflows become declarative pipelines using std::ranges views (transform, filter, chunk_by, join) to avoid eager intermediate containers and enable lazy… | ||
| The Past, Present and Future of Programming Languages | Kevlin Henney | 01h 30m |
Main claim: mainstream languages change slowly and incumbents dominate; empirical evidence shows C/Java/Python/C++ persist in top ranks and of 100 languages… | ||
| consteval All The Things? | Jason Turner | 01h 31m |
Consteval is a C++20 tool that forces compile-time evaluation but also requires arguments to be constant expressions, so ordinary function parameters are never… | ||
| Deliver Better Technical Presentations - Challenges Faced by Technical Speakers | Jack Simms | 01h 31m |
Revisits a failed 20-minute ACCU slot inside a 90-minute session, deliberately reproduces earlier errors (slides out of order, train-time edits) then fixes… | ||
| Optimising Data Building In Game Development | Dominik Grabiec | 57m |
Describes building a sparse 3D grid cache for fast spatial queries, a job system using counters to parallelize hundreds of small jobs, and moving file… | ||
| How To Write a Rubik’s Cube Solver | Sam Saariste | 01h 30m |
Library implemented in Python notebooks that visualizes scrambles, manipulates move sequences, and solves CFOP subproblems; pieces are numbered so corners… | ||
| Our Other C++ Interfaces | Bret Brown | 01h 26m |
Explains concrete project contracts: explicit preconditions (Ubuntu package names, ninja on PATH), a reproducible provision → resolve → build → package… | ||
| Testing, Preconditions, Coverage and Templates in Safety-Critical C++ Code | Anthony Williams | 01h 40m |
Safety‑critical C++ code requires 100% coverage with CI across many compilers, explicit preconditions that often precondition macro terminates the process and… | ||
| New (& Old) C++ Standard Library Containers - How to Choose the Right Container in C++26 and Beyond | Alan Talbot | 01h 31m |
Shows that naive container choice costs huge time: a simulation spikes 100× with scaling and one rewrite cuts a 7h15 run to ~30 minutes by recycling… | ||
| Duck-Tape Chronicles - Rust C++ Interop | Victor Ciura | 01h 11m |
Claim: compiler, linker and ABI guarantees matter more than glue crates for real Rust–C++ interop. Notes concrete tradeoffs: current options like CXX or plain… | ||
| Move Slow and Break Things - Upgrading to C++26 | Alisdair Meredith | 01h 25m |
C++26 makes concrete, breaking changes: it removes comparisons between arrays and several deprecated library facets, forbids delete of incomplete types, and… | ||
| Stars Aligned and Software Development Adrift - Why Can We Predict Planets but Not Deadlines? | Luca Minudel | 40m |
Argues that projects with unknowns are intrinsically different from linear work and that 20% of onboards at one talent-management vendor forced platform… | ||
| Dangerous Optimizations in C and C++ Programming Languages | Robert C Seacord | 01h 30m |
Compilers increasingly treat undefined behavior (UB) as a license for aggressive optimization, claiming wins from constant folding, loop‑invariant hoisting and… | ||
| Guide to the C# Programming Language - Puzzling C# | Steve Love | 46m |
Shows concrete gotchas: a = b + c parses so the parentheses bind to the right-hand expression producing 240 not a mistaken grouping; object initializers and… | ||
| Dynamic Memory Allocation Challenges in C++ Safety Critical Systems | Xavier Bonaventura | 01h 11m |
Covers why ISO 26262 and guidelines like MISRA 2023 ban or restrict heap use and what actually breaks: leaks, out‑of‑memory, allocation/deallocation mismatch… | ||
| Shifting Left, Shifting Right | Patrick Martin | 22m |
Argues that evolution shifts work between code, tooling and collaboration with concrete examples: a working one-batch-file integration that auto-serves builds… | ||
| So You Think You Can Lead a Software Team? | Paul Grenyer | 17m |
Takes twelve months to start understanding team leading and shifts from doing work to being accountable, advising daily standups and reducing one‑to‑ones to… | ||
| Mistakes With Data Made During Game Development | Dominik Grabiec | 17m |
Game data breaks because formats lack explicit versioning, version control stores built assets, dependencies live only as string literals, and large mixed… | ||
| Using Reflection to Generate C++ Python Bindings | Callum Piper | 15m |
Uses C++ Reflection (compiled against the experimental P2996 Clang fork) to auto-generate real Python bindings for C++ libraries with PyBind11, turning… | ||
| Awesome API Design | Anders Sundman | 22m |
Shows concrete C and C++ examples: renaming malloc/mfree for symmetry, the std::vector empty vs clear confusion and a checked vs unchecked index design, and… | ||
| Getting Started with Senders and Receivers in C++ Programming | James Pascoe | 17m |
A lightweight primer that demonstrates a real sender built from an Asio timer and shows how connect produces an operation state that must remain alive until… | ||
| Rust - Cargo Cult? | Victor Ciura | 21m |
Microsoft reports Rust rewrites for Windows kernel components and tiny hypervisor pieces, plus ports that cut cloud service costs when migrated from .NET… | ||
| Race Conditions - Practical Tools & Techniques for Testing, Preventing, and Debugging C++/C Code | Greg Law | 31m |
Shows concrete tools and tradeoffs: ThreadSanitizer (clang/gcc) finds many data races fast (compiler instrumentation, ~2x slowdown) but misses ordering races… | ||
| Log4j - A Placement Student's Baptism by Fire | Liam Varney | 17m |
A placement year at a major car company in December 2021 exposes how a single JNDI lookup string in Log4j yields remote code execution (Log4Shell), with… | ||
| An Introduction to Reinforcement Learning - Snake Your Way Out of a Paper Bag | Frances Buontempo | 56m |
Introduces a hands‑on C++ implementation that builds a Q-learning table (std::map/std::vector keys) with tunable alpha/gamma and epsilon 10% exploration, uses… | ||
| Alex Stepanov, Generic Programming in Cpp, and the STL | Jon Kalb | 01h 23m |
Covers Alex Stepanov’s drive to make algorithms reusable without performance loss, how templates (1992–94) let him build the STL and submit the library after… | ||
| What AI Means for the Future of Accessibility and Disability Aides | Sam Drage | 17m |
Explains generative AI (ChatGPT, Midjourney) as a limited‑memory tool that can reduce cognitive load (outlines, planning, ADHD help) and enforce consistency… | ||
| Building a Career In Programming | Sherry Sontag, CB Bailey, Callum Piper, Cal Pratt, Daniel Kiss | 01h 29m |
Panel argues individual contributors build careers by choosing projects, not titles: concrete wins include rewriting a build pipeline and tooling, shipping… | ||
| C++ Error Handling | Roger Orr | 01h 29m |
Examines a simple C++ generator class (configure + operator()) and then actually adds and compares real error strategies: logging to cerr (cheap but fragile)… | ||
| How to Think Like a Programmer | Connor Brook | 16m |
Argues that programming is model-building, not typing: replace ad‑hoc log-parsing and baked‑in dictionary fields with a concrete retry object that stores… | ||
| An Introduction To Go Lang | Dom Davis | 01h 24m |
Quick, practical tour of Go fundamentals with concrete code: how files and packages compile with go build and go mod, use of fmt for output and gofmt for… | ||
| The 10 Essential Features for the Future of C++ Libraries | Mateusz Pusz | 01h 13m |
Claims ten essential (actually sixteen) missing language/library features and demonstrates them with a quantities-and-units library that exposes real issues… | ||
| Technical Debt Crisis! When Non-Engineers Write Code | Felix Aldam-Gates | 11m |
Claims that low-barrier tools and LLMs enable “vibe coding” where non-engineers write Python or R pipelines without engineering practices, producing… | ||
| How Old Am I in Seconds? Insights From the C++ chrono Library | Nicolai M. Josuttis | 01h 21m |
C++ chrono pairs C++11 durations/time_points with C++20 calendars, formatting and time zones to handle real cases: compile‑time unit selection to avoid… | ||
| Keynote: Teaching an Old Dog New Tricks | Matt Godbolt | 01h 21m |
Implements a ZX Spectrum emulator twice: one in familiar C++11/14 style and one using constexpr/meta/templates plus concepts, modules and coroutines. First… | ||
| Manage Asynchronous Control Flow With C++ Coroutines | Andreas Weis | 01h 27m |
Shows how to implement an async/await-style Task type for C++20 coroutines by explicitly linking coroutine promises and handles, using symmetric transfer to… | ||
| Continuous Integration for Large Scale C/C++ Projects With Conan2 | Diego Rodriguez-Losada | 01h 20m |
Shows a concrete CI design using Conan 2, GitHub Actions and Artifactory that builds only affected packages and scales across platforms. Uses conan lock create… | ||
| Challenges and Benefits of Upgrading Sea of Thieves From C++14 to C++20 | Keith Stockdale | 01h 05m |
Sea of Thieves upgrades its codebase (~6.5M LOC across game + engine) from C++14 → C++20 by flipping permissive-minus then moving through C++17 and C++20… | ||
| Accelerating Python With C++ | Alex Dathskovsky | 01h 21m |
Argues C++ should be paired with Python for speed and shows concrete trades: using pybind11 naïvely makes tiny calls slower (5.7s vs C++ 4.25ms) unless… | ||
| If Writing C++ Coroutines Goes Over My Head, Where Do I Even Begin with Debugging? | André Brand | 01h 29m |
Covers concrete debugging patterns: sets breakpoints on coroutine customization points (get_return_object, initial_suspend, final_suspend) and steps a homemade… | ||
| Agility ≠ Speed - Agile Development | Kevlin Henney | 01h 31m |
Argues that agility is not raw speed but the ability to change direction and respond, claiming teams optimize speed not velocity and often measure rate instead… | ||
| Software Engineering Completeness | Peter Muldoon | 01h 17m |
Defines a concrete “done” as not just merged but deployed everywhere in production, with acceptance criteria (Given‑When‑Then), dates for start and finish… | ||
| Bazel | Marcus Boerger | 01h 31m |
Bazel compiles anything with hermetic reproducible caching so repeated runs do nothing and remote/external caches or a build farm cut compile time… | ||
| C++ Exceptions | Khalil Estell | 01h 23m |
Claim: using C++ exceptions can shrink large embedded binaries versus pervasive result-return checking. Evidence: recompiled ARM GCC with exceptions enabled… | ||
| C++ Coroutines Demystified | Phil Nash | 01h 31m |
Starts from blank code and walks to a working coroutine by letting the compiler drive each step: use Compiler Explorer with GCC and Clang, add #include… | ||
| Optimizing for Value - Fight Failure Demand With Bottlenecks | Willem van Den Ende | 41m |
Argues that many "slow service" symptoms come from upstream failure demand (lots of identical redundant requests) and not raw capacity problems, uses the… | ||
| Regain Benefits from Agile Software Development | Jutta Eckstein | 40m |
Agile benefits erode when processes and tools replace team collaboration: common failures are every sprint fails, bloated ceremonies, rising technical debt and… | ||
| Safe and Readable C++ Code: Monadic Operations in C++23 | Robert Schimkowitsch | 01h 18m |
Explains how C++20/23 turns nested error-and-loop code into composable pipelines using std::views::transform and std::views::join, and how to replace ad‑hoc… | ||
| A Very Small Language Model | Jez Higgins | 01h 04m |
A working tiny language model gets built in about an hour using a JavaScript Markov chain implementation: a tokenizer generator, a Chain class that records… | ||
| Asynchronous C++ | Dietmar Kühl | 01h 11m |
C++26 exposes std::execution as a concrete Sender/Receiver vocabulary and the talk shows working code that connects that vocabulary to real I/O (IO uring and… | ||
| Contracts for C++ | Timur Doumler | 01h 32m |
A Contracts MVP is approved for C++26 and ships as C++26 Contracts MVP providing three assertion kinds: contract_assert plus pre/post function assertions on… | ||
| The Case for Graphics Programming Using the D Language | Mike Shah | 01h 22m |
Examples include a D-written ray tracer from "Ray Tracing in One Weekend" that compiles and renders images, shaders embedded as source, and an OBJ parser built… | ||
| Easy Senders/Receivers | Lucian Radu Teodorescu | 01h 24m |
Claims that P2300 senders/receivers in C++26 are easier to use and teach, showing concrete tools: sync_wait, counting_scope, let_value, and when_all used with… | ||
| Agile - The Road Towards Organizational Agility - Progress & Challenges Examined | Giovanni Asproni | 01h 22m |
Claims that CI and automated testing are now common, but organisations still fail on prioritisation and clear acceptance criteria, causing wasted effort… | ||
| Heaps Don’t Lie - Guidelines for Memory Allocation in C++ | Mathieu Ropert | 01h 08m |
Claims ten concrete rules: prefer stack allocation because it’s a one-register add; avoid malloc in hot/parallel sections because system calls and swapping can… | ||
| Mental Health in Software Development - Tanzt kaputt, was euch kaputt macht! | Dom Davis | 01h 23m |
A public confession of long-term depression, a birthday-timed autism diagnosis and ongoing self-harm appears alongside concrete practices that change teams: an… | ||
| The CUDA C++ Developer Toolbox | Bryce Adelstein Lelbach | 39m |
Shows concrete rules and code patterns: prefer Thrust and libcu++ over hand‑written kernels when they meet needs, fuse transform+reduce with transform_reduce… | ||
| The C++ Execution Model | Bryce Adelstein Lelbach | 42m |
Reads the C++ standard and extracts concrete rules: a platform-agnostic flat global storage model, the as-if rule, and how threads evaluate function calls… | ||
| The Next Coding Horizon - Proactive LLMs for Enhanced Productivity | Anastasia Kazakova | 01h 05m |
Large Language Models cut coding time dramatically: internal JetBrains research reports 91% of users see time savings, 71% faster task completion and 58%… | ||
| What, What? - When We Think We Understand | Nara Morrison | 04m |
Three concrete misunderstandings are described with plain examples: a lightning charger mistaken for weather, reflections confused with meditation instead of… | ||
| A Sixth Seam in TDD? - Python Testing, Test Doubles & Legacy Code at Kosli | Jon Jagger | 06m |
Proposes a new test double called an auto cache that Kosli uses to speed and stabilise Python tests by replaying seam interactions from disk. Implements it as… | ||
| The Beman Project: Testing C++ Library Proposals Before Standardization | Dietmar Kühl | 03m |
Community project that implements and exercises real C++ standard library proposals so they compile, run, and reveal design gaps before WG21 votes. Early work… | ||
| What I Learned at My First Tech Conference - Peer Pressure & Developer Soft Skills | Joshua Gawley | 04m |
First-time conference experience frames peer pressure as a mechanism that pushes adoption of processes and culture rather than new algorithms, with the… | ||
| It Takes Two | Charles Tolman | 04m |
Forty-five years of coding inform a concrete claim: technical leaders must also be good followers, mirroring lead and follow dynamics from Argentine tango… | ||
| Immediately Invoked Coroutine Lambdas in C++23 - Lifetime Pitfalls & Best Practices | Jonathan Müller | 05m |
Shows a crash scenario when an immediately invoked coroutine lambda captures an awaitable, moves only a pointer into the coroutine frame, and later resumes on… | ||
| Notation in Programming: Exploring BQN, Symbolic Manipulation, and Expressive Syntax | Cheery Chen | 05m |
Shows concise BQN code that defines odd numbers, an arithmetic mean as plus reduction divided by length, and a quadratic mean using square and root. Compares… | ||
| The Half-Life of Facts - Why Scientific Truths Keep Changing | Francis Glassborow | 05m |
Lists examples where accepted facts change: 5% of people still believe the Earth is flat, chromosome counts are corrected to 46 chromosomes in 1956, doctors… | ||
| Printf Debugging at 1ns: High-Performance C++ Logging Without Locks | Greg Law | 06m |
Claims a lock-free, system-call-free C++ logger (L3) that records entries at 1 nanosecond per entry by using an atomically incremented index into an… | ||
| The U-Word: Why Software Developers Should Talk About Unions | Mathieu Ropert | 05m |
Argues that software engineers can solve ignored technical debt and burnout by organizing, citing historical union roots long before communism and Sweden’s 69%… | ||
| C++ Sorting Pitfalls, UB & Type Conversion Explained | Egor Suvorov | 05m |
Mixing long long and double in comparators leads to real undefined behavior: a custom comparator using a < b can produce non‑transitive results (example with… | ||
| The Sad State of Printed Tech Books | Andreas Weis | 05m |
Modern technical books show vertical stripes and banding, weird halftone patterns over photos, glossy-reflective ink that blinds under lights, and fuzzy letter… | ||
| Unpopular Opinion? - Python Typing Is Not Worth It | Diego Rodriguez-Losada | 04m |
Demonstrates that Python type annotations do not enforce runtime checks and require external tools like mypy to catch mismatches, argues that autocompletion… | ||
| Card Magic and True Randomness | Ed Brims | 05m |
A live experiment mixes riffle shuffles, deliberately turned face‑up cards shuffled into face‑down piles, and audience shufflers to test real entropy versus… | ||
| (Re-)Learn C++ by Example | Frances Buontempo | 04m |
Hybrid conference logistics, a poster session in person and on Gather Town, and a failed Wi‑Fi attempt frame a practical push to teach C++ through small… | ||
| Got Any Games? Gaming Nostalgia, History & Dev Life | Jack Simms | 06m |
Personal arc from PS2 to Xbox Series S, naming Viva Piñata, Call of Duty 4, PS3, Xbox 360, Wii and flash site funnygames.biz, plus Forza Motorsport 2, Total… | ||
| Why Performance in Programming Is Always a Problem | Lucian Radu Teodorescu | 05m |
Argues that a universal brute force works if performance is irrelevant: start with zero bits, backtrack through every permutation, increase bit length and use… | ||
| Tech Communities, People, Fear, and Hope | Gareth Lloyd | 05m |
Communities trigger defensive reactions that often turn out to be lizard brain false positives rather than real threats; the concrete claim is that unconscious… | ||
| Arithmetic in C++ Using Counting Pointers | Peter Hrenka | 06m |
Claims a complete integer system built from stacked pointers in C++ type space that avoids built-in integers, runtime code, and `constexpr`. It implements… | ||
| The Dark Side of AI - Environmental & Social Costs Developers Must Know | Jutta Eckstein | 06m |
AI training can need vast resources: GPT-3 training uses about 700,000 liters of fresh water and consumes electricity equivalent to 130 U.S. homes for a year… | ||
| Maximising Throughput & Minimising Latency in High-Performance C++ Code | Julius Zukauskas | 05m |
Shows concrete data layout changes: pull hot fields into separate vectors, replace object-centric loops with struct of arrays vs array of structs… | ||
| UB Forte - Hilarious Programming Humor | Chris Oldwood | 06m |
Rapid-fire standup that strings concrete tech gags: an AI text editor called AI Mo says "They're really paying you to write this crap", a self-made font built… | ||
| Do Something: Mindfulness & Mental Health for Software Engineers | Patrick Martin | 05m |
Claims a mild lifelong missing 20 milliseconds in brain signal transmission with minimal impairment, then prescribes short sensory practices — forest bathing… | ||
| Automate! | Gail Ollis | 04m |
Research finds 89% of experienced developers pick automates tasks as the single most helpful teammate behaviour, because automation acts as executable… | ||
| C++ Keywords Speak for Themselves | Jon Kalb | 02m |
Asserts that well-chosen C++ keywords and structure communicate intent without commentary, and backs that claim with code-only slides and runnable examples… | ||
| C++20 Ranges - The Stuff of Science Fiction | Stewart Becker | 05m |
C++20 ranges popularize a pattern of using static inline const function objects as range adapters that let code overload the call operator (something lambdas… | ||
| Programming Puzzles - Programming Challenge | Pete Goodliffe | 06m |
A high-energy format compresses five minutes of interaction into a rapid-fire C++ quiz that fires around 30 prompts across seven rounds (basic terms, data… | ||
| Tell Your Technical Story | Sherry Sontag | 05m |
Starts from concrete habits: record a conversation, give the transcript back, and use what people actually say as your talk; stop overediting and tell the… | ||
| WTF?! | Dom Davis | 05m |
Argues that modelling a messy electrochemical brain with digital Boolean systems fails, claiming AGI is doomed unless computation moves beyond binary to… | ||
| When the Compiler Gives You Errors, Make SFINAE | Keith Stockdale | 04m |
HLSL 2021 adds templates so SFINAE-style tricks and type traits are implemented inside shader code to detect an enum and bypass a compiler bug (#5553 in… | ||
| What Is "Hello" in C++? | Nicolai M. Josuttis | 06m |
Shows that the literal "hello" has type const char[6] and a surprising value category: it behaves as an lvalue even though it often decays to const char* with… | ||
| nothing matches | ||