JF Bastien

platform creator & maintainer

🐦 @jfbastien

🐘 @jfbastien@mastodon.social

About Me

I am a systems and compiler engineer specializing in creating and maintaining foundational software platforms. With a proven track record as both an individual contributor and technical leader, I have delivered high-impact and innovative platforms to my employers.

My expertise includes developing efficient code, enhancing security through measurable improvements, and building scalable software platforms. I am passionate about open-source software, team building, mentoring, and advancing the software engineering field through cross-company standardization efforts. As part of this commitment, I actively participate in the C++ Standards Committees, chairing the language evolution working group, and previously chaired the WebAssembly community group.

Work Experience

Woven by Toyota

Distinguished Engineer

2020-08/present

Design and create a software platform for safety-critical vehicle development.

Apple

Compiler engineer

2016-08/2020-08

Security through compiler technology.

  • C++ lead and compiler engineer on the LLVM team: substantially increased the security of iOS and macOS through compiler technologies which I designed, implemented, and lead a team to deploy strategically to high-value attack targets. Founder of the LLVM Security Group.
  • Compiler engineer on WebKit's JavaScriptCore: implement WebAssembly, performance tune WebAssembly and JavaScript, Spectre mitigations.

Google

Compiler engineer

2012-08/2016-08

Bring portable, fast and secure native code to the Web.

NVIDIA

Compiler engineer

2009-08/2012-08

Dynamic binary translation from ARMv8 to VLIW on the Denver CPU.

  • A32, T32, and A64 decode and optimization.
  • Supervisor runtime.
  • High performance in-memory column-oriented database / programming language, used to instrument and analyze hardware and software simulations.

CAE

Systems engineer

2006-05/2009-08

Reduce aircraft simulation development effort an order of magnitude.

  • Design and implement a “modern” C++03 runtime.
  • C++ reflection framework.
  • Binary / source compatibility validator.
  • Avionics systems engineering using the above-mentioned runtime.
  • Maintain older Fortran / C code.

Bombardier

Engineer intern

2004/2005

Mechanical engineering design on the Global Express business jet.

Education

Stanford

Master’s degree

Computer science

2010/2015

Part-time graduate studies in computer sciences, focusing on compilers, systems and hardware.

I completed ⅔ of a degree, which rounds toward −∞.

McGill

Bachelor’s degree

Mechanical eng.

2002/2006

  • Lead teaching assistant, 7 semesters, for Computers in Engineering—Fortran, C, and Algorithms.
  • Thesis: Rapid Decompression Simulation in an Aircraft and Related Hardware Optimization, used to automatically optimize aircraft design while meeting FAA/JAA regulations; Bombardier Aerospace.
  • Final project: Aircraft Assembly Optimization; Bombardier Aerospace.

Selected Publications & Public Speaking

PLDI

2017

ASPLOS

2017

TACAS

2018

C++ Committee

  • P3477 There are exactly 8 bits in a byte
  • p2809 Trivial infinite loops are not Undefined Behavior
  • p1152 Deprecating volatile
  • p0907 Signed Integers are Two's Complement
  • p1860 C++ Networking Must Be Secure By Default
  • n4455 No Sane Compiler Would Optimize Atomics
  • p0323 std::expected
  • p2723 Zero-initialize objects of automatic storage duration
  • p1225 Feedback on 2D Graphics
  • p1482 Modules feedback
  • p1746 Feedback on std::audio
  • p0476 Bit-casting object representations
  • p1382 volatile load and volatile store
  • p0750 Consume
  • p0690 Tearable Atomics
  • p0995 Improving atomic_flag
  • p1135 The C++20 synchronization library
  • n4509 constexpr atomic::is_always_lock_free
  • p0502 Throwing out of a parallel algorithm terminates
  • p0154 Hardware constructive/destructive interference size
  • p1119 ABI for interference size
  • p0528 Padding bits, atomic compare-and-exchange
  • p1205 Teleportation via co_await
  • p0193 Where is Vectorization in C++‽
  • p0394 Hotel Parallelifornia
  • p0020 Floating Point Atomic
  • p0153 Atomic object fence
  • p0097 Use Cases for Thread-Local Storage
  • p0566 Hazard pointer, RCU
  • p0418 Fail or succeed: there is no atomic lattice
  • p1102 Down with ()!
  • p1110 A placeholder with no name
  • p1153 Copying volatile subobjects is not trivial
  • p1245 export module containing [[attribute]];
  • p1246 The no_float function attribute
  • p1247 Disabling static destructors
  • p2186 Removing Garbage Collection Support

C++onSea

2023

*(char*)0 = 0;.

280k views! 5th most viewed C++ conference talk ever!

C++Online

2024

Autosar

2024

From software craft to engineering.

Conference keynote.

C++Now

2023

WWDC

2019

LLVM

2019

LLVM

2018

LLVM

2018

Migrating to C++14, and beyond!.

LLVM

2015

WebAssembly: Here Be Dragons.

Conference keynote.

EuroLLVM

2015

EuroLLVM

2014

C++Now

2023

CppCon

2020

CppCon

2019

CppCon

2018

CppCon

2016

CppCast

2018

CppCast

2015

Tokyo University

2023

SAE

2021

Tokyo C++

TLB hit 💥