Loading…
CppNorth 2025, The Canadian C++ Conference
July 20-23, 2025 • Toronto, Canada
Sunday, July 20
 

18:00 EDT

Sunday Welcome Reception!
Sunday July 20, 2025 18:00 - 21:00 EDT
Sunday July 20, 2025 18:00 - 21:00 EDT
TBA
 
Monday, July 21
 

09:00 EDT

Keynote: TBA
Monday July 21, 2025 09:00 - 10:30 EDT
TBA
Speakers
avatar for Kate Gregory

Kate Gregory

Partner, Gregory Consulting
Kate Gregory is an author, sought-after conference speaker, trainer, and partner at Gregory Consulting. Kate has been using C++ since before Microsoft had a C++ compiler. She is an early adopter of many software technologies and tools, and a well-connected member of the software development... Read More →
Monday July 21, 2025 09:00 - 10:30 EDT
TBA-A

11:00 EDT

Taming a Beast: Using ONNX Runtime in AAA Games
Monday July 21, 2025 11:00 - 12:00 EDT
To accelerate machine learning research and to unlock the potential for cutting-edge in-game models, Ubisoft started using Microsoft’s open-source inference library ONNX Runtime in their proprietary engines.
This session offers insights into using this solution in game dev scenarios: performance topics, build requirements and processes, threads and memory management, library licenses, open-source contributions and the overall organization around this initiative.
Speakers
avatar for Jean-Simon Lapointe

Jean-Simon Lapointe

Software Team Lead, Irystec
Jean-Simon Lapointe is a Technical Lead in the Technology Group at Ubisoft Montreal since 2020. As a member of the content creation technologies transversal team, he worked on software that helps production teams integrate machine learning technologies inside their games. Additionally... Read More →
Monday July 21, 2025 11:00 - 12:00 EDT
TBA-B

11:00 EDT

Speak Up, Stand Out: Communicating Confidently in the Workplace
Monday July 21, 2025 11:00 - 12:00 EDT
Master the art of confident communication to showcase your value and unlock new career opportunities. This session offers practical tools to help you overcome self-doubt, articulate your achievements, and build influence through authentic, clear communication. Gain the confidence to navigate workplace dynamics and take charge of your professional growth.
Speakers
avatar for Shailvi Wakhlu

Shailvi Wakhlu

Founder, Shailvi Ventures LLC
Shailvi is a seasoned Data Leader and Self-Advocacy Expert with over sixteen years of experience building technology products. She has spoken at nearly 100 global conferences and Fortune 500 events, coached close to 500 individuals, and authored the best-selling book "Self-Advocacy... Read More →
Monday July 21, 2025 11:00 - 12:00 EDT
TBA-A

13:00 EDT

C++ Contracts – a Meaningfully Viable Product
Monday July 21, 2025 13:00 - 14:00 EDT
After 2 full decades of multiple efforts aimed at introducing a contracts feature into the C++ language, contracts have finally been voted into C++26 at the February 2026 C++ Standards Committee (WG21) meeting in Hagenberg, Austria. To be more precise – confirmation into the standard was given to the Contracts MVP – Minimal Viable Product.
This talk will bring you the highlights of the MVP and occasionally also some forecasted features beyond it – some of which might still also make it into C++26, which should be known in time for CppNorth, with this talk duly reflecting any relevant updates. We will shift our focus away from the theoretical background behind contracts and more into some select minutiae and pitfalls encountered along the tortuous process of developing this MVP, while also inspecting the most important things future contracts users should be aware of. And you can also expect some am(a/u)sement along the way!
This talk is being designed based on the current state of the Contracts MVP, and will be brought up to speed with the outcome of the Sofia meeting in June.
Speakers
avatar for Andrei Zissu

Andrei Zissu

Andrei Zissu is a veteran cross-industry C++ developer, notably having worked on low-level reverse engineering systems employing API hooking, DLL injection and other advanced techniques. He has been a member of the WG21 C++ Standards Committee since early 2022, and as such is actively... Read More →
Monday July 21, 2025 13:00 - 14:00 EDT
TBA-A

13:00 EDT

Improving JavaScript runtimes with C++20
Monday July 21, 2025 13:00 - 14:00 EDT
The integration of C++20's new ranges library into JavaScript runtimes presents a promising avenue for enhancing performance and code clarity. We delves into how ranges can simplify the handling of collections and sequences in JavaScript engines such as Node.js and Cloudflare workerd. By leveraging lazy evaluation offered by C++20 ranges, JavaScript runtimes can achieve more efficient data processing, reducing both memory footprint and execution time. We explore the application of ranges in optimizing Node.js, showing how they can be used for tasks such as data transformation, filtering, and iteration with less boilerplate code. We examine the benefits of ranges in terms of code readability and maintainability, which are critical for the large teams working on these engines. We provide practical guidance on how developers can begin to incorporate ranges into their projects, considering both the technical and educational aspects of this transition. Our analysis concludes that while there's an adjustment period for developers, the long-term advantages in performance and ease of development make C++20 ranges an invaluable tool for modernizing JavaScript runtimes.
Speakers
avatar for Daniel Lemire

Daniel Lemire

Daniel Lemire is a computer science professor at the Université du Québec (TÉLUQ) in Canada, known for his research in software performance. Daniel Lemire ranks in the top 2% of scientists worldwide according to Stanford University/Elsevier's 2024 ranking. He is part of the 1000... Read More →
avatar for Yagiz Nizipli

Yagiz Nizipli

Yagiz Nizipli is a distinguished software engineer known for his contributions to Node.js and his service as a member of the Node.js Technical Steering Committee. He currently works as a Principal Systems Engineer at Cloudflare, focusing on optimizing and improving web application... Read More →
Monday July 21, 2025 13:00 - 14:00 EDT
TBA-B

14:30 EDT

Unveiling Type Erasure in C++: From std::function to std::any
Monday July 21, 2025 14:30 - 15:30 EDT
Type erasure is a powerful concept in C++ that allows us to work with heterogeneous types while hiding their concrete details behind a generic interface. In this talk, we will explore how the C++ Standard Library employs type erasure in constructs like std::function, std::shared_ptr, and std::any to provide flexible and efficient solutions for managing types at runtime. Further, we will unveil the hidden cost of using these constructs.
We will start by building our own version of std::function, which will help demystify how it can store and call any callable object, regardless of its type. Then, we'll look at how std::shared_ptr uses type erasure to maintain type safety via dynamic dispatch of the deleter. Finally, we will delve into std::any, some times claimed the modern void*, and explore a different technique of type erasure.
Speakers
avatar for Sarthak Sehgal

Sarthak Sehgal

Sarthak Sehgal is an early-career C++ Software Engineer at a high frequency options market making firm. His interests lie in low level programming, performance optimization, and finance. Blog: sartech.substack.com... Read More →
Monday July 21, 2025 14:30 - 15:30 EDT
TBA-B

14:30 EDT

Telling Your Technical Story
Monday July 21, 2025 14:30 - 15:30 EDT
A good technical talk is as much about storytelling as it is about presenting information. At best, it is a shared experience between speaker and audience. Even the most complex topics can be presented simply and clearly, sparking questions, conversation, and perhaps even some argument. When this is done well, a good talk becomes a great one and leaves everyone, including the speakers, with more: more understanding, more curiosity, more interest.
Small tweaks to your presentations can make a huge difference. Learn how to add context and clarity to your talks; how much detail is enough; how to craft simple and effective slides; how to be truly comfortable on stage and engage your audience; and how to cope with the unexpected.

I envision much of this as a conversation with the audience where they can discuss their own ideas or works in progress if they choose; share experiences, find presentation ideas from the work they are doing day to day.
Speakers
avatar for Sherry Sontag

Sherry Sontag

Technical Expert, Bloomberg
Sherry Sontag came to Bloomberg Engineering after co-authoring “Blind Man’s Bluff,” a New York Times bestseller about submarine espionage during the Cold War. Hired by Bloomberg 17 years ago for her ability to talk to anyone and actually listen, she recently has been working... Read More →
Monday July 21, 2025 14:30 - 15:30 EDT
TBA-A

16:00 EDT

Should I Check for Null Here?
Monday July 21, 2025 16:00 - 17:00 EDT
Two years ago a junior developer, doing her very first "introductory" task, asked the seemingly simple question "should I check for null here?".

This, of course, resulted in a multi page response from me, starting with:

"It depends"

and ending with:

"And that's the short version. For the long version, see my hour/day presentation on whether to check for null (which is actually not about null at all, but Contracts...)"

Aha! Two years later...

This is a talk about Error Handling - but in particular those errors you didn't expect - bugs.

And yes, this is really a talk about Contracts, in particular C++26 (and beyond) Contracts. What are they, What AREN'T they, how to use them and WHY.
Speakers
avatar for Tony Van Eerd

Tony Van Eerd

Stunt-double for C++ Expert, Christie Digital
Tony has been coding for well over 25 years, and hopefully coding well for most of that. Previously at Inscriber, Adobe, and BlackBerry, he now enables painting with light at Christie Digital. He is on the C++ Committee. He is a Ninja and a Jedi.
Monday July 21, 2025 16:00 - 17:00 EDT
TBA-A

16:00 EDT

A Pragmatic Journey into C++ Modules
Monday July 21, 2025 16:00 - 17:00 EDT
Modules are the most impactful new addition to C++20 since they affect every developer. The other Big Five—concepts, ranges, coroutines, and three-way comparison—affect major segments of C++ users but not necessarily everyone.

This talk is a detailed, pragmatic discussion that uses simple to complex examples. It touches on the detailed workings of modules and build systems, particularly for GCC, Clang, and CMake. (Sorry, no MSVC since I'm on Linux.) At the end, attendees will have a comprehensive understanding of C++20 modules and be equipped to apply this knowledge to their projects.
Speakers
avatar for Rud Merriam

Rud Merriam

Retired, Mystic Lake Software
Rud Merriam is a retired software developer, having lived through the spaghetti, structured programming, and object-oriented development paradigms. He's now trying to figure out functional programming and the ranges library.He wrote his first FORTRAN IV in 1968 and his first C++ in... Read More →
Monday July 21, 2025 16:00 - 17:00 EDT
TBA-B
 
Tuesday, July 22
 

09:00 EDT

Keynote: TBA
Tuesday July 22, 2025 09:00 - 10:30 EDT
TBA
Speakers
avatar for Alex Dathskovsky

Alex Dathskovsky

Director of SW engineering, Speedata
Alex has over 18 years of software development experience, working on systems, low-level generic tools and high-level applications. Alex has worked as an integration/software developer at Elbit, senior software developer at Rafael, technical leader at Axxana, Software manager at Abbott... Read More →
Tuesday July 22, 2025 09:00 - 10:30 EDT
TBA-A

11:00 EDT

Gotta Cache 'Em All: Optimize Your C++ Code By Utilizing Your Cache!
Tuesday July 22, 2025 11:00 - 12:00 EDT
Get ready for a crazy fun & informative talk! Boost your C++ code's performance by utilizing the full power of your computer’s built-in cache. In this talk, we'll delve into the basics of caches, spatial and temporal cache locality, and practical techniques for optimizing cache access. We'll also explore cache prefetching, branch prediction, and false sharing, providing examples modelled on real-world production code and performance benchmarks to drive home each point. By the end of this talk, you'll be equipped with the knowledge and tools to better optimize your code for cross-platform performance gains.
Speakers
avatar for Michelle D'Souza

Michelle D'Souza

Michelle Fae D’Souza is a Software Engineer at Bloomberg, where she develops C++ code for the company’s order-trade entry and modification (OTE API) solution, which streamlines trading activity for many firms in the financial world. She is an active member of Bloomberg's C++ Guild... Read More →
Tuesday July 22, 2025 11:00 - 12:00 EDT
TBA-A

11:00 EDT

On coding guidelines, class invariants, and special member functions
Tuesday July 22, 2025 11:00 - 12:00 EDT
This talk explores five widely taught C++ coding guidelines and the subtle but profound way that the special member functions interact with class invariants, all with the ultimate goal of learning how to write better code.
Speakers
avatar for Olivia Wasalski

Olivia Wasalski

Olivia Wasalski is a Software Development Team Lead at Safe Software Inc., specializing in computational geometry. She’s passionate about optimizing algorithms for various data shapes, minimizing floating point errors, bit-packing, and developer education.
Tuesday July 22, 2025 11:00 - 12:00 EDT
TBA-B

13:00 EDT

Serial and parallel pipelines in modern C++
Tuesday July 22, 2025 13:00 - 14:00 EDT
A pipeline is a chain of processing elements such as functions, threads etc., arranged so that the output of each element is the input of the next. We often encounter this pattern in practice. C++ also allows us to write in this way, e.g. using the `std::ranges` library with its characteristic overloaded pipe `operator |`. But modern C++ enables much more and this will be discussed in this talk. First, we'll show how to implement a custom pipeline framework that employs `std::expected`, available since C++23. Secondly, we will show pipelines in the serial version, where the functions communicate the results of their calculations, as well as in the parallel version, in which at least one thread operates on each link. In the last case we will need synchronized queues – and here we will also show how `std::expected` can be used again to create a flexible interface. Everyone is welcome!
Speakers
avatar for Boguslaw Cyganek

Boguslaw Cyganek

Researcher, AGH University of Krakow
Boguslaw Cyganek is a researcher and lecturer at the Department of Electronics, AGH University of Krakow, Poland. He has worked as a software engineer for a number of companies such as Nisus Writer USA, Compression Techniques USA, Manta Corp. USA, Visual Atoms UK, Wroclaw University... Read More →
Tuesday July 22, 2025 13:00 - 14:00 EDT
TBA-B

13:00 EDT

Code & Culture: Crafting Innovation Through Diversity & Inclusion
Tuesday July 22, 2025 13:00 - 14:00 EDT
In today’s fast-paced tech landscape, innovation thrives where diversity and creativity intersect. This talk explores the unique synergy between code and culture, revealing how diverse perspectives amplify problem-solving, foster creativity, and drive groundbreaking advancements. We'll dive into real-world examples and research that demonstrate how inclusive teams leverage varied experiences, viewpoints, and skills to craft solutions that resonate globally. Attendees will gain insights into how cultivating a culture of diversity not only enhances team dynamics but also fuels sustainable & impactful innovation. Join me to uncover how diversity in tech isn’t just a value—it’s a vital component of building the future.
Speakers
avatar for Sejal Gupta

Sejal Gupta

Sejal Gupta (She/Her) is a full-time C++ developer, passionate about technology and constantly strives to empower women in tech. She founded a community (Women in Tech++) where she has mentored 250+ women and seeks to keep this legacy. She has authored 3 research articles on the Internet... Read More →
Tuesday July 22, 2025 13:00 - 14:00 EDT
TBA-A

14:30 EDT

Heaps Don't Lie - Guidelines for Memory Allocation in C++
Tuesday July 22, 2025 14:30 - 15:30 EDT
Dynamic memory allocations are ever-present in most programs. A simple look at the RAM usage of the browser you are currently using to read this abstract will likely tell you something.
But what of the runtime performance cost? How much (or little) should you be concerned about it and keep it in mind while implementing new features or designing software?

In this talk, we will present a set of about 10 guidelines to keep in mind when dealing with dynamic memory allocation and mitigate its potential performance impact on execution speed. From quite simple to somewhat advanced, everyone should be able to walk away from this talk having learnt something.
Speakers
avatar for Mathieu Ropert

Mathieu Ropert

French C++ expert with a passion for game development and performance. Decided to upgrade his compiler once and has been blogging about build systems ever since. Past speaker at CppCon, Meeting C++, ACCU and code::dive. Used to run the Paris C++ User Group. Currently lives in Swe... Read More →
Tuesday July 22, 2025 14:30 - 15:30 EDT
TBA-B

14:30 EDT

Bridging C++ and Java with Qt JNI: An Android Application for On-Device Landmine Detection
Tuesday July 22, 2025 14:30 - 15:30 EDT
Recognizing objects in real-world situations, especially on mobile devices with limited resources or in areas with poor internet connectivity, can be a significant challenge. This talk presents a C++ application for real-time landmine detection, focusing on the Android deployment and its ability to perform on-device detection.

The application, built with the Qt framework written in C++, is designed for both offline (on-device) and online (cloud-connected) operation, balancing performance, accuracy, and connectivity constraints. The Android deployment utilizes the Qt JNI (Java Native Interface) to interact with an ONNX Runtime-based inference engine running in a Java environment, as well as accessing native Android APIs for tasks requiring on-device processing, such as file I/O, thumbnail generation, and network connectivity checks. We will discuss the challenges and solutions involved, including data marshalling between C++ and Java (image format conversion and bounding box result processing), and accessing native Android functionalities from C++. The presentation will include simplified code examples that illustrate these critical integration points.

By the end of the talk, attendees will gain a practical understanding of how to communicate between C++ and Java using JNI, integrate pre-trained deep learning models into their C++ applications, evaluate the trade-offs between on-device and cloud-based processing, and address performance considerations for real-time object detection on Android.
Speakers
avatar for Oleksandr Kunichik

Oleksandr Kunichik

I am Oleksandr Kunichik, a Senior C++ Developer at Pokerstars in Toronto and a Ph.D. student in Software Engineering at the Taras Shevchenko National University of Kyiv. I have over 10 years of experience developing C++ applications, and my current research combines this expertise... Read More →
Tuesday July 22, 2025 14:30 - 15:30 EDT
TBA-A

16:00 EDT

C++ Pitfalls and Sharp Edges to Avoid: Escaping Common Traps for Safer and more Resilient Code
Tuesday July 22, 2025 16:00 - 17:30 EDT
C++ is a powerful language, but with great power comes… plenty of pitfalls. Memory management quirks (even when using smart pointers), subtle undefined behaviors, and bug-prone code can silently introduce dangerous behaviors—only to surface at the worst possible moment in production. While static code analysis can catch some of these issues, it requires proper usage and adherence to warnings, and even then, it won’t catch everything. Many of these traps can lead to hard-to-debug issues, safety problems, and security vulnerabilities.
In this talk, we’ll explore some of the most notorious C++ pitfalls and sharp edges, discussing strategies to avoid them and write safer, more resilient code. We’ll walk through both design best practices and C++ coding guidelines to help you navigate the language’s trickier corners with confidence.
Speakers
avatar for Amir Kirsh

Amir Kirsh

Teacher, Academic College of Tel-Aviv-Yaffo
Amir Kirsh is a C++ lecturer at the Academic College of Tel-Aviv-Yaffo and Tel-Aviv University, previously the Chief Programmer at Comverse, after being CTO and VP R&D at a startup acquired by Comverse. He is also a co-organizer of the annual Core C++ conference and a member of the... Read More →
Tuesday July 22, 2025 16:00 - 17:30 EDT
TBA-B

16:00 EDT

Building a career off-road
Tuesday July 22, 2025 16:00 - 17:30 EDT
Many individual contributors professionals are choosing to create their careers off-road. Instead of climbing the standard career ladder to and through management, they are choosing to navigate tech careers one project and one team at a time. Such professionals often show their leadership without titles, relying instead on creativity, curiosity, and empathy toward their colleagues.

This panel featuring a group of four engineers who have mapped out their careers as individual contributors is designed as a conversation with our audience, a way to encourage others to understand what is possible. Each panelist has learned to stretch beyond assignments while sharing the day-to-day load on their teams. The panel will also include a manager who leads by trusting his people and providing structure when it is requested. One of the panelists spent some hours interviewing other managers, so they can speak with authority about how they balance a team with strongly self-led individuals.

We believe this discussion can help both managers and individual contributors find balance between team needs and individual growth; to navigate the cultures within their organizations; and understand the value that is derived from professional freedom with intent.

While we all work together now, each of us has worked at other companies and in other circumstances where we thrived mainly because we were able to balance autonomy with a deep sense of collaboration and adventure.


Speakers
avatar for Sherry Sontag

Sherry Sontag

Technical Expert, Bloomberg
Sherry Sontag came to Bloomberg Engineering after co-authoring “Blind Man’s Bluff,” a New York Times bestseller about submarine espionage during the Cold War. Hired by Bloomberg 17 years ago for her ability to talk to anyone and actually listen, she recently has been working... Read More →
avatar for CB Bailey

CB Bailey

Software Engineer, Bloomberg
CB has presented at ACCU for several years, as well as at CppCon and other C++ conferences. A software engineer working in infrastructure at Bloomberg, CB creates tools to generate and maintain shared C++ libraries and documentation in order to help application developers write software... Read More →
avatar for Cal Pratt

Cal Pratt

Cal was new to build systems and C++ when he joined Bloomberg Engineering’s Foundations, Build and Intelligence / Distributed Build team. Navigating what he calls the ‘slope of enlightenment and the valley of despair,’ Cal learned to ask questions about everything, and then... Read More →
avatar for Daniel Kiss

Daniel Kiss

Team Lead, Code Governance Solutions: Daniel is a wizard at pinning down his team’s good ideas, getting them scheduled, and helping shepherd their progress. With his help, thoughts that may have lived and died in the course of a single meeting become actions and projects. He not... Read More →
avatar for Marek Paska

Marek Paska

Bloomberg
Marek Paska has worked at Bloomberg for nearly a decade. He leads a team of engineers who are responsible for various C++ components and services that are used across the firm. Earlier in his career, Marek worked on static analysis tools, as well as on video processing systems. He... Read More →
Tuesday July 22, 2025 16:00 - 17:30 EDT
TBA-A
 
Wednesday, July 23
 

09:00 EDT

Keynote: TBA
Wednesday July 23, 2025 09:00 - 10:30 EDT
TBA
Speakers
avatar for Sheena Yap Chan

Sheena Yap Chan

Founder, The Tao of Self-Confidence
Sheena Yap Chan is a Wall Street Journal bestselling author, keynote speaker, strategist, and award-winning podcaster renowned for her expertise in elevating leadership and self-confidence through media. She is the founder and host of the acclaimed podcast, The Tao of Self-Confi... Read More →
Wednesday July 23, 2025 09:00 - 10:30 EDT
TBA-A

11:00 EDT

Advanced Ranges: Writing Modular, Clean, and Efficient Code with Custom Views
Wednesday July 23, 2025 11:00 - 12:00 EDT
In this talk, we will explore the power of C++20 ranges and how custom views can simplify complex data transformations and improve code expressiveness. By creating reusable, lazy-evaluated views that operate on ranges, developers can avoid unnecessary intermediate containers and simplify complex data transformations. While standard views like std::views::transform and std::views::filter offer powerful tools for basic operations, custom views provide additional flexibility, allowing developers to create highly specialized transformations and handle more complex, state-dependent logic.  Through real-world examples, we will demonstrate how custom views enhance performance and maintainability, showcasing how they can streamline everything from basic filtering to complex, state-dependent transformations in modern C++ applications.


Speakers
avatar for Steve Sorkin

Steve Sorkin

Steve Sorkin has been at Bloomberg since 2019, where he is a software engineer working on Bloomberg’s Execution Management System (EMSX) as part of the Portfolio Trading Engineering team. He is enthusiastic about writing clean, scalable, and maintainable code for use in low latency... Read More →
Wednesday July 23, 2025 11:00 - 12:00 EDT
TBA-A

11:00 EDT

Graphics Programming with SDL 3
Wednesday July 23, 2025 11:00 - 12:00 EDT
The C++ programming language does not have a standard graphics library, However, there exists many popular graphics frameworks for cross-platform graphics. In this talk, I will provide an introduction to the Simple Directmedia Layer (SDL) library, which has at the start of 2025 released version 3. This library for several decades has been a standard in the games and graphics industry. Throughout this talk, I will show how to get started with the library, some more advanced examples (including compiling graphics applications to web), and then talk about what a standard graphics library could look like in C++, or if it is even necessary. I will also talk about the 3D GPU library in SDL3. Attendees will leave this talk ready to build multimedia / game applications and with an understanding on if SDL3 is the right tool for them.
Speakers
avatar for Mike Shah

Mike Shah

Professor / (occasional) 3D Graphics Engineer
Mike Shah is currently a teaching faculty with primary teaching interests  in computer systems, computer graphics, and game engines. Mike's research interests are related to performance engineering (dynamic analysis), software visualization, and computer graphics. Along with teaching... Read More →
Wednesday July 23, 2025 11:00 - 12:00 EDT
TBA-B

13:00 EDT

A universal data structure for compile time use
Wednesday July 23, 2025 13:00 - 14:00 EDT
C++ has stricter rules for running code in constexpr mode. This talk intends to explore those restrictions while offering paradigms for designing data structures that are constexpr compatible, and which will be demonstrated as having potent applications.
Speakers
avatar for Daniel Nikpayuk

Daniel Nikpayuk

Daniel Nikpayuk
I am an Inuvialuk from Inuvik/Aklavik. I have a bachelors degree in mathematics. My personal technology goal is to build a programming language to assist in Indigenous multimedia/storytelling.
Wednesday July 23, 2025 13:00 - 14:00 EDT
TBA-A

13:00 EDT

Debugger Visualizers to Make Your Code Accessible
Wednesday July 23, 2025 13:00 - 14:00 EDT
Working with C++ code can be difficult, and it's made even more difficult when the code isn't your own. Everyone agrees that documentation is necessary when sharing a library. But, as a user of a library, the documentation may not help when you want to know the current state of your program. If you're a veteran C++ programmer then you may easily find your way around memory readouts, putting print statements in exactly the right spots, or reading "between the lines" of the documentation. Some of us are not very experienced, or we aren't able to recompile the code with print statements, or the documentation may not help with the problem. Hopefully, the author had written an extension to connect their code to your debugger of choice. But odds are, they didn't. Debuggers are advanced tools, often overlooked when discussing the day-to-day aspects of writing C++ code. Without modifying the source code or recompiling, we can glean large amounts of information about the program state through our debugger. As library writers, or as people writing classes for others to use and reuse, we can and should be writing debugger visualizers. We can empower our users by lowering the barrier to using the library successfully.

This talk will outline how to make the most out of debuggers like the Visual Studio debugger and GDB. Briefly touching on the of how to start up the debugger, this talk will cover topics like automating and scripting the debugger, and writing custom visualizations like Visual Studio Natvis and GDB pretty-printers. This talk is here for you to get started with writing debugger visualizers. Let's make our libraries more accessible. Software is about more than just the source code.

Speakers
avatar for Braden Ganetsky

Braden Ganetsky

Braden Ganetsky graduated from the University of Manitoba with a degree in mechanical engineering, fueled by his passion for mechanical puzzles. During his final year of school, when all classes and activities were remote, he discovered C++ and has been hooked ever since. He interned... Read More →
Wednesday July 23, 2025 13:00 - 14:00 EDT
TBA-B

14:30 EDT

Building the World's Fastest GameBoy Emulator in Modern C++
Wednesday July 23, 2025 14:30 - 15:30 EDT
Writing an emulator is truly transformative for any aspiring developer. In this session, we will be building parts of a lightning-fast Nintendo GameBoy (DMG-001) emulator library.
We will introduce the concept of a 'fast' emulator, highlighting its significance beyond mere gaming authenticity. After setting clear limits as to what we aim to achieve within the allotted time, we will delve into some foundational aspects of modern computing by implementing the core components of a GameBoy emulator.

Additionally, we will demonstrate how integrating modern high-level C++ constructs streamlines our codebase, enhancing both readability and performance. You will witness firsthand how these constructs simplify development and yield significant speed enhancements (even when applied to emulating low-level systems).

This session aims not only to provide practical insights into modern emulator construction but also to invite collaboration on future enhancements and optimizations.
Speakers
avatar for Tom Tesch

Tom Tesch

Lecturer, DAE - Howest
Tom is currently a senior lecturer for the Bachelor in Digital Arts and Entertainment at Howest University of Applied Sciences, where he is on a mission to inspire the next generation of game developers. His expertise revolves around teaching C++, algorithms, and the core principles... Read More →
Wednesday July 23, 2025 14:30 - 15:30 EDT
TBA-A

14:30 EDT

Why are software engineers so hard to replace?
Wednesday July 23, 2025 14:30 - 15:30 EDT
Every few years, someone will proudly declare they have an idea or technology that will replace expensive software engineers (or at least make us less expensive). These include everything from early programming languages such as Fortran and Cobol, WYSIWYG editors, diagram-based programming, modern programming languages such as TypeScript, and, most recently, AI coding tools. So far, these innovations have helped developers by abstracting away time consuming and repetitive tasks, which has made us more efficient, more specialized, and has allowed us to build increasingly complex systems. This talk will explore the history of technologies that were supposed to make us obsolete, how they’ve actually helped us, and why we’re so hard to replace.
Speakers
avatar for John Pavan

John Pavan

Team Lead, Bloomberg LP
John Pavan is an Engineering Team Lead at Bloomberg. He has been developing software for more than 25 years. His primary interests are in distributed systems, such as service-oriented and microservice architectures, and he has most recently been writing software using C++ and Python... Read More →
avatar for Heather Crawford

Heather Crawford

Heather Crawford is an Engineering Technical Trainer at Bloomberg and a former university professor. In her roles as a professional educator, she has taught learners from university students at all levels to both entry-level and experienced software engineers.
Wednesday July 23, 2025 14:30 - 15:30 EDT
TBA-B

16:00 EDT

Keynote: TBA
Wednesday July 23, 2025 16:00 - 17:30 EDT
TBA
Speakers
avatar for Scott Hanselman

Scott Hanselman

Web Platform Team, Microsoft
Scott is a web developer who has been blogging at https://hanselman.com for over a decade. He works in Open Source on ASP.NET and the Azure Cloud for Microsoft out of his home office in Portland, Oregon. Scott has three podcasts, http://hanselminutes.com for tech talk, http://thisdeveloperslife.com... Read More →
Wednesday July 23, 2025 16:00 - 17:30 EDT
TBA-A
 
  • Filter By Date
  • Filter By Venue
  • Filter By Type
  • Timezone

Recently active attendees

Share Modal

Share this link via

Or copy link

Filter sessions
Apply filters to sessions.