JF Bastien

build & scale platforms

📧 me@jfbastien.com

🐦 @jfbastien

🐘 @jfbastien@mastodon.social

🦋 @jfbastien.com

About Me

Systems and compiler engineer building and scaling platforms. Deliver high-impact foundational platforms through hands-on technical leadership, security engineering, and standardization. Passionate about open-source, team-building, and advancing the field through cross-company collaboration. Chair the C++ Language Evolution Working Group, and previously chaired the WebAssembly community group. I thrive at the intersection of hardware and software, from low-level silicon-aware optimization to building user-facing platforms.

Work Experience

Woven by Toyota

Distinguished Engineer

2020-08/present

As the most senior engineer in the company, serve as technical lead for a safety-critical software platform driving Toyota’s transformation to a software-first mobility company. Build novel technical foundations while navigating the human and business challenges of scaling software at the world’s largest automaker.

  • Design, hire for, and scale foundational safety software infrastructure for vehicle development.
  • Lead hardware / software co-design strategy across the electrical and electronic supply chain.
  • Architect safety qualification of software toolchains, enabling OEM-controlled development environments across C, C++, and Rust.
  • Drive Toyota’s adoption of Rust for safety-critical systems, founding the Safety-Critical Rust Consortium and lead rollout.
  • Champion platform security initiatives to meet emerging automotive cybersecurity regulations.
  • Chair C++ language evolution, delivering contracts and reflection; build a team advancing safety and security in C and MISRA.
  • Define Toyota’s open source strategy in collaboration with the new Open Source Program Office.
  • As a vice president and executive, shape the organization to scale from startup to production-oriented change agent for Toyota Group.

Apple

Compiler Engineer

2016-08/2020-08

Security through compiler technology.

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

Google

Compiler Engineer

2012-08/2016-08

Bring portable, fast and securely sandboxed native code to the Web.

NVIDIA

Compiler Engineer

2009-08/2012-08

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

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

CAE

Systems Engineer

2006-05/2009-08

Reduced aircraft simulation development effort by an order of magnitude.

  • Designed and implemented 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

Completed majority of coursework toward Master’s degree while working full-time; focused on compilers, systems, and hardware.

McGill

Bachelor’s degree

Mechanical eng.

2002/2006

  • Lead TA, 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;.

294k 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

eSOL

2024

Tokyo C++

TLB hit 💥