Rock the Code

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

Mar 31, 2025
James Ward, AWS developer advocate and author of Effect Oriented Programming, blends functional programming zeal with pragmatic tradeoffs. He discusses what effects are and why they matter. Short dives cover typed errors, retry and timeout superpowers, ZIO streams, using AI to learn languages, profiler-aware agents, and how to keep exploring new tech.
Ask episode
AI Snips
Chapters
Books
Transcript
Episode notes
ADVICE

Factor Side Effects For Better Tests And Refactors

  • Adopt effects on critical code to gain refactorability and testability: factor side-effecting parts into effect values and inject dependencies for tests.
  • James emphasizes extracting effects makes tests realistic without heavy mocking and supports fearless refactoring.
INSIGHT

Streams Offer Fast Wins For Effects

  • Streams are a high-leverage place to try effects because streaming libraries (e.g., ZIO Streams) expose powerful composable patterns for Kafka-like workloads.
  • James recommends streams as a quick win to see practical value of effects in production scenarios.
ANECDOTE

EasyRacer Became My Concurrency Testbed

  • James built EasyRacer as obstacle courses for structured concurrency to compare languages by implementing races, cancellations, and large fan-outs.
  • He used EasyRacer to learn Koa, OCaml, Rust, Go and to reveal surprising pitfalls like Go struggling with many concurrent racers.
Get the Snipd Podcast app to discover more snips from this episode
Get the app