Jody Hagins

  • Director, Software Engineering/MayStreet/LSEG

Jody Hagins started using C++ back in the mid 1980s, with cfront. In 1993, he enjoyed writing enough C++ support code to enable writing loadable unix device drivers in C++. Since then, he has been applying C++ to various problems within the fintech space.

Sessions

  • What Every C++ Programmer Needs to Know About AI

    Beginner
    Intermediate
    Advanced
    Tooling/Utilities

    Any sufficiently advanced technology is indistinguishable from magic. Unfortunately, so is a decent parlor trick. The whole game with AI is figuring out which one you're actually looking at. Generative AI is changing the programming landscape, which is exciting, confusing, useful, over-hyped, and occasionally just plain scary. For C++ programmers, that mix gets even more interesting because our mistakes are rarely decorative. This talk explores what C++ developers actually need to know about AI: the technical risks, the broader human concerns, and the practical techniques that make these tools more helpful and less hazardous. We will cover correctness and some […]

  • AI is Forcing us to Obey Scott Meyers

    Beginner
    Intermediate
    Advanced
    API Design

    This talk argues that Scott Meyers' mantra "make interfaces easy to use correctly and difficult to use incorrectly" isn't just good practice for humans. It's essential infrastructure for a world where AI generates C++ at scale. When there's only one right way to call a function, both humans and machines get it right. If there are multiple ways, and some lead to disaster, AI increases the probability of disaster. Through concrete redesigns of real APIs and parts of the standard library, we demonstrate how interfaces designed specifically to provide "one right way" act as implicit guardrails for generated code, and […]

  • The Most Important API Design Guideline

    Beginner
    Intermediate
    Advanced
    API Design

    Scott Meyers has famously proclaimed that the most important general design guideline is to make interfaces easy to use correctly and hard to use incorrectly. I don't dispute that claim, for the general case. However, for the specific case of an API, and in particular C++ library code, this guideline must take a back seat to something else. So, what should that something else be? Obviously, since the above paragraph mentions C++ specifically, it must relate to performance in some way. Could it be to make interfaces as efficient as possible? If not, then what in the world could it […]

  • Boost.MP11

    Intermediate
    Advanced
    Generic/Metaprogramming

    This presentation is intended to be a tutorial on using Boost.MP11, by example. During the course of this presentation, we will explore the majority of the Boost.MP11 API as we help save Christmas by solving multiple Advent of Code 2022 problems at compile time, using Boost.MP11. This tutorial is not intended for true C++ beginners, but we will start out simple enough that anyone familiar with templates should be able to follow along and learn how to use the Boost.MP11 API. Join us as we save Christmas, have some fun, and learn some Boost.MP11 along the way.