
The Eric Normand Podcast
An off-the-cuff stream of Functional Programming ideas, skills, patterns, and news from Functional Programming expert Eric Normand of LispCast. Formerly known as Thoughts on Functional Programming.
Latest episodes

Sep 25, 2023 • 12min
All about the stratified design lens
In this episode, I introduce the stratified design lens, which talks about how and why we split things into layers.

Sep 19, 2023 • 11min
All about the time lens
In this episode, I introduce the time lens, and I posit a law about representing time in complex domains.

Sep 11, 2023 • 18min
All about the volatility lens
Introducing the volatility lens in software change, addressing its unpredictability and fear. Exploring the psychological aspect of coding and the need for adaptability. Emphasizing the importance of gathering stakeholder information for informed decisions. Designing code for change, discussing risks and benefits. Exploring changeability in programming and the importance of finding a balance.

Jul 31, 2023 • 24min
All about the architecture lens
Dive into the fascinating world of the architecture lens! Discover how architectural choices shape software development and problem-solving. The conversation emphasizes the importance of modeling complex states to streamline code management and enhance user experiences. Tools like Ajax and Postgres are highlighted for their roles in optimizing design. Prepare to rethink your approach to coding and embrace the complexity!

Jul 24, 2023 • 15min
All about the executable specification lens
Discover the concept of executable specifications and how they revolutionize software development. Learn how integrating specifications with implementation language can enhance domain modeling. Uncover the benefits of this approach for testing, debugging, and accelerating the path to runnable, testable code. Dive into the transformative potential of executable specifications in making coding more effective and enjoyable.

Jul 10, 2023 • 14min
All about the composition lens
Dive into the fascinating world of composition in software design! Discover how consecutive operations can impact data types and why principles like associativity and idempotency are crucial. Relatable coffee-inspired examples make complex concepts accessible and engaging. Unpack the significance of thoughtful modeling in design choices, setting the stage for more robust software solutions.

Jul 3, 2023 • 20min
All about the operation lens
Discover the operation lens, a fascinating approach to software design that prioritizes understanding all potential use cases. Learn how this method helps prevent design errors by emphasizing early comprehension. The discussion also covers best practices for crafting thorough functional specifications, ensuring your software meets its goals effectively.

Jun 26, 2023 • 23min
Data lens
Delve into the fascinating world of data relationships with a creative coffee shop analogy. Discover how different choices lead to diverse outcomes and the importance of understanding these connections. Gain insights into effective domain modeling through programming constructs that can capture the intricate links between data values.

Jun 19, 2023 • 20min
All about the domain lens
Discover the innovative concept of the domain lens, which enhances software design through executable specifications. Learn how it helps identify specific problems in software development by emphasizing context. The discussion also critiques traditional object-oriented design, advocating for a focus on relationships rather than structures. By applying these ideas, developers can navigate challenges effectively and create simpler, more impactful solutions.

Jun 12, 2023 • 23min
How does executable specifications compare with other modeling paradigms?
Discover the fascinating world of executable specifications and how they stack up against UML and domain-driven design. Learn why practical skills can enhance communication and decision-making in software development. Delve into the significance of aligning code with its intended meaning, and critique traditional design methods that often prioritize aesthetics over functionality. This conversation offers valuable insights for anyone looking to elevate their software design approach.