Software Unscripted-logo

Software Unscripted

Technology Podcasts

Software Unscripted, A weekly podcast of casual conversations about code hosted by Richard Feldman & sponsored by NoRedInk.


United States


Software Unscripted, A weekly podcast of casual conversations about code hosted by Richard Feldman & sponsored by NoRedInk.




Gradual vs Static Typing with José Valim

Richard talks with José Valim, creator of the Elixir programming language, about the differences between gradual typing and static typing - including whether gradual is the best of both worlds.


The SemVer Rabbit Hole with Predrag Gruevski

Richard talks with Predrag Gruevski, author of the cargo-semver-checks tool for detecting accidental semantic versioning mistakes in Rust packages, as well as Trustfall, which is an incredibly flexible query engine. They talk about why semantic versioning is so especially tricky to get right in Rust, tradeoffs in different package managers' approaches to semver in general, and how his work on cargo-semver-checks motivated him to create a tool for querying data in just about any format.


Type System Complexity with Chris Krycho

Richard talks to Chris Krycho about TypeScript's unusual take on semantic versioning, and type system complexity tradeoffs between various different languages.


Making Parsing I/O Bound with Daniel Lemire

Richard talks to Daniel Lemire about his work on simdjson, arguably the fastest JSON parser in the world. They also talk about parsing performance in other contexts, benchmarking, NodeJS string representations, and textbook approaches to performance versus real-world experimentation.


Niche Domain Knowledge with Ashley Williams

Richard talks with former Rust core team member Ashley Williams, aka ag_dubs,, about various different types of niche domain knowledge - from CSS tricks in web development to low-level systems programming, package managers, and even organization-specific domain knowledge.


Building a Terminal in Zig and Swift with Mitchell Hashimoto

Richard talks with HashiCorp cofounder Mitchell Hashimoto about a side project of his: a high-performance terminal emulator that he wrote using Zig and Swift, and which has become his daily driver terminal.


React Hooks Design Review

Richard talks to Scott Trinh about the design of the React Hooks API - what motivated it, what tradeoffs it introduced, and what design priorities it reveals about React as a whole.


Thinking in Array Languages with Alex Shroyer

Richard talks to to Alex Shroyer about his unusually extensive experiences with Array Languages like APL and J - where they come from, how they have more to offer than just extreme conciseness, and what feature creep looks like in a language that's mostly symbols. Links to Alex's website and more info about array languages:


My Contribution to the Left-Pad Incident with Simon Lydell

Richard talks with Simon Lydell, a programmer whose open-source JavaScript work ended up contributing to what might be the most infamous package-related outage in programming history. In addition to talking about that story, they also talk about open source in general, breaking changes in general, and specific projects like CoffeeScript, Prettier, Elm, and Roc.


Comparing Haskell to R with Will Kurt

Richard talks to Will Kurt, an AI Engineer at Hex as well as the author of both the blog as well as the book Get Programming with Haskell, from Manning Publications. They talk about the book, about Haskell in general, and end up comparing Haskell to R, as well as type systems and artificial intelligence!


Defunctionalization in a Functional Language with Ayaz Hafiz

Richard talks to Ayaz Hafiz about his work on the Roc programming language. They discuss behind-the-scenes compiler details like implementing ad-hoc polymorphism and defunctionalization using lambda sets. Along the way they get into how these implementation details interact with design of the language, and the experience of using the language.


Linking & Binary Hot Code Loading with Jakub Konka

Richard talks to Jakub Konka, a programmer who works on the Zig programming language. They talk about the low-level systems programming involved in Jacob's work on Zig and other projects, including things like disassembling binaries, hot code loading in a systems language, writing a linker from scratch, and testing machine code without access to the actual hardware - or even an emulator!


From Bootcamp to Teaching Masters' Comp Sci

Richard talks to Chelsea Troy, a programmer working at Mozilla who has a side gig teaching Masters' Computer Science students at the University of Chicago. This is highly unusual, considering she does not have a computer science degree! They talk about how she landed that job, including how the interview process differs from industry interviews, among other topics.


Syntax and the Future of Programming with Josh Warner

Richard talks with Josh Warner, who has been working on making improvements to the Roc programming language, particularly around the parser and formatter. They start out talking about syntax and code formatting, but after some plot twists, the conversation ends up on AI and the future of programming itself!


Growing Programming Communities with Ryan Haskell-Glatz

Richard talks with Ryan Haskell-Glatz, author of the open-source Elm projects elm-spa and Elm Land. They get into things like new user onboarding experiences, framework churn, and dynamics between authors and users in open-source communities.


AI Tools Today

Richard talks to Stachu Koric about the Dark programming language's shift to being a programming language built around AI, as well as their own personal experiences so far exploring chatGPT, Copilot, and other emerging AI tools.


From Erlang to Management to C++

Dizzy Smith talks with Richard about his career path from C++ to Erlang to Management and now back to C++. Along the way, they talk about package management and several other languages - including Go, Rust, JavaScript, and even Perl.


Conditional Cardinality with Joël Quenneville

Richard talks to Joël Quenneville about his experiences with Ruby and Elm, how dependency graphs can be applied in teaching, and also a concept that's new to the podcast: Conditional Cardinality.


Speeding up Rust's Compiler

Richard talks with Nicholas Nethercote, a member of the Rust programming language's Performance Working Group and author of the Rust Performance Book. They discuss how he and others have worked to speed up Rust's compiler, different strategies for speeding up compilers in general, and how compiler performance fits into the working dynamic of Rust's ecosystem of contributors.


Evolutionary vs Revolutionary Languages with James Ward

James Ward, Kotlin Product Manager at Google, talks with Richard about the differences between evolutionary and revolutionary programming languages - among several other topics!