Software Engineering Daily

Running Doom in TypeScript with Dimitri Mitropoulos

32 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
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.
ADVICE

Always Use Strict Mode

  • Turn on TypeScript strict mode; without it you lose important guarantees and many benefits of TypeScript.
  • Treat non-strict TypeScript as a compatibility shim, not full TypeScript.
Get the Snipd Podcast app to discover more snips from this episode
Get the app