~/conference

NDC TechTown 2024

C++ developers, embedded software engineers, firmware engineers, systems programmers, kernel developers, test engineers, security engineers, safety-critical software engineers

eBPF with libbpf and bpftool; unprivileged user namespaces; C++ object lifetimes; constexpr in C++23; Rust on nRF52; quantized TinyML inference; mutation testing with Cosmic Ray; TPM integration in the Linux kernel; SSA and phi nodes in compilers; splicing sockets with sockmap; path coverage analysis in gcc; test architecture and auto-triage

titleauthorlength
The existential threat against C++ and where to go from hereHelge Penne45m
Government agencies (NSA, CISA, White House) push for migration away from C/C++ toward memory-safe languages, citing systemic memory-safety failures; Google…
Talk on
A bird's eye view of a compilerJoakim Lier52m
Overview of a compiler pipeline that parses source into tokens and an AST, lowers to IR, runs middle‑end analyses (constant folding, propagation, dead‑code…
Talk on
Linux user namespaces: a blessing and a curseIgnat Korchagin47m
Unprivileged user namespaces let an ordinary UID map to root inside a namespace and then create mount, pid and network namespaces to run rootless containers…
Talk on
C++ Under the Hood: (Internal Class Mechanisms)Chris Ryan01h 26m
Examines concrete C++ mechanics: object layout and why a vtable at offset zero makes base-to-derived casts work, how multiple inheritance produces adjusted…
Talk on
Test architecture is a real thingJames Westfall53m
Argues that test architecture matters by showing concrete choices: end-to-end tests on Neat’s embedded devices, a python-behave page object model that…
Talk on
Contrasting Embedded Software Development for the Space Shuttle and the Orion MPCVDarrel Raines01h 07m
Shuttle flight software spans about 500,000 lines of code and reports fewer than a thousand defects over 35 years yielding roughly one defect per 400,000 lines…
Talk on
Not your GrandParent’s C++Phil Nash55m
A brisk history of C++ shows concrete changes: 13 years of stagnation end with C++11 modernization, the committee adopts a timed “train” model, and features…
Talk on
Introduction to eBPFMartin Ertsås50m
Shows how to compile and load eBPF C with libbpf and bpftool, attach tracepoint and cgroup hooks, and communicate via a ring buffer and hash maps (example map…
Talk on
Not getting lost in translationsDaniela Engert58m
Describes a library that preserves compile‑time checks of std::format while allowing runtime language selection by compiling gettext PO/MO data into the binary…
Talk on
Using Edge Machine Learning to save power and development timeEirik Midttun45m
Demo uses a Thingy:53 with an nRF5340 to run TinyML on raw 3‑axis accelerometer data sampled at 100 Hz in 5‑second windows, classifying fan speed and flagging…
Talk on
Crash and test failure analysis with AI... no wait, ehm, with regexes!Jan Wegger, Thomas Hanssen49m
A homegrown regex-based classifier evolves from a 2011 shell script into a web service with about 10,000 commits that replaces unreliable automatic grouping…
Talk on
Beyond unit testsOyvind Tonsberg41m
Cisco Lysaker labs run a fully automated pipeline that builds each commit (about 70 artifacts, ~1 hour clean build, incremental faster) then books real…
Talk on
Remote blinky on nRF52 using RustEivind Bergem48m
Builds a remote blinky on nRF52 with Rust using the radio at 2.4 GHz (IEEE 802.15.4 style) to send tiny commands between two boards; sets up two devices each…
Talk on
Metal-In Test-Driven Development: A Dual-Target TDD approachFran Climent01h 00m
Metal-In TDD shows a Dual-Target workflow that builds a portable BatteryMonitor in C for an 8-bit MCU by driving behavior with unit tests, test doubles and…
Talk on
Mutation Testing in Python with Cosmic RayAustin Bingham57m
Mutation testing tool Cosmic Ray mutates Python ASTs (via Parso), runs the real test command (usually pytest) and records results in SQLite; a demo runs 67…
Talk on
Monadic Operations in Modern C++: A Practical ApproachVitaly Fanaskov54m
Uses C++23 std::expected and std::optional plus ranges and the TL expected implementation for older toolchains to replace error-code/boolean returns in a real…
Talk on
A clean slateGiles Chamberlin45m
Company starts in 2012 to build a virtualised, distributed videoconferencing system sold into customer datacenters and ends up public on the Norwegian stock…
Talk on
Path coverage in gccJørgen Kvalsvik01h 01m
GCC adds a new fpath-coverage option to emit GCOV data for prime path coverage aimed at GCC 15 (NASA-funded). It computes prime/simple paths across function…
Talk on
Design Patterns - The Most Common Misconceptions (2 of N)Klaus Iglberger47m
Compares CRTP, C++23 explicit object parameters and std::variant with concrete code patterns and a 10,000‑shape benchmark (225,000 translate ops, GCC 13.2 /…
Talk on
Why Iterators Got It All Wrong — and what we should use insteadArno Schoedl31m
Claim: C++ iterators mix two different semantics — elements and borders — which breaks adapter chaining (reverse, filter, transform) and makes base()…
Talk on
Omg, how do I write software that isn't a ticking timebomb!?Eivind Jahren43m
Shows concrete results using Property Based Testing with the Python tool Hypothesis to generate inputs, shrink failures and find real bugs—example: a numeric…
Talk on
Bootable applications - an introductionMichael Odden01h 03m
Builds and boots tiny UEFI applications from C and Zig using clang/LLVM + lld, produces PE32+ COFF executables and a bootable IMG that flashes to USB, runs…
Talk on
An (In-)Complete Guide to C++ Object LifetimesJonathan Müller58m
Claims the C++ standard has mistakes and walks through concrete rules: when declarations, new/placement new, memcpy/bit_cast, or std::start_lifetime_as…
Talk on
Memory Model: Get your shared data under controlJana Machutová51m
Covers C++20 memory model with concrete examples that build a hikers-and-lighthouse story to show when each primitive is appropriate: latch for one‑time joins…
Talk on
The Two Memory ModelsAnders Schau Knatten01h 02m
Compares the C++ memory model to CPU models and shows concrete examples: making the ready flag an atomic with acquire/release turns the red (racy) arrows green…
Talk on
Memory Safety: Rust vs. CRobert C Seacord01h 01m
Argues that government pushes for memory-safe languages overstate immediate benefits, noting a Ferine qualified Rust toolchain exists but is certified only for…
Talk on
TPMs and the Linux Kernel: unlocking a better path to hardware securityIgnat Korchagin47m
TPM adoption is low because apps must juggle resource managers, competing TSS stacks and privileged device access; this work shows a concrete path: use the…
Talk on
My favorite (constexpr) data structuresHana Dusikova49m
A Clank interpreter models the constexpr abstract machine using an AP value (an arbitrary‑precision, variant‑style runtime value) and symbolic addresses, which…
Talk on
Speedrun through Splicing Sockets with SockmapJakub Sitnicki47m
Shows how to bypass the kernel network path by wiring sockets together with splice() syscall alternatives and sockmap + BPF programs, loading sk_msg and sk_skb…
Talk on
Unleashing 🦀 The Ferris WithinVictor Ciura01h 01m
Microsoft ports DirectWrite core and ports parts of GDI to Rust, Windows boots with the Rust GDI pieces and all GDI tests pass while microbenchmarks show equal…
Talk on
The Magic of a TraceTheodor Thornhill59m
Shows how to use Intel PT via perf and the Magic Trace toolchain to get full execution traces, not samples, and to spot exact causes like a 750 ms re‑auth…
Talk on
Using vcpkg in angerMartin Hořeňovský42m
Three years of production use reveals concrete vcpkg pitfalls and workarounds: use manifest mode and always pin a baseline because built‑in baselines change…
Talk on
Getting Started with Embedded Linux SecuritySimon Goda59m
Overview lists concrete defenses and checks: use fortify_source and GCC stack protectors plus ASAN or Valgrind for memory bugs, run checksec/ckkc to audit…
Talk on
Core and other guidelines. The good, the bad, the... questionable?Arne Mertz50m
Compares C++ Core Guidelines to how teams actually apply them, showing concrete harms and fixes: rule of five causes needless boilerplate and copy/move advice…
Talk on
C++ HorizonsBryce Adelstein Lelbach53m
Claims three concrete C++ changes will reshape code: reflection/injection that extracts metaobjects, builds token sequences, queues injections and…
Talk on
Exploring Dependency Injection and Reflection in Modern C++Mikhail Svetkin56m
Shows concrete techniques to inject and introspect dependencies in C++20: implements any_settings type erasure to mix template and inheritance, uses boost::pfr…
Talk on
Demystifying Process Address Space: Heap, Stack, and BeyondPiotr Wierciński59m
Linux x86 process layout shows 48-bit virtual addresses split into user vs kernel space, kernel uses KPTI for isolation, and ASLR randomizes most mappings…
Talk on
How To Use `constexpr` In C++23Jason Turner01h 00m
C++23 widens what can run at compile time and the rules matter: you cannot deallocate memory not allocated during constant evaluation, use reinterpret_cast, or…
Talk on
Green ProgrammingHendrik Niemeyer, Tina Ulbrich51m
Experiment implements the Hunt seat-allocation algorithm in 14 languages and measures energy and CO2 with codecarbon emissions tracker on an Intel Core i7 with…
Talk
Hello Operator: Making The Call for CBjörkus Dorkus01h 05m
Proposal to add C operators by decoupling an explicit operator-to-function binding (operator declarations that map to normal C functions) and using exact type…
Talk on
Locknote: Local Reasoning in C++Sean Parent01h 09m
Argues that local reasoning—proving a function or class correct from its API alone—scales software reliability by enforcing precise preconditions…
Talk on
The Carbon Language: Road to 0.1Chandler Carruth01h 07m
Carbon targets C++ interop as its 0.1 MVP by packaging a clang/libc++ toolchain and shipping nightly builds that already compile and run examples (a Prime…
Talk on
Naming is Hard: Let's Do BetterKate Gregory01h 02m
Explains why many C++ names (RAII, partial_sort_copy) confuse intent and shows concrete fixes: rename a bloated set_status into approve and deny, prefer…
Talk on
Cache friendly data + functional + ranges = ❤️Björn Fahller57m
Shows a compact C++23 library (built with clang 18 and measured with perf) that replaces a vector-of-structs with structs of vectors and a templated table API…
Talk on
Deep dive with Blueye underwater dronesJonas Follesø01h 01m
Blueye builds lightweight tethered inspection ROVs that weigh under 11 kg, dive to 300 m, and reach customers in 60+ countries with over 1,250 units shipped…
Talk on
Correct Use of Integers in Safety-critical SystemsRobert C Seacord58m
Argues that MISRA and AUTOSAR rules requiring replacement of standard integers with exact-width typedefs make code less safe and less portable, showing…
Talk on
Keynote: How To Address 7 Major C++ Pain Points with ToolsAnastasiia Kazakova57m
Covers concrete fixes for the top C++ pain points from the C++ Foundation survey: package management via vcpkg and Conan, shortening long builds by using an…
Talk on
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.