Here’s all of my public speaking stuff, or at least what’s out there on the internet.

Why and How We Ported TypeScript to Go

SquiggleConf 2025, September 18, 2025

Abstract

In March 2025, we surprised everyone by announcing TypeScript’s port to Go. This is a certified Big Deal™, given the scale, complexity, and importance of the TypeScript toolchain.

From the beginning, TypeScript has been written in TypeScript; like most languages, we’re self hosting. We work on our own toolchain, fix our own bugs. But as time went on, we faced the challenges with the compiler’s performance, largely inherent to the implementation language itself. We squeezed every ounce of performance we could, but we needed to scale further. And through experimentation and testing, we decided to port TypeScript to Go, achieving a 10x faster TypeScript.

In this talk, we’ll go over the why and the how. Why Go turned out to be the perfect language for the port, why it was sometimes hard to do (but also sometimes easy), how we actually were able to port 150k lines of code and 90k tests, and how this will affect you!

Coming soon!

Porting the TypeScript Compiler to Go for a 10x Speedup

GopherCon 2025, August 27, 2025

Abstract From the beginning, the TypeScript compiler has been self-hosted, evolving alongside a growing ecosystem of millions of developers. As time went on, we faced challenges with the compiler’s performance, largely inherent to the implementation language itself. Through experimentation and testing, we found Go to be an excellent language for our specific needs; a perfect porting language. In this talk, we will explore the process of porting the 150,000+ line TypeScript compiler and its 90,000+ tests to Go, the challenges we faced, lessons we learned, all leading to an overall 10x performance improvement over our previous implementation.

TypeScript with Jake Bailey

Software Engineering Daily, July 15, 2025

Migrating TypeScript to Modules: The Fine Details

TypeScript Congress, September 21, 2023

Abstract In TypeScript 5.0, the TypeScript toolchain migrated to modules. In this talk, we’ll get deep in the weeds, discussing what “modules” even are (and how we somehow weren’t using them), the specifics of the migration itself, how we managed to make the switch “mid-flight” on an actively-developed project, how the migration went, and what’s next.