969: This guy is nuts (TypeScript Doom)
Episode
55 min
Read time
2 min
Topics
Software Development, Science & Discovery
AI-Generated Summary
Key Takeaways
- ✓TypeScript Type System Performance: TypeScript types can create matrix multiplications generating hundreds of thousands of union members, causing 100+ second compile times. A five-line fix removed 100 seconds from CI by eliminating accidental type explosions from utility type usage.
- ✓TypeSlayer Diagnostic Tool: Built in Tauri with Rust backend, TypeSlayer processes multi-gigabyte trace files to expose hidden TypeScript complexity errors that developers silence with TS-ignore comments, revealing performance bottlenecks that slow CI and editor responsiveness without fixing underlying issues.
- ✓Packaging Native Binaries via NPM: Publish platform-specific binaries as separate NPM packages (like @typeslayer/linux-x64, @typeslayer/darwin-arm64) with a 30-line post-install script detecting user platform. This delivers 9MB executables instead of 200MB+ Node bundles, matching ESBuild's distribution strategy.
- ✓WebAssembly Runtime in Types: Building Doom required creating a complete WebAssembly runtime purely in TypeScript types, processing 177 terabytes of type data. The project proves practical Turing completeness beyond mathematical theory, demonstrating types can handle physics engines, texture mapping, and sprite systems.
What It Covers
Dimitri Metropolis explains how he built Doom running entirely in TypeScript's type system, taking 11.5 days to compile, and introduces TypeSlayer, a diagnostic tool for identifying TypeScript performance bottlenecks in large codebases.
Key Questions Answered
- •TypeScript Type System Performance: TypeScript types can create matrix multiplications generating hundreds of thousands of union members, causing 100+ second compile times. A five-line fix removed 100 seconds from CI by eliminating accidental type explosions from utility type usage.
- •TypeSlayer Diagnostic Tool: Built in Tauri with Rust backend, TypeSlayer processes multi-gigabyte trace files to expose hidden TypeScript complexity errors that developers silence with TS-ignore comments, revealing performance bottlenecks that slow CI and editor responsiveness without fixing underlying issues.
- •Packaging Native Binaries via NPM: Publish platform-specific binaries as separate NPM packages (like @typeslayer/linux-x64, @typeslayer/darwin-arm64) with a 30-line post-install script detecting user platform. This delivers 9MB executables instead of 200MB+ Node bundles, matching ESBuild's distribution strategy.
- •WebAssembly Runtime in Types: Building Doom required creating a complete WebAssembly runtime purely in TypeScript types, processing 177 terabytes of type data. The project proves practical Turing completeness beyond mathematical theory, demonstrating types can handle physics engines, texture mapping, and sprite systems.
Notable Moment
Metropolis discovered JavaScript 1.0 in Netscape Navigator 2.0 lacked arrays, undefined, exceptions, switch statements, and first-class functions by booting Windows 95 in a VM. The language considered foundational to modern web development started with almost nothing functional.
You just read a 3-minute summary of a 52-minute episode.
Get Syntax summarized like this every Monday — plus up to 2 more podcasts, free.
Pick Your Podcasts — FreeKeep Reading
More from Syntax
1023: Mosh, Caddy & Tailscale: A Remote Dev Deep Dive
Jul 22 · 48 min
Software Engineering Daily
Running Doom in TypeScript with Dimitri Mitropoulos
Nov 25
More from Syntax
1022: Bun re-written in Rust, Zig team big mad
Jul 20 · 75 min
This Week in Startups
The hottest running app has nothing to do with speed | E2303
Jun 22
Books, tools, and gear mentioned in this episode
SignalCast may earn commission on purchases via these links.
Tools
“Dimitri Metropolis explains how he built Doom running entirely in TypeScript's type system, taking 11.5 days to compile, and introduces TypeSlayer, a diagnostic tool for identifying TypeScript performance bottlenecks in large codebases.”
“SPONSORS: Sentry (https://sentry.io/syntax)”
“This delivers 9MB executables instead of 200MB+ Node bundles, matching ESBuild's distribution strategy.”
“Built in Tauri with Rust backend, TypeSlayer processes multi-gigabyte trace files to expose hidden TypeScript complexity errors.”
More from Syntax
We summarize every new episode. Want them in your inbox?
1023: Mosh, Caddy & Tailscale: A Remote Dev Deep Dive
1022: Bun re-written in Rust, Zig team big mad
1021: We got addicted to an AI model we can't talk about
1020: Do You Read The Code?
1019: LGTM, Ship It: The AI Code Review Problem
Similar Episodes
Related episodes from other podcasts
Software Engineering Daily
Nov 25
Running Doom in TypeScript with Dimitri Mitropoulos
This Week in Startups
Jun 22
The hottest running app has nothing to do with speed | E2303
20VC (20 Minute VC)
Mar 21
20Sales: Inside Figma's $1BN ARR Revenue Machine | Why We Do Not Have Customer Success or SDRs | Why I Do Not Believe in Sales Quotas with Shaunt Voskanian, CRO @ Figma
The Nathan Barry Show
Dec 11
How Ryan Holiday Built a Million Dollar Content Empire | 107
We Study Billionaires
Jul 26
RWH070: Hunting For Hidden Treasures w/ Christopher Begg
Explore Related Topics
This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.
Read this week's Software Engineering Podcast Insights — cross-podcast analysis updated weekly.
You're clearly into Syntax.
Every Monday, we deliver AI summaries of the latest episodes from Syntax and 192+ other podcasts. Free for one show.
Start My Monday DigestNo credit card · Unsubscribe anytime