Programming Throwdown
Programming Throwdown

Programming Throwdown

Patrick Wheeler and Jason Gauci

Overview
Episodes

Details

Programming Throwdown educates Computer Scientists and Software Engineers on a cavalcade of programming and tech topics. Every show will cover a new programming language, so listeners will be able to speak intelligently about any programming language.

Recent Episodes

185: Workflow Orchestrators
NOV 4, 2025
185: Workflow Orchestrators

Intro topic: Asymmetric Returns


News/Links:

Book of the Show


Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


Tool of the Show


Topic: Workflow Orchestrators

  • Why
    • Batch jobs (embarrassingly parallel)
    • Long-running tasks (e.g. transcoding video)
    • Checkpointing/resuming
  • How
    • Message Queues
    • Containerization
    • Worker Pools & Autoscaling
    • History & Backfill
  • Steps to run workflows:
    • Containerize the workflow definition and send to the cloud
    • Containerize all the individual tasks
    • Submit job(s)
  • Examples
    • Airflow
      • Legacy but dominant
    • Dagster
      • Great UX for python developers
    • Temporal: https://temporal.io/
      • The new hotness
    • Ray
      • Low-level but very powerful
    • Kubeflow
      • Designed for ML workflows, integrated dashboard

★ Support this podcast on Patreon ★
play-circle icon
92 MIN
184: Asynchronous Programming
SEP 23, 2025
184: Asynchronous Programming

184: Asynchronous Programming

Intro topic: AI Scams

News/Links:

Book of the Show


Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


Tool of the Show


Topic: Asynchronous Computing

  • What/Why
    • Multi-threading in between the lines
    • Many of the benefits of multiprocessing without the overhead/complexity
  • How
    • Coroutines
    • Thread-Local Memory
    • Blocking vs Non-Blocking operations
      • Blocking: arithmetic
      • Non-Blocking: Reading from the network card into thread-local memory
    • Interpreter locking
      • Typescript: Single threaded
      • Python: GIL
  • Implementations
    • Polling (not-Asynchronous)
    • Callbacks (interrupts)
    • Multithreading (with queues/message passing)
    • Promise/Futures
    • Async/Await 

★ Support this podcast on Patreon ★
play-circle icon
90 MIN
182: AI Assisted Coding
JUN 30, 2025
182: AI Assisted Coding

Intro topic: Getting an entry-level job

News/Links:

Book of the Show


Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


Tool of the Show


Topic: 

  • Why
    • Speed up development
    • Catch errors faster than type checking/compiling
    • Writing tedious boilerplate code
    • Ask questions and learn local information
    • Look good for hiring managers
  • How
    • Extensions for VSCode & other IDEs for inline suggestions
    • Chat with a selection/file
    • Command-line Tools run at the root directory
    • Local vs Cloud
  • Examples
    • Copilot (VSCode extension)
      • Use the experimental mode
    • Cursor (Custom IDE)
      • Jumps to suggest changes in other places
      • Similar to copilot experimental mode
    • RooCode (VSCode extension)


★ Support this podcast on Patreon ★
play-circle icon
97 MIN
181: Memory Management
MAY 12, 2025
181: Memory Management

Intro topic: Video Game Prices

News/Links:


Book of the Show


Patreon Plug https://www.patreon.com/programmingthrowdown?ty=h


Tool of the Show


Topic: Memory Management

  • Motivation
    • Avoid thrashing / crashes
    • Allocate resources efficiently
    • Keep high uptime
  • Where
    • OS Level
      • Heap management
      • Virtual Memory
    • Language/Compiler Level
      • Cpp
      • Garbage collection
      • Ownership
  • Tools
    • Instrumentation
      • Export to Datadog / Grafana
    • Python: psutil & tracemalloc
    • Valgrind
  • What to do when your program uses too much memory?
    • Reduce data sizes
      • Compression
      • References
      • Lazy initializer
      • Generators & Back Pressure
    • Ring buffers
    • Arena allocators
    • Disk based caching


★ Support this podcast on Patreon ★
play-circle icon
106 MIN