by Kamran Ayub and Erik Onarheim
The two TypeScript Fools, Kamran Ayub and Erik Onarheim, get together once a week to bring you news, community highlights, and deep dives into the TypeScript ecosystem. Stay up-to-date on what's happening and learn new things to make you a better TypeScript developer along the way!
Language
🇺🇲
Publishing Since
1/27/2025
Email Addresses
1 available
Phone Numbers
0 available
April 16, 2025
<p>This week on the pod, we talk to Dimitri Mitropoulos about building DOOM in the TypeScript type system. We walk through all the nitty gritty and explore this truly amazing engineering feat! We touch on things that Dimitri learned and discovered along the way, and how you might be surprised what you can accomplish by trying! In the news, Zod 4 Beta drops with awesome new features. </p><p><strong>Links</strong></p><p><a href="https://2025.squiggleconf.com/">SquiggleConf 2025</a></p><p><a href="https://www.youtube.com/@MichiganTypeScript">Michigan TypeScript</a></p><p>DOOM with Dimitri</p><ul><li><a href="https://youtu.be/0mCsluv5FXA?si=Db7r7KxAoCgZ4N88">TypeScript Types Can Run Doom</a></li><li><a href="https://youtu.be/5506X2xioi0?si=qjBkk2ZuxpD08ZkI">Anders TS GO Interview </a></li><li><a href="https://youtu.be/hPaiK0omhEw?si=5EmGY0WT3hAHSX5q">Final Boss Challenge</a> </li></ul><p><br><a href="https://vgmcon.org/">VGM Con</a><br> <br>Excalibur Games:</p><ul><li><a href="https://excaliburjs.com/sum-monsters/">Sum Monsters </a></li><li><a href="https://excaliburjs.com/sweep/">Sweep Stacks</a> </li><li><a href="https://excaliburjs.com/sample-tactics/">Tiny Tactics</a> </li><li><a href="https://excaliburjs.com/sample-jelly-jumper/">Jelly Jumper</a></li></ul><p><a href="https://youtu.be/G2tvnmSyP2M">Shader Programming Talk</a></p><p><strong>Interview</strong></p><p>00:00 Intro<br>00:37 SquiggleConf 2025<br>01:33 Personal News<br>05:34 Dimitri's Background and Michigan TypeScript<br>10:18 JSON Parser in TypeScript Types<br>10:55 Where do you start with DOOM in Types?<br>11:51 "DOOM" Complete<br>16:09 How do you run DOOM in TS?<br>20:15 Debugging an Emulator in TS Types<br>22:14 How does DOOM work?<br>23:54 Using Web Assembly</p><ul><li><a href="https://github.com/MichiganTypeScript/typescript-types-only-wasm-runtime">TypeScript Types WASM Runtime</a></li></ul><p>26:17 Understanding WebAssembly and TypeScript Integration<br>28:49 The Concept of Abstraction in Programming<br>31:03 Challenges in Implementing WebAssembly from the Spec<br>33:16 Ambiguities in Specifications and Their Impact<br>35:11 Debugging Techniques and Error Handling<br>37:06 Innovative Use of Overflow in Game Development<br>40:46 Insights Gained from TypeScript During the Project<br>43:49 The Complexity of TypeScript Types<br>49:18 Time Travel Debugging and Memory Management<br>51:20 The Most Challenging Aspects of the Project<br>55:16 Reactions to DOOM<br>01:00:28 The Dawn of TypeScript Go<br>01:10:33 Lessons Learned and Future Directions<br>01:17:45 Outro</p><p><strong>News</strong></p><p>01:19:06 News for the Week of April 7th</p><ul><li><a href="https://v4.zod.dev/v4">Zod 4 Beta</a></li><li><a href="https://youtu.be/xcm53k0ePmY?si=HNTuxJHgSL2hU43x">Matt Pocock's Video</a></li></ul><p>01:24:29 Community Posts</p><ul><li>Dan Abramov - RSCs or Maybe Not<ul><li><a href="https://overreacted.io/react-for-two-computers/">https://overreacted.io/react-for-two-computers/</a> </li><li><a href="https://youtu.be/ozI4V_29fj4">https://youtu.be/ozI4V_29fj4</a> </li></ul></li><li>Axel’s Corner<ul><li>Testing Types <ul><li><a href="https://2ality.com/2025/04/testing-types-typescript.html">https://2ality.com/2025/04/testing-types-typescript.html</a> </li><li><a href="https://bsky.app/profile/dr-axel.de/post/3lmmwp4ovek2q">https://bsky.app/profile/dr-axel.de/post/3lmmwp4ovek2q</a> </li></ul></li><li>Deploying TypeScript (timely!)<ul><li><a href="https://2ality.com/2025/04/deploying-typescript-present-future.html">https://2ality.com/2025/04/deploying-typescript-present-future.html</a></li></ul></li></ul></li></ul><p>01:27:54 Secret of the Handbook</p><ul><li>https://www.pipe0.com/blog/never-in-typescript </li><li>https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types </li></ul><p>01:29:36 Cool Stuff</p><ul><li>Kamran<ul><li><a href="https://bun.sh/blog/debugging-memory-leaks?utm_source=ECMAScript.news&utm_medium=Weekly+Newsletter&utm_campaign=2025-04-09">https://bun.sh/blog/debugging-memory-leaks</a></li><li>Animate UI: copy paste or installable components built with TS, React, and Tailwind using Motion.</li></ul></li><li>Erik<ul><li>Sebastian Lague - Simulated CPU<ul><li><a href="https://youtu.be/HGkuRp5HfH8?si=9iNm0Ad1z4T4AePj">https://youtu.be/HGkuRp5HfH8?si=9iNm0Ad1z4T4AePj</a> </li></ul></li><li>Sebastian Lague - Rendering Text<ul><li><a href="https://youtu.be/SO83KQuuZvg?si=uzPojhUqBvV35q7F">https://youtu.be/SO83KQuuZvg?si=uzPojhUqBvV35q7F</a> </li></ul></li></ul></li></ul><p>01:30:28 Debugging and Performance Optimization Techniques<br>01:34:31 Post-roll</p><p><br><strong>Sponsored by Excalibur.js</strong><br><a href="https://excaliburjs.com/?utm_source=typescript.fm&utm_campaign=shownotes">Excalibur.js</a> is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.</p><p><strong>Music</strong><br><a href="https://kubbi.bandcamp.com/track/seahorse-dreams">Seahorse Dreams by Kubbi</a> (<a href="https://open.spotify.com/artist/38dW24ZxoRfXGe1lJXXFNg?si=QhtS7XXuRKWjdkjQQONUNg">Spotify</a>)</p>
April 8, 2025
<p>This week on the pod, we were very busy with travel, cons, and sickness! We have a news grab bag episode talking about the JS enums proposal, Deno v. Oracle, Parcel+RSCs, Firefox vulnerabilities and more!</p><p>Also Please email us your feedback for your retro episode ([email protected])</p><p>00:00 Intro<br>00:50 VGM Con<br>02:07<a href="https://www.eventbrite.com/e/igdatc-gamedev-meeting-april-2025-erik-onarheim-learn-shader-programming-tickets-1315138086419?aff=ebdssbdestsearch"> IGDATC Talk Wednesday April 9th</a><br>02:41 Toddler Zone<br>03:28 Exciting Arizona Travels<br>05:53 (Almost) Missing Flights<br>07:33 Sponsored by Excalibur.js<br>08:44 <a href="https://bsky.app/profile/robpalmer.bsky.social/post/3llxwpgw5r22m">JavaScript Enums Proposal</a><br>10:06 Deno v. Oracle</p><ul><li><a href="https://deno.com/blog/deno-v-oracle3">Deno Blog Post</a></li><li><a href="https://javascript.tm/">JavaScript.tm Petition</a></li></ul><p>12:55 <a href="https://parceljs.org/blog/v2-14-0?utm_source=metaframeworks&utm_medium=email&utm_campaign=issue-11-around-the-world">Parcel 2.14 and React Server Components</a><br>14:01 <a href="https://parceljs.org/recipes/web-extension/">Build Browser Extensions with Parcel</a><br>14:18 NPM Ecosystem Updates</p><ul><li><a href="https://bsky.app/profile/jakebailey.dev/post/3llwaydntic2o">Jake Bailey's Post</a></li><li><a href="https://github.com/npm/cli/pull/8184">Kat Marchán's Fix</a></li></ul><p>15:23 Mozilla JavaScript Sandbox Vulnerability</p><ul><li><a href="https://www.bleepingcomputer.com/news/security/mozilla-warns-windows-users-of-critical-firefox-sandbox-escape-flaw/">Bleeping Computer</a></li><li><a href="https://www.mozilla.org/en-US/security/advisories/mfsa2025-19/#CVE-2025-2857">CVE Details from Mozilla</a></li></ul><p>16:51 Community: <a href="https://bsky.app/profile/jollycod.ing/post/3llhz323bgq23">ArkType Deep Dive</a><br>17:31 Community: JavaScript & TypeScript in my Database</p><ul><li><a href="https://youtu.be/4DzXCpRNt14?si=YRbq75a3DTqFjgPg">Typed Rocks Video</a></li><li><a href="https://plv8.github.io/#plv8">PLV8 Extension</a></li></ul><p>20:00 Kamran's Cool Stuff: <a href="https://phiresky.github.io/blog/2025/visualizing-all-books-in-isbn-space/">Data Visualization with TypeScript</a><br>20:40 Erik's Cool Stuff</p><ul><li><a href="https://store.steampowered.com/app/2446600/Dark_Deity_2/">Game: Dark Diety 2</a></li></ul><p>21:27 Sprite Sheet Packing with <a href="https://github.com/mapbox/potpack/tree/main">Potpack</a><br>23:53 <a href="https://github.com/awesome-selfhosted/awesome-selfhosted">De-Google Your Life</a><br>25:46 HyperLight: A Lightweight VM for WASM</p><ul><li><a href="https://opensource.microsoft.com/blog/2025/03/26/hyperlight-wasm-fast-secure-and-os-free/">MS HyperLight Announcement Post</a></li><li><a href="https://github.com/hyperlight-dev/hyperlight">HyperLight Main Repo</a></li><li><a href="https://github.com/hyperlight-dev/hyperlight-wasm">HyperLight WASM Repo</a></li></ul><p>30:26 Post-roll</p>
March 31, 2025
<p>This week on the pod, we talk all about the Bun runtime funtimes! This is a powerful new player in the JavaScript and TypeScript runtime space focusing on DX, speed, and pushing the state of the art! We dive into the details and offer some of our thoughts around when to use it at the moment. In other news we avoid phone scams and talk fun new TypeScript libraries. </p><p>Also Please email us your feedback for your retro episode (feedback at typescript.fm)</p><p><strong>Personal News</strong></p><ul><li>00:36 Welcome</li><li>01:33 Kamran & Erik IRL<ul><li><a href="https://www.eventbrite.com/e/minnebar19-tickets-1218123583429?aff=ebdsshother&utm_share_source=listing_android">Minnebar</a></li><li><a href="https://vgmcon.org/">VGM Con</a></li></ul></li><li>02:39 Erik @ C Fundamentals by Frontend Masters<ul><li><a href="https://frontendmasters.com/">FFM</a></li></ul></li><li>02:55 Vibe Coding</li><li>03:43 LLMs "what are they good for?!"</li><li>04:31 Kamran's New Course</li><li>06:16 Kamran Review book on Time Freedom</li><li>07:31 Scams and Phone Calls<ul><li><a href="https://consumer.ftc.gov/consumer-alerts/2024/09/did-you-get-call-or-email-saying-you-missed-jury-duty-and-need-pay-its-scam">FTC Warning about fake Jury Duty</a></li></ul></li></ul><p><strong><br>(09:26) News for the Week of March 17, 2025</strong></p><ul><li>09:34 <a href="https://zeropath.com/blog/nextjs-middleware-cve-2025-29927-auth-bypass">Next.js 9.1 CVE</a><ul><li><a href="https://github.com/vercel/next.js/pull/77201">PR with fix</a></li><li><a href="https://youtu.be/JbF_8g1EXj4?si=_d4XHly2_MCDPTAA%20">Ed's Video on this @ Low Level Learning</a></li></ul></li><li>10:43 <a href="https://github.com/denoland/deno/releases/tag/v2.2.5">Deno 2.2.5</a></li><li>11:13 <a href="https://github.com/denoland/deno/pull/28512">Deno Patch Functionality</a></li><li>11:59 <a href="https://docs.deno.com/runtime/fundamentals/ffi/">Deno FFI Docs Update</a></li><li>13:04 <a href="https://github.com/pandaci-com/PandaCI">PandaCI</a>: A New CI/CD Tool</li><li>16:17 <a href="https://github.com/Snowflyt/hkt-core">HKT Core</a></li></ul><p><strong><br>(17:33) Community Highlights</strong></p><ul><li>17:33 <a href="https://github.com/microsoft/typescript-go/discussions/455%20">TS Go GitHub Discussion on Compiler API</a></li><li>18:24 <a href="https://bsky.app/profile/nuro.dev/post/3lknodidzr22z">Deno Compile Vite</a></li><li>20:07 <a href="https://deno.com/blog/otel-tracing-in-node-and-deno">Blog Post by Andy Jiang</a> about Deno+OTel</li><li>22:35 <a href="https://bsky.app/profile/housecor.com/post/3lkqifnifis2b">Cory House on Implementing Immutability</a> in TypeScript</li><li>23:16 <a href="https://dev.to/duplessisvanaswegen/help-its-another-typescript-metadata-registry-but-this-ones-useful-1ohk">RGSTRY </a>for managing decorator metadata</li><li>24:19 <a href="https://github.com/nodejs/TSC/pull/1527">Corepack </a><a href="https://bsky.app/profile/notwes.bsky.social/post/3ljnjtdydzc2b">removal </a>from Node, Sarah has a <a href="https://socket.dev/blog/node-js-takes-steps-towards-removing-corepack">good overview</a></li></ul><p><strong><br>Bun Deep Dive</strong></p><ul><li>27:22 Introduction to Bun Runtime<ul><li><a href="https://www.youtube.com/watch?v=He5TN5Qc6O8%20">Baby Got Back by Jonathan Coulton </a></li></ul></li><li>28:01 What is Bun</li><li>28:23 Bun vs Node.js and Dino</li><li>29:25 Features and Capabilities of Bun</li><li>30:40 Bun Performance</li><li>31:23 C Tangent</li><li>32:12 Bun DX</li><li>35:20 Standalone Executable</li><li>35:53 Use Cases for Bun</li><li>38:00 Cautions and Considerations</li><li>41:38 Good Use Cases</li><li>46:24 Bun Community<ul><li>This OP <a href="https://www.reddit.com/r/typescript/s/2v1kbKFjfA">asked about Bun</a> and ended up <a href="https://www.reddit.com/r/typescript/s/9zYSabn557">moving to Deno</a> actually</li><li><a href="https://bsky.app/profile/nulo.lol/post/3lla267kqgs25">Memory Leaks</a> </li><li><a href="https://www.reddit.com/r/node/comments/189prv3/whats_the_status_with_bun">Reddit</a> <a href="https://www.reddit.com/r/bun/comments/1ggl7rd/curious_about_realworld_experiences_with_bunjs">threads</a></li></ul></li><li>48:09 Conclusions</li></ul><p><strong>Outro</strong></p><ul><li>52:00 Cool Stuff This Week</li><li>58:11 Give Us Feedback (feedback at typescript.fm)</li></ul><p><br><strong>Other Links</strong></p><ul><li><a href="https://bsky.app/profile/neil-vass.com/post/3llc32fpji22n">Profiling </a>TypeScript <a href="https://code.visualstudio.com/docs/nodejs/profiling">in VSCode</a></li><li><a href="https://bsky.app/profile/luismachadoreis.bsky.social/post/3lktinbenq225">Cobol Based UI</a></li><li>https://github.com/oven-sh/awesome-bun </li><li><a href="https://bsky.app/profile/scottbedard.net/post/3ll3l3f27sc2d">Chess in TypeScript types</a><a href="https://mathstodon.xyz/@sc_griffith/110749575739905416%20"> </a></li><li><a href="https://mathstodon.xyz/@sc_griffith/110749575739905416%20">Developer Speak</a></li></ul><p><strong><br>Sponsored by Excalibur.js</strong><br><a href="https://excaliburjs.com/?utm_source=typescript.fm&utm_campaign=shownotes">Excalibur.js</a> is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.</p><p><strong>Music</strong><br><a href="https://kubbi.bandcamp.com/track/seahorse-dreams">Seahorse Dreams by Kubbi</a> (<a href="https://open.spotify.com/artist/38dW24ZxoRfXGe1lJXXFNg?si=QhtS7XXuRKWjdkjQQONUNg">Spotify</a>)</p><p><strong>Creators & Guests</strong> </p><ul> <li><a href="https://typescript.fm/people/erik-onarheim">Erik Onarheim</a> - Host</li> <li><a href="https://typescript.fm/people/kamran-ayub">Kamran Ayub</a> - Host</li> </ul>
Pod Engine is not affiliated with, endorsed by, or officially connected with any of the podcasts displayed on this platform. We operate independently as a podcast discovery and analytics service.
All podcast artwork, thumbnails, and content displayed on this page are the property of their respective owners and are protected by applicable copyright laws. This includes, but is not limited to, podcast cover art, episode artwork, show descriptions, episode titles, transcripts, audio snippets, and any other content originating from the podcast creators or their licensors.
We display this content under fair use principles and/or implied license for the purpose of podcast discovery, information, and commentary. We make no claim of ownership over any podcast content, artwork, or related materials shown on this platform. All trademarks, service marks, and trade names are the property of their respective owners.
While we strive to ensure all content usage is properly authorized, if you are a rights holder and believe your content is being used inappropriately or without proper authorization, please contact us immediately at [email protected] for prompt review and appropriate action, which may include content removal or proper attribution.
By accessing and using this platform, you acknowledge and agree to respect all applicable copyright laws and intellectual property rights of content owners. Any unauthorized reproduction, distribution, or commercial use of the content displayed on this platform is strictly prohibited.