← All episodes

2 - James Ward on Effect Oriented Programming, Writing Code in the Age of AI, Curiosity and Exploration

Mar 31, 2025 • 2h 9m

Video

Audio

About this episode

James Ward is a professional software developer since 1997, with much of that time spent helping developers build software that doesn't suck. He describes himself as a typed pure functional programming zealot who often compromises on his ideals to just get stuff done. He is the author of several programming books, the latest being Effect Oriented Programming. James hosts the Happy Path Programming podcast and is a frequent conference speaker around the world, and he's been recognized as a Java Champion in 2021. He is currently a Developer Advocate for AWS.


0:00 Intro 1:38 Why James wrote Effect Oriented Programming 5:30 From Scala 3 book to Zio book to effects 14:08 What effects actually are 27:02 Typed errors, dependencies, and retry superpowers 40:56 Refactorability, testability, and concurrency with effects 42:56 Zio streams as a quick win 43:56 Career mindset shifts: types and functional programming 52:49 Scala vs Kotlin vs Java type systems 1:01:21 Fringe languages: Unison, Rock, WASM 1:02:04 Algebraic data types + exhaustive pattern matching in Scala 3 1:07:11 EasyRacer: learning concurrency through experiments 1:12:48 Using AI and LLMs for learning unfamiliar languages 1:16:45 The FFT benchmark story: agent vs. profiler 1:23:57 LLMs as copy-paste at scale: the abstractions problem 1:31:17 MCP: what it is and what it could become 1:45:21 Are we at peak AI hype? 1:51:42 Agentic loops, interaction models, and type inference gaps 1:55:57 Skills that still matter: understanding code you didn't write 1:57:31 Formal verification and deriving code from specs 2:02:44 How James finds time to explore so many technologies 2:05:41 CFP submissions as a forcing function for learning