Susan Potter
talks: Created / Updated

From Zero to Haskell: Lessons Learned (ZuriHac)

ZuriHac 2019 / June 2019 - Zurich, Switzerland


Adopting functional programming in an existing software development organization is plagued with difficulties. Challenges include how to manage, maintain, and evolve existing systems with your new vision in a sustainable way while building expertise in a systematic functional mindset.

This talk reviews some of the lessons learned over several years of growing a functional discipline at primarily mainstream approach organizations to building backend services and infrastructure in Scala and Haskell to satisfy business needs where mainstream software development approaches were failing to produce.

Technical leaders, engineering managers, and individual software developers should expect to learn some approaches to:

  • reducing risks associated with introducing new methods to an organization
  • growing a learning culture from the ground up with support from the top
  • transitioning from ad-hoc workaround-based implementations with example-based usages to more defined understanding of the problem domain by considering domain and system properties and translating that from business to code at multiple levels.



Imagine a world where managing, maintaining, and evolving existing systems becomes a seamless endeavor. Picture a realm where the new vision of functional programming intertwines harmoniously with the existing software infrastructure. Now, hold that thought and allow me to share the secrets and wisdom gained from years of toil and triumph.

This talk delved into the realm of functional discipline within predominantly mainstream organizations. We uncover the untold stories of building robust backend services and groundbreaking infrastructure using the powerhouses of Scala and Haskell. These languages were the antidote to the failures of traditional software development approaches that once plagued these organizations.

We explore the art of reducing risks when introducing new methods and technology to an organization and discovered important methods to foster a learning culture from the foundations, with unwavering support from the top.

Chart a path for a team journey that transitions from ad-hoc workarounds in legacy technnical stacks and example-based usages in unfamiliar stacks to improved understanding of the problem domain with increased technical acumen in the new stack. By examining domain and system properties, we unlock the door to a more defined understanding of how to translate business requirements into elegant and correct lines of code modeling the edge cases necessary by design not hard-won production battles.

If you enjoyed this content, please consider sharing this link with a friend, following my GitHub or LinkedIn accounts, or subscribing to my RSS feed.