ACCU 2023
2023-04-19..2023-04-22
-- online --
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, systems programmers, embedded developers, game developers, software architects, technical leads, QA and test engineers, low latency trading developers
topics
C++ coroutines and tasks; C++20 ranges pitfalls; standard attributes in C and C++; undefined behavior classification and fixes; epoch based memory reclamation; templated meta state machines for HFT; trivial relocation techniques; C++20 spaceship operator usage; migrating external APIs with futures; message passing concurrency design; binary file format engineering and reversing; sanitizers and CI debugging practices
| title | author | length |
|---|---|---|
| Keynote: Development Environments Shape Programming Solutions | Stephanie Brenham | 01h 02m |
Argues that development context changes what tech is useful, citing Maya and Far Cry 6 (NAVGTR-winning graphics) as concrete examples. Demonstrates that moving… | ||
| Removing Needless Undefined Behavior for a Safer C++ | Alisdair Meredith | 01h 04m |
C++ has many specific undefined behaviors (UB) that can be classified and constrained rather than left unconstrained; examples include… | ||
| Design Patterns: Examples in C++ | Chris Ryan | 01h 40m |
Tour of 20+ GoF patterns with concrete C++11 code: claims and tradeoffs, runnable Godbolt links, and a few working utilities. Covers C++11-compliant examples… | ||
| C++ Standard Views | Nicolai M. Josuttis | 01h 36m |
C++20/23 ranges views come with concrete pitfalls: some views cache begin which makes repeat iteration cheap but causes surprising const and lifetime errors… | ||
| Managing External API’s in Enterprise Systems | Peter Muldoon | 01h 00m |
A real-world Bloomberg rewrite encapsulates a sprawling external request/response API by wrapping it in a single service proxy that preserves the original… | ||
| Software Development: Social, Environmental and Economic Sustainability | Jutta Eckstein | 01h 21m |
Argues that agile teams can measurably improve environmental, social and economic outcomes by using a validated assessment called Comparative Agile… | ||
| A Tour of C++ Recognised User Type Categories | Nina Ranns | 59m |
Walk through which C++ user type categories actually change behavior across standards and why: shows concrete wording fixes (p0960, p1008), when bitwise copy… | ||
| Lessons from 20 years of Debugging C++ Code | Sebastian Theophil | 57m |
Twenty years of C++ debugging distills to concrete steps: gather crash dumps and deploy crash-reporting, make intermittent bugs reproducible with sanitizers… | ||
| Becoming a Head of Software Architecture: You are in Charge, Now What? | Giovanni Asproni | 01h 32m |
A new Head of Software Architecture role is shaped into an actionable function: a governance team plus a standards board enforces a service-based architecture… | ||
| Gilding the Rose: Refactoring-Driven Development | Kevlin Henney | 01h 34m |
Walks the Gilded Rose kata from a tangled C# updateQuality method (16 ifs, 3 elses, quality assigned up to four times, indentation level 6) to a tested… | ||
| Standard Attributes in C and C++ | Timur Doumler | 01h 37m |
Survey of C and C++ standard attributes with concrete takeaways: use [[deprecated("...")]] with a message and [[nodiscard]] to catch API misuse… | ||
| Test-Driven Development of C++ Embedded and System-Level Software | Vladimir Vishnevskii | 01h 22m |
Argues that TDD is practical for embedded C++ by showing concrete code, tests and tradeoffs: uses C++20 + GoogleTest/GoogleMock to drive a transport stack and… | ||
| Maths: The Fun Parts | Andy Balaam | 01h 16m |
Shows sets, groups and graphs using TypeScript examples and light Rust attempt, proves an Eulerian circuit iff every vertex has even degree, and builds a… | ||
| Improving C++ Compilation Times: Tools & Techniques | Vittorio Romeo | 01h 44m |
Benchmarks show easy wins: use Ninja not make to cut seconds of build-system overhead (a SFML test drops make’s 6s overhead to ~1s), enable ccache to get… | ||
| Breaking Enigma With the Power of Modern C++ | Mathieu Ropert | 01h 22m |
Recreates an Enigma cracker that runs in C++ using C++20 compile-time tables and constexpr code generation, 16+ core parallel_for on a 2020s CPU, and tight… | ||
| Micro-Service Delivery Without the Pitfalls | Seb Rose | 01h 21m |
Argues that consumer-driven contract testing prevents last-minute integration failures by generating machine-readable contracts from unit tests and verifying… | ||
| The Practices That Make Continuous Integration | Thierry de Pauw | 01h 15m |
Claims 14 core practices (now 15, adding test reliability) enable true Continuous Integration; only two tools are strictly required: version control everything… | ||
| Programming in Modern C with a Sneak Peek into C23 | Dawid Zalewski | 01h 28m |
C shows concrete, modern tricks: compound literals enable in-place default-argument–style structs and zeroing (example prints 42 and even Unicode); designated… | ||
| C++23 Ranges: Conceptual Changes and Useful Practicalities | Dvir Yitzchaki | 01h 25m |
C++23 changes let views own their elements while remaining cheap to pass, enabling code that moves temporaries into adaptors instead of forcing lvalues; the… | ||
| Cracking Collaboration: Problems and Solutions for C++ Development | Sinem Akinci, Alexandra Kemper | 01h 02m |
Demos show reproducible workflows: a repository spins up a GitHub Codespaces cloud dev environment in ~60 seconds (Linux only, GitHub-hosted), while a… | ||
| Raspberry Pi Pico with C++OS: Coroutines and std::execution in Embedded Systems | Detlef Vollmann | 01h 26m |
Build uses an RP2040 with nearly 300 KB RAM and two Cortex‑M0+ cores: core 0 runs I/O and an exit (preemptive) executor, core 1 runs a single‑context decoder… | ||
| Keynote: Psychology of Software Development: We’re Only Human After All | Gail Ollis | 01h 18m |
Humans keep the same 1.4 kilos of jelly brains but work in a far more complex 2023 pipeline than the 1970 handoff model, so communication and psychology… | ||
| Low-Latency Trading Systems in C++: Templated Meta-State Machines in HFT | Jason McGuiness | 01h 26m |
Generates a computed goto from heavy template meta-programming: a templated meta-state-machine using an unordered_tuple of placement-new transitions and a… | ||
| CMake: A Case Study | Hans Vredeveld | 01h 07m |
Shows how to integrate Oracle embedded-SQL into a CMake build by writing a custom FindPackage module to locate Oracle client libraries and headers and by… | ||
| C++ And Beyond: Discussion | Vittorio Romeo, Kevlin Henney, Nicolai M. Josuttis, Kate Gregory | 01h 37m |
Greatest obstacle is C++'s accumulated backward compatibility: concrete proposals use modules and epoch/dialect techniques to let new syntax map to the same… | ||
| Revisiting C++ Observers: Spooky Action at a Distance | Victor Ciura | 01h 20m |
Reexamines concrete Observer implementations in C++ and shows why no one recipe survives real code: uses a std::vector of raw pointers, lazy-initialized… | ||
| C++ Trivial Relocation Through Time | Mungo Gill | 01h 03m |
Argument: letting containers legally relocate objects by copying bytes instead of calling move+destroy lets implementations replace per-element move loops with… | ||
| Comparing 'Classic C++' and 'Modern C++' Ways to Solve Programming Tasks | Roger Orr | 01h 25m |
Compares concrete C++ idioms by showing code, compile behavior and measurements: multiple loop forms (index, reverse, iterator, range-for), using algorithms… | ||
| C++ Coroutines From Scratch | Phil Nash | 01h 16m |
An object-deserialization pipeline gets rewritten from recursive, callback-heavy code into a coroutine-driven batch loader that drops 10 network round-trips to… | ||
| Monads in Modern C++ | Georgi Koyrushki, Alistair Fisher | 01h 03m |
Engineering team proves monadic patterns cut boilerplate by building a C++ POC that treats pointers, find results, std::vector and std::optional monadic ops as… | ||
| C++ Electronic Trading for Cpp Programmers | Mathias Gaunard | 01h 35m |
Explains how to build C++ low‑latency trading: maintain an order book with preallocated, integer prices (no floating rounding), use intrusive containers and… | ||
| Concurrency Approaches: Past, Present, and Future | Lucian Radu Teodorescu | 01h 16m |
Proposes an experimental concurrency model for the Val language that treats concurrent work as a computation abstraction implemented with coroutines, using a… | ||
| Introduction to Epoch-Based Memory Reclamation | Jeffrey Mendelsohn | 20m |
Epoch-based reclamation tracks threads with an epoch counter: threads increment a current-epoch counter on entry and decrement on exit, retired nodes go into… | ||
| Rust for the C++ Programmer | CB Bailey, Andy Balaam | 01h 22m |
Compares concrete Rust features to C++ equivalents and shows how they catch real bugs: an Option prevents calling stats after shutdown, the borrow checker… | ||
| Binary File Format Engineering and Reverse Engineering | Peter Bindels | 01h 33m |
Covers how bits become numbers, text and floats, then shows real encodings used in practice: two's complement for negatives, protobuf varint and wire types… | ||
| Introduction to Secure Multi-Party Computation | Ahto Truu | 01h 31m |
Overview of practical secure multi‑party computation: three families exist — homomorphic encryption (Gentry’s 2009 fully homomorphic breakthrough initially… | ||
| How to Master C++ | Jim Pascoe | 25m |
Identifies five concrete C++ mindsets—imperative mindset, functional mindset, performance mindset, concurrency and debugging—and shows specific tools and… | ||
| Adventures with React and JUCE: Building UI with Typescript in a C++ Application | Jim Hague | 01h 14m |
A large C++ JUCE audio app implements its UI in React + Typescript using react-juce, with C++ sending gain-peak updates on a 100 ms timer into the JS world and… | ||
| The Art of Addictive Software: The Digital Narcotic | Gurvir Dhillon | 21m |
Flappy Bird becomes the anchor example: Flappy Bird — 50 million downloads, $50k ad revenue and was removed because users reported life disruption; design… | ||
| Hardware Accessibility in Gaming: Why Minimising System Requirements Matters | Jack Barnard | 10m |
Defines "hardware accessibility" as users' ability to meet a game's hardware requirements and presents empirical checks from CanYouRunIt showing about 40%… | ||
| Man vs Machine: The Impact of the Technology we are Building | Lindsay Ezeagu | 09m |
Focuses on how programmers build ChatGPT style tools and automation that reassign tasks and can erode creative skills if overused, cites a PwC analysis that… | ||
| Raising Awareness of Invisible Illnesses in the Tech Workplace | Joe McNeil | 13m |
Describes how invisible illnesses like Ulcerative Colitis cause misjudgement, gossip and “identity threat” at work and gives two concrete workplace outcomes… | ||
| Fumbling Forward: Embracing Mistakes in Agile Teams | Jack Simms | 22m |
Fear of judgment causes teams to freeze, producing duplicate Figma prototypes and only a partial Figma process map three weeks into a 10‑week Lean Startup… | ||
| Modified Condition and Decision Coverage in Gcc: Intro, Motivation & Tooling | Jørgen Kvalsvik | 01h 23m |
Modified condition/decision coverage (MCDC) is added as a GCC feature via a patch of ~1000 lines of code (about one third comments) that emits condition-level… | ||
| Keynote: C++ Horizons | Bryce Adelstein Lelbach | 01h 11m |
C++ is set to add reflection-based enum name extraction, compile-time injection for generating wrappers and struct-of-arrays transformations, and hash_append… | ||
| And Then() Some(T): C++ Combinators - Higher-Order Functions in Cpp | Victor Ciura | 20m |
Shows concrete C++ examples that turn string parse/trim/length and safe division into chained continuations so code never unwraps intermediate results and… | ||
| Preparing for Professionalism in Programming: A Student Perspective | Gail Ollis | 15m |
Final-year module runs like a mini conference: students submit bio plus three proposals, peer-review peers and act as the programme committee, then prepare… | ||
| Remote Mob Programming in a High Stakes Environment | Giovanni Asproni | 01h 10m |
Remote mob programming delivers a production backend for the England and Wales COVID self‑isolation payment gateway on a cut schedule — under four weeks… | ||
| Using, Generating and Testing with Pseudo-Random Numbers | Frances Buontempo | 56m |
Explains how deterministic engines like linear congruential generator (example multiplier 16807) and Mersenne Twister produce pseudo-random sequences, why… | ||
| Multi Threading Model in Paradox Games: Past, Present and Future | Mathieu Ropert | 01h 21m |
Paradox moves from per-entity parallel_for (Intel TBB) in older titles (EU4/HoI4/Stellaris) to a pre-update/post-update stashes model in Crusader Kings 3 that… | ||
| Designing for C++ Concurrency Using Message Passing | Anthony Williams | 01h 16m |
Message passing eliminates explicit locks and most data races by running each microservice as a single-threaded state machine; the talk shows concrete code… | ||
| Function Contracts in Practice using C++ | Rostislav Khlebnikov | 01h 17m |
Argues that choosing narrow function contracts and checking them (even with C assert) reduces defects, keeps APIs small, and preserves performance; describes a… | ||
| Applying Unix Readiness Model for Concurrent Operations in C++ | Filipp Gelman | 01h 06m |
Claims that the Unix readiness model (select/poll/epoll/kqueue) generalizes to arbitrary concurrent C++ operations and can be implemented in userspace. Uses… | ||
| Functional Programming in Modern C++: The Imperatives Must Go! | Victor Ciura | 01h 31m |
Argues that functional programming is already inside modern C++ and demonstrates concrete techniques: std::optional and std::expected with monadic… | ||
| Implementing a C++ Coroutine Task from Scratch | Dietmar Kühl | 01h 23m |
Live codes a working C++20 coroutine-based Task: implements the required promise type methods (initial_suspend, final_suspend, get_return_object… | ||
| C++ Package Manager - C++ Dependencies Don't Have To Be Painful! | Augustin Popa | 01h 12m |
C++ dependency pain points are ABI breaks, the diamond (version) problem, and slow updates; modern C++ managers like vcpkg and Conan address them with concrete… | ||
| Building C++ Interfaces That Are Hard to Use Incorrectly | Andreas Weis | 01h 36m |
Collection of concrete techniques that push precondition checks from run-time to compile-time using the C++ type system: use scoped enums and tag‑typed opaque… | ||
| Keynote: Become a Better Programmer by Using Words and Ideas From Casual Gaming | Kate Gregory | 01h 25m |
Compares casual-game mechanics — grinding vs farming, dailies and side quests — to work: meetings become daily housekeeping, side quests are resume-driven tool… | ||
| Callable Objects in Java, C#, Rust, and C++ | Zhihao Yuan | 01h 16m |
Compares how Java uses lambdas and a runtime method handle to adapt arbitrary method names, how C# exposes a fat pointer called a delegate, and how Rust uses… | ||
| The Story Of The Code | Dom Davis | 01h 21m |
Argues that code is a living narrative and gives concrete examples: running create‑react‑app pulls 1589 packages and the demo project contains 1,259,920 lines… | ||
| Productivity in C++ Game Development: The Mind of an AAA Game Developer | David Li, Keith Stockdale | 50m |
Shows concrete workflows using Visual Studio and Unreal Engine 5: writes custom Natvis visualizations to hide dead entries (prelist vector shows size 3 not 4)… | ||
| Khronos Sycl Language Framework for C++ Accelerators: Take Advantage of All the MIPS | Michael S Wong | 01h 26m |
SYCL 2020 is a single-source C++ framework that compiles to multiple backends (CUDA/PTX, OpenMP, AMD, Level Zero, SPIR‑V) using DPC++/other compilers; it adds… | ||
| Space Invaders: The C++20 Spaceship Operator is Upon Us | Lieven de Cock | 51m |
Explains what breaks when flipping -std=c++20 on real code and why the compiler's rewriting rules can introduce infinite swap or ambiguity with implicit… | ||
| A Generic Talk About Go | Dom Davis | 01h 21m |
Live coding in GoLand and the terminal with Go 1.19, including a working FizzBuzz, an in-place sort over a custom slice-of-structs type, and a config/flags… | ||
| Applied C++20 Coroutines | Jim Pascoe | 01h 16m |
Builds a small web server and a mobile mesh prototype with CMake, Boost.Beast (on top of Asio), Lua bindings and ApacheBench-driven benchmarks (code on… | ||
| nothing matches | ||