NDC TechTown 2018
2018-09-27..2018-09-30
Kongsberg, Norway
[NDC TechTown 2017, NDC TechTown 2018, NDC TechTown 2019, NDC TechTown 2020, NDC TechTown 2021, NDC TechTown 2022, NDC TechTown 2023, NDC TechTown 2024, NDC TechTown 2025]
| title | author | length |
|---|---|---|
| Keynote: What can C++ do for embedded systems developers? | Bjarne Stroustrup | 01h 08m |
Argues that modern C++ gives zero-overhead abstraction and real predictability: templates and constexpr produce identical assembly on x86/ARM (verified with… | ||
| C++17 in Practice - The good and the ugly | Nicolai M. Josuttis | 58m |
C++17 is practical on VC++, gcc and clang but contains surprising pitfalls and fixes: class template argument deduction removes many explicit template args but… | ||
| Simplicity: Not Just for Beginners | Kate Gregory | 51m |
Argues that “simple” means expressive, readable, and unsurprising, not unfinished beginner examples, and shows concrete C++ techniques that cut maintenance and… | ||
| C++ (Core) Guidelines - Safer C++ | Peter Sommerlad | 49m |
Ten years of IDE work produce a concrete toolset inside Cevelop that finds core-guideline violations and offers automatic repair like inserting const… | ||
| Introduction to Lock-free Programming | Tony Van Eerd | 53m |
This talk will cover some of the problems of lock-free, some of the reasons why these problems exist (what is the CPU doing), and, honestly, try to make you… | ||
| Higher order functions for ordinary C++ developers | Björn Fahller | 43m |
Shows how to write real higher‑order functions in modern C++17 and why returning lambdas with the auto return type beats std::function for performance; builds… | ||
| Design for Test | Hubert Matthews | 49m |
Argues that testability comes from design: isolate business logic from environmental I/O, invert dependencies, and construct object graphs separately so core… | ||
| User Research For Everyone | Aras Bilgen | 36m |
Three practical steps and concrete methods to run cheap fast research that actually changes products. Start with user tracks — use analytics, bounce spikes and… | ||
| Strace: Monitoring The Kernel-User-Space Conversation | Michael Kerrisk | 45m |
Strace monitors every syscall a process makes via ptrace, decoding names, flags and structures symbolically (strings default to 32 bytes) and shows surprising… | ||
| Working with C++ Legacy Code | Dror Helper | 45m |
Shows concrete techniques to make C++ legacy code safe to change: write automated tests with Google Test and replace dependencies with Google Mock or… | ||
| A Modern Embedded Product Platform | Anders Norman | 43m |
Barco builds a reusable embedded projector platform that runs Linux and uses an FPGA for real‑time image pipeline while the CPU handles control; the CPU is a… | ||
| Unlocking secrets of proprietary software using Frida | Ole André Vadla Ravnås | 52m |
Frida hooks live functions inside a process and demonstrates concrete results: attach via Python/JS bindings, log and mutate an integer argument, replace sleep… | ||
| Reflections around SW obsolescence | Andreas Bredesen | 44m |
Missile programs run a decade, products must last ~50 years, and 60–70% of development is now software, so reproducing a build environment 10+ years later… | ||
| Integrate Python and C++ with pybind11 | Robert Smallshire | 48m |
Shows how to expose parts of the Seagull computational-geometry library (constrained/conforming triangulation, meshing, Lloyd optimization) to Python using… | ||
| CUDA Kernels with C++ | Michael Gopshtein | 36m |
Shows concrete C++ techniques that run on NVIDIA GPUs: a templated device_ptr type and device_memory class to avoid host/device pointer bugs, placement-new to… | ||
| The Golden Age of Design | Paal Holter | 38m |
Design acts as innovation super fuel by shaping strategy, visions and entire touchpoint ecosystems rather than just polishing form. Example: a freight platform… | ||
| "Who do I innovate for?" A Product Manager's perspective! | Shubham Bhattacharya | 38m |
Product management spends more than half its time on innovation and the hard truth is 90% of incumbents fail when they enter new businesses. Case studies: Lego… | ||
| Great UX, Despite Agile: How to Get the Best Out of Your Design Team in Agile Projects | Aras Bilgen | 45m |
Defines five design maturities (from unconscious to reframing) and argues agile needs a separate discovery track layered over production sprints, not just… | ||
| An introduction to Behaviour Driven Development (BDD) for embedded systems | Seb Rose | 50m |
Claims that BDD works for embedded systems are backed by a concrete workflow: start with example mapping to uncover rules and concrete cases, translate those… | ||
| Microservice Architectures in Embedded Linux and FreeRTOS | Tore Martin Hagen | 33m |
Did you think Microservices was just yet another fancy name for something they are doing in enterprise software?
In this talk I will show how you can apply… | ||
| How to Transform Developers into Security People | Chris Romeo | 52m |
Argues that developers must be the first line of defense because training alone doesn't change mindset, classifying responses as unfamiliar, overworked… | ||
| SW Testing: Can ML save us? | Marius Liaaen, Carl Martin Rosenberg | 46m |
Argues machine learning can reduce GUI test maintenance by replacing brittle pixel diffs with Applitools screenshot comparison that ignores minor changes and… | ||
| Fuzzing with AFL | Erlend Oftedal | 45m |
Introduces practical AFL usage: compile with AFL instrumentation (AFL_INST_RATIO=100), run master plus three slaves on a rented Hetzner box (€20/mo), seed and… | ||
| Part I: A Performance Analysis of a Trading System over Compliers | Jason McGuiness | 48m |
Implements a real FIX-to-MIT/BIT translator and measures it across GCC, Clang and ICC versions, kernels and an AMD Bulldozer box; finds compiler optimizers are… | ||
| Part II: A Performance Analysis of a Trading System over Compliers | Jason McGuiness | 50m |
A simple FIX-to-MIT/BIT translator handles socket I/O, parses prices and quantities, and is used to measure full round-trip times over 100k orders… | ||
| Agile Development at Scale With Autonomous teams | Thomas Malt, Jan Henrik Gundelsby | 49m |
Claims that an API‑centric, domain‑aligned architecture lets teams own services and move fast, backed by a City of Oslo case with 300 components and several… | ||
| The Git Parable - a different approach to understanding Git (90 min) | Johan Herland | 01h 25m |
90 minutes that builds a tiny Git-like VCS from a text editor and filesystem up so you see exact mechanics: snapshots become SHA-1 named objects, files become… | ||
| Optimising a small real-world C++ application | Hubert Matthews | 48m |
Converts fixed-width EBCDIC/packed-BCD COBOL files to pipe-separated CSV using a JSON field spec and iterative changes that double and redouble speed: initial… | ||
| The Nightmare of Move Semantics for Trivial C++ Classes | Nicolai M. Josuttis | 42m |
Examines a trivial class with multiple std::string members and measures how common constructor patterns produce surprising extra allocations and copies… | ||
| C++ Unit testing - the good, the bad & the ugly | Dror Helper | 53m |
Compares actual tools and practices: uses a bowling-score example to show Google Test (compiled test executable, clear failure messages) versus Catch… | ||
| Self-Awareness in C++ Code | Paul Williams | 42m |
Built a production memory profiler that instruments allocations inside the Bloomberg Terminal by intercepting heap calls via IAT patching, calling kernel heap… | ||
| Words of Wisdom | Tony Van Eerd | 46m |
Argues copies must have value semantics (copies are distinct, not entangled) and shows how a size_t underflow bug appears when an empty vector lets a… | ||
| Type safe C++? LOL! | Björn Fahller | 46m |
A bug mixes two uint32 IDs and fails to compile until each becomes a distinct strong type, so code prevents using a request ID vs receiver ID bug at compile… | ||
| Yara Birkeland - a global game changer | An-Margritt Tinlund Ryste | 31m |
Yara and Kongsberg build a world's first fully electric autonomous ballast free container feeder that shifts 25,000 containers per year from road to sea… | ||
| Huddly - The thinking camera and applied machine learning | Mats Gabriel Love Johansen, Kai Wig | 51m |
Huddly shows a USB collaboration camera that runs convolutional neural nets on-device using a hardware-accelerated CNN (Myriad X), a high-resolution sensor and… | ||
| Sociocracy for Creating Better Products | Jutta Eckstein | 45m |
Explains how consent (good enough for now, safe enough to try) replaces consensus by asking for paramount objections that would risk the goal, not unanimous… | ||
| Threat Modeling: uncover vulnerabilities without looking at code | Chris Romeo | 53m |
Shows how to pick a small feature, draw a simple data flow diagram with trust boundaries and attack surface, then run STRIDE to find specific flaws like… | ||
| Building useful project utils in Python | Johan Herland | 51m |
Starts from a 450-line bash utility and shows an incremental rewrite into Python that cuts ~19% of the code while making the logic reusable and testable… | ||
| C++: No more nulls! (Fixing the billion dollar mistake) | Anders Schau Knatten | 46m |
Argues C++ eliminates most nulls by using references and value types for definite data, std::optional for maybe values, and gsl::not_null for remaining… | ||
| Isolating GPU access in its own process | Patricia Aas | 35m |
Chromium moves all GPU calls into a separate GPU process and uses IPC over shared memory with a command buffer ring and IPC channels to serialize GLES2 calls… | ||
| Sane and Safe C++ Class Types | Peter Sommerlad | 57m |
Gives a compact map of which C++ class patterns are safe, which require expert care, and which are dangerous, with concrete gotchas and fixes: set of double… | ||
| IncludeOS - running C++ applications without an operating system | Per Buer | 46m |
IncludeOS compiles OS functionality into the application so you get a single ELF binary that boots on KVM/VMware or bare metal, written in modern C++. It… | ||
| Real-time prototyping using visual programming languages | Rui Martins | 47m |
Visual programming is used to build fully interactive prototypes with real-time data and hardware I/O using TouchDesigner, producing usable results in one day… | ||
| C++ Cryptozoology - A Compendium of Cryptic Characters | Adi Shacham Shavit | 29m |
Survey of quirky C++ features with concrete examples and takeaways: shows how abominable function types can be declared but not defined and why that breaks… | ||
| Zivid One - The story behind the World’s most Accurate, Real time 3D Color Camera | Arild Ulfeng | 44m |
Claims a real‑time color 3D camera with 0.1 millimeter accuracy built from a custom pico‑projector structured‑light engine and structured light projector +… | ||
| Designing for consumers, succeeding with professionals | Espen A. Jørgensen | 47m |
Examples of consumer design applied to pro products include an explosion-proof Android smartphone that matches regular phone form and wins new markets… | ||
| What Do We Mean When We Say Nothing At All? | Kate Gregory | 39m |
C++ code often uses absence of tokens to signal intent or ignorance: missing explicit vs implicit on a single-arg constructor, omitted const on methods, lack… | ||
| What I Talk About When I Talk About Cross Platform Development | Adi Shacham Shavit | 53m |
Proposes the Salami Method: slice software into a thin cross-platform C++ core, a public C++ API, a C API boundary for ABI-stable interop, platform-specific… | ||
| Using Seccomp to Limit the Kernel Attack Surface | Michael Kerrisk | 52m |
Seccomp uses BPF programs to whitelist or block kernel calls, reducing a 400-call kernel surface to the small set an app actually needs — typical apps uses <40… | ||
| Everything you want to know about C/C++ pre-processor but couldn't ask | Jon Jagger | 41m |
Claims the C/C++ preprocessor is almost Turing complete and demonstrates concrete tricks and pitfalls: string-literal concatenation that changes compiler… | ||
| Taking testing to the next level | Ole André Vadla Ravnås | 43m |
Frida is used to inject and manipulate running processes: examples include inject connect to return -1 (ECONNREFUSED=61) to simulate network failures, and… | ||
| Binary Reproducible Builds with Docker | Mike Long | 42m |
Shows how to make a reproducible C++ build by using Docker to freeze the environment, pinning a Debian base image, installing GCC and build tools, and setting… | ||
| C++ at High Subsonic Speed | Arne Førlie | 50m |
KONGSBERG builds NSM and JSM missiles running C++ since 1995 on PowerPC targets (NSM <2GB RAM, JSM 16 cores on Integrity 11). Toolchain includes HiMake builds… | ||
| Linux Security APIs and the Chromium Sandbox | Patricia Aas | 46m |
Chromium builds its Linux sandbox by forking/cloning a single browser binary into a small set of processes (browser, zygote/zygote child, GPU, and one renderer… | ||
| nothing matches | ||