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.
Timeline:
1:14 Why effect-oriented programming?
7:07 Changing targets before arriving at a finished creative project
9:15 The importance of effects
13:27 A crash course on effects
20:16 Effects as descriptions of programs
26:35 Benefits of effects, refactoring and testing
35:56 Concurrency
41:10 Streaming data
42:13 Inflection points in James' career
47:34 Type Systems and Productivity
52:27 Comparing Scala and Kotlin Type Systems
58:51 Algebraic Data Types
1:01:31 Timeless skills for programmers
1:06:40 How James keeps himself up to date with the latest tech
1:12:37 Using AI/LLMs for learning and coding
1:16:56 MoonBit, LLMs and optimizing for the wrong thing
1:22:45 AI, code generation and good abstractions
1:25:31 Vibe coding with a solid foundation
1:30:39 MCP
1:38:17 The state of software engineering in the age of AI
1:46:11 Which skills will be relevant for software engineers
1:55:32 How James learns and explores new languages and tools
1:57:40 Conferences, teaching, and the desire for better code
2:06:31 Parting thoughts