Software Engineering Daily

Running Doom in TypeScript with Dimitri Mitropoulos

31 snips
Nov 25, 2025
Dimitri Mitropoulos, a developer at Vercel and founder of Michigan TypeScript, shares fascinating insights on his audacious project of running Doom in TypeScript. He delves into the technical challenges of representing Doom within three trillion lines of types, utilizing TypeScript's literal types for frame computation. Dimitri also discusses the practicalities of advanced TypeScript, advocating for safer coding practices like exact optional property types. Additionally, he reveals his musical side in recording Doom's soundtrack, blending creativity with programming.
Ask episode
AI Snips
Chapters
Books
Transcript
Episode notes
ANECDOTE

Year-Long Obsession To Ship Doom

  • Dimitri spent roughly a year and a half intensely building the project with many 18-hour days and long stretches of obsession.
  • He describes the project as consuming and says he never truly believed it would work until it displayed on his screen.
INSIGHT

Types Can Transform Data Beyond Validation

  • TypeScript literal and mapped types let you transform values at the type level like string casing or complex transforms.
  • Dimitri used those capabilities to make a type that outputs a Doom frame from Doom source encoded in types.
INSIGHT

Doom-Completeness Beats Turing Labels

  • Turing-completeness is often meaningless in practice without feasible resource bounds.
  • Dimitri argues 'Doom Complete' (can it run a frame in a human lifetime) is a more practical metric.
Get the Snipd Podcast app to discover more snips from this episode
Get the app