Footguns, Film Study, and Forty Years of Failure: What std::vector Taught Me About API Design

Jody Hagins

⏱ 90 minute session
beginner
intermediate
advanced
14:30-16:00, Wednesday, 17th June 2026

After forty years of writing C++ (and making spectacular mistakes), I've learned that good API design isn't about being smart. It's about being humble enough to learn from failure.

In this talk, we'll do what football coaches call "film study". We will examine real plays that went wrong to understand why. Our primary film? std::vector. One container. Dozens of lessons. We'll trace how small design decisions create traps that have caught millions of programmers, including one that sent a billion-share order to an exchange because an iterator stored as a variable was invalidated.

But we won't stop at vector. We'll look at recent API changes that make me scratch my head because in some ways we just can't keep ourselves from making the same mistakes.

And we'll develop a set of principles for building APIs that are easy to use correctly, hard to abuse, and honest about what can go wrong.

This isn't a rant about the committee. Smart people made hard tradeoffs under impossible constraints. But we can learn from what didn't work so that we can build APIs that expect humans to be human... and AI assistants to be, um, not.

Jody Hagins

Jody Hagins has been using C++ for the better part of four decades. He remains amazed at how much he does not know after all those years. He has spent most of that time designing and building systems in C++, for use in the high frequency trading space.