This event has ended. Visit the official site or create your own event on Sched.

Log in to bookmark your favorites and sync them to your phone or calendar.

•Across the Industry [clear filter]
Monday, September 25


The Programmer CEO: Tales From Starting a Company Aimed at C++ Developers
Many programmers think about starting a company. It’s often not about getting rich so much as to pursue a vision for a computer program that is much bigger than one person could do alone. Like most programmers who start up, I had no formal training and little experience outside of software development. I was naively confident, and didn’t know what I didn’t know (it turned out that that was a LOT!)

In this talk I’ll present some of the lessons I’ve learned along the way, many of which were a complete surprise to me. I’ll cover getting investment, building the product, building a team, and getting and keeping customers. Little of this talk is directly about programming, but it is aimed at programmers who want to create code in order to create a business, or who want to create a business so that they can create the code they want.

Much of the content is also relevant for programmers who find themselves doing non-programming tasks, such as managing people or customer-facing roles. This talk contains candid, warts-and-all war stories, and because it’s for programmers, comes with a no adverts and no business-talk BS guarantee.

avatar for Greg Law

Greg Law

CTO, Undo
Greg is co-founder and CEO at Undo. He is a programmer at heart, but likes to keep one foot in the software world and one in the business world. Greg finds it particularly rewarding to turn innovative software technology into real business development. Greg has over 20 years of experience... Read More →

Monday September 25, 2017 12:30pm - 1:30pm
ENIAC (404) Meydenbauer Center


A modern formatting library for C++
Come learn about the intricacies of C++ formatting, from stdio to iostream to the new standard proposal P0645R0: Text Formatting. The new proposal combines variadic templates with a Python-like format string syntax and is designed for performance, extensibility, and safety. It is based on the popular fmt library that has been successfully used in numerous projects in such diverse areas as gaming, mathematical optimization, autonomous vehicles, databases, logging libraries and more.

avatar for Victor Zverovich

Victor Zverovich

Software Engineer, Facebook
Victor Zverovich is a software engineer at Facebook working on reactive systems. Before joining Facebook in 2016, he was working for several years on modeling systems for mathematical optimization. He is an active contributor to open-source projects and an author of a popular formatting... Read More →

Monday September 25, 2017 3:15pm - 4:15pm
ENIAC (404) Meydenbauer Center
Wednesday, September 27


Driving Into the Future With Modern C++: A Look at Adaptive Autosar
Software development of automotive control units has long been in the hands of hardcore C developers. With the increasing need for high-performing, multi-core processors and for applications that can be updated over the Internet, this has changed.

The recently released Adaptive AUTOSAR standard fully embraces C++11/14 as its language of choice. This leverages new opportunities for AUTOSAR applications, but also poses new challenges to ensure functional safety and to train developers.

Let’s have a look at some Adaptive AUTOSAR APIs and at the AUTOSAR “Guidelines for the use of the C++14 language in critical and safety-related systems” and see how they fit into the bigger picture.

avatar for Jan Babst

Jan Babst

Expert, Elektrobit Automotive GmbH
Jan has been programming C++since the late 1990’s when the ink on the C++98 standard was still wet. He once submitted a naïve implementation of std::valarray using expression templates to libstdc++, which actually made it into a review but is now long forgotten. Since 2003 he... Read More →

Wednesday September 27, 2017 2:00pm - 3:00pm
Manchester (407) Meydenbauer Center


Designing C++ Hardware
You can run C++ on any computer you want, as long as it pretends it is an 80’s computer. Conveniently most computers pretend to be 80’s computers – with extras, but nothing too radical – because they want to run C++. This contract isn’t written down anywhere, but both sides are absolutely bound by it.

In this talk we’ll walk through the adaptation of the most radical new architecture to run C++ in decades, NVIDIA Volta. The talk contents will be divided into four parts that align to these abstract machine semantics: execution agents, progress guarantees, the object model, and the consistency model.

We will close on new C++ features that make it easier, not harder, for hardware to support C++.

avatar for Olivier Giroux

Olivier Giroux

Distinguished Architect, NVIDIA
Olivier Giroux has worked on nine GPU and five SM architecture generations released by NVIDIA. Lately, he works to clarify the forms and semantics of valid GPU programs, present and future. He was the programming model lead for the NVIDIA Volta architecture. He is the chair of SG1... Read More →

Wednesday September 27, 2017 4:45pm - 5:45pm
Harvard (406) Meydenbauer Center
Thursday, September 28


A Tour of Deep Learning With C++
Deep Learning is a subfield of artificial intelligence that employs deep neural network architectures and novel learning algorithms to achieve state of the art results in image classification, speech recognition, motion planning and other domains. While all machine learning algorithms are initially formulated in mathematical equations (the only programming language where single letter variable names are encouraged), they must eventually be translated into a computer program. Moreover, because deep neural networks can often be composed of many hundreds of millions of trainable parameters and operate on gigabytes of data, these computer programs have to be fast, lean, often distributed and squeeze every last ounce of performance out of modern CPUs, GPUs and even specialized hardware. This is synonymous with saying machine learning algorithms are usually implemented in C or C++ under the hood, even though libraries like TensorFlow, Torch or Caffe expose APIs in Python or Lua to ease the process of research and speed up iteration. This talk aims to break the single responsibility principle and do three things at once:

1. Give a sweeping introduction to the state of the art in deep learning,
2. Give examples of what it means to implement neural networks in C++, from an implementer's perspective,
3. Give examples of building deep learning models in C++, from a researcher's perspective.

Here, the distinction between building and implementing is that the former means stacking together high level modules to achieve some machine learning task, while the latter means actually writing the CPU or GPU kernels that make the magic happen. The goal of the talk is for every attendee to walk away with a general understanding of the state and challenges of the field and hopefully be in a position to implement and build their own deep learning models.

avatar for Peter Goldsborough

Peter Goldsborough

Software Engineer, Facebook
I enjoy the intersection of blue-skies machine learning research and low-level infra engineering.

Thursday September 28, 2017 3:15pm - 4:15pm
Berry Hall Meydenbauer Center


Fantastic Algorithms and Where To Find Them
Come dive into some exciting algorithms — tools rare enough to be novel, but useful enough to be found in practice. Want to learn about "heavy hitters" to prevent DOS attacks? Come to this talk. Want to avoid smashing your stack during tree destruction? Come to this talk. Want to hear war stories about how a new algorithm saved the day? Come to this talk! We'll dive into the finest of algorithms and see them in use — Fantastic Algorithms, and Where To Find Them.

avatar for Nicholas Ormrod

Nicholas Ormrod

Software Engineer, Facebook
Nicholas is a infrastructure engineer at Facebook. If he talks too much, disable him with a well-placed nerd snipe.

Thursday September 28, 2017 4:45pm - 5:45pm
Atanasoff Hall Meydenbauer Center


LauncherOne rocket with C++ engine

Abstract: The most important aspects of rocket safety software development, from an idea, design, implementation to testing. Safe design patterns and critical error handling in fault tolerant systems.  

- Open source libraries can take you to space: How to choose open source libraries to be used for Federal Aviation Administration (FAA) certification, and correct use of them depending on the required safety level. Also will discuss how to handle FAA hard requirements throughout software development cycle.

- Safe design patterns: Will discuss multiple design patterns to be used in safety critical systems, a compile time observer pattern using template metaprogramming will be discussed. Also guidelines to use a pattern depending on safety level, timing requirements, memory layout and testing. 

- Error handling: Rocket errors are gold, precious and don’t want to lose them: When having an error is more important to get as much telemetry as possible before losing the rocket. Since testing a real rocket means a real mission, telemetry can make a difference for future flights and error handling is critical to achieve this. Will present error handling techniques in startup and run time including throwing policies, interfaces pre/post conditions and class interface design techniques to implement the error handling along with testing, also guidelines to use them depending on safety level and application, and deciding what is a fatal error. 

avatar for Diego Franco

Diego Franco

Senior Software Engineer, Virgin Orbit
Diego Franco is a Senior Software Engineer at Virgin Orbit with over 15 years of C++ development, he's the main developer for the LauncherOne space rocket - Autonomous Flight Safety System, which makes sure the rocket is safe for public and crew members in a 747 airplane. Also he... Read More →

Thursday September 28, 2017 4:45pm - 5:45pm
Harvard (406) Meydenbauer Center
Friday, September 29


Traveling the Solar System with C++: Programming Rocket Science
Spacecraft travel our solar system with exquisite accuracy. It is almost commonplace to learn that a spacecraft hit bullseye to within a few seconds after over a decade of space travel. How do we do that? What does it entail to design and operate the trajectory of a spacecraft? Newton, Kepler, Einstein, Tsiolkovsky, Battin and many others gave us beautiful mathematical models of the universe. Beautiful, yes, but also perversely complex.

Without hope for analytical solutions, we must rely on numerical methods. Initially, numerical methods were executed by hand (people known as "The Computers"). Eventually we adopted electronic computers, and entered a multi-decade period of Fortran domination.

Over the last decade, we have been experiencing increased adoption of C++. Organizations feel attracted to C++'s uncompromising performance, and its ability to abstract away the overwhelming complexity of spacecraft trajectory calculations. But it has not been an easy move! For example: luminaries of the field are stuck in Fortran, and current Engineering schools seldom offer any C++ education.

As advanced scientific concepts require increasingly complex spacecraft trajectories, we see a bright future for C++ in this field. But we must be proactive in attracting, accommodating, and educating the current generation of engineers and scientists.

avatar for Juan Arrieta

Juan Arrieta

CEO, Nabla Zero Labs
Juan holds a BSc (2002) in chemical engineering from Universidad Iberoamericana (Mexico City, Mexico) and a PhD (2007) from Carnegie Mellon University (Pittsburgh, USA), where his work focused on numerical optimization applied to spacecraft trajectory design. Upon concluding his... Read More →

Friday September 29, 2017 10:30am - 11:30am
Ferranti (403) Meydenbauer Center


C++ in High Performance Computing BoF
Discussion panel on C++ in the HPC and scientific computing industries.

avatar for Bryce Adelstein Lelbach

Bryce Adelstein Lelbach

CUDA C++ Core Libraries Lead, NVIDIA
Bryce Adelstein Lelbach has spent nearly a decade developing libraries in C++. Bryce is passionate about C++ evolution and is one of the leaders of the C++ community. He is an officer of ISO/IEC JTC1/SC22/WG21, the C++ Standards Committee. Bryce chairs both the C++ Committee's Tooling... Read More →
avatar for Andrew Lumsdaine

Andrew Lumsdaine

Chief Scientist, Northwest Institute for Advanced Computing
C++ and High Performance Computing

Friday September 29, 2017 12:00pm - 1:00pm
Colossus Theater Meydenbauer Center