Functional Geekery Episode 33 – Richard Feldman and Tessa Kelly

In this episode I talk with Richard Feldman and Tessa Kelly about Elm. We cover how they each got into Elm, introducing Elm into an existing application, features novel to Elm, and the Elm Architecture.

Our Guests, Richard Feldman and Tessa Kelly

Tessa is @t_kelly9 on Twitter
Richard is @rtfeldman on Twitter
NoRedInk tech blog


This episode is sponsored by DigitalOcean. DigitalOcean makes it quick and easy to get up running with hosting your project. New users use the promo code GEEKERY to get $10 credit when signing up.

This episode is sponsored by’s Online Mentoring has just launched. It is step-by-step online mentoring that takes you from Clojure dabbler to Clojure professional. Sign up with the link to get 50% off the first month!


Code Mesh 2015 is going to take place on the 3rd and 4th of November, and listeners can use the code fngeekery10 to get 10% off when you register.

RICON 2015 will take place on the 5th and 6th of November. will be taking place on November 9th and 10th. is a two-day conference, bringing together 300 developers for an eclectic collection of talks covering the latest trends, best practices, and research in the field of computing. For more information visit

LambdaDays 2016 will be taking place on the 18th and 19th of February in Kraków, Poland. The CFP and registration has opened, so make sure to visit to find out more. And make sure to use code FunkyGeekz4dWin to get 10% off registration.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.


About Tessa Kelly
About Richard Feldman
How Tessa got into Elm
LambdaConf 2015
Coming into Elm and Functional Programming with a math background
How Richard got into Elm
Rich Hickey’s Simple Made Easy
Bringing Elm into work and adoption with co-workers
Writing Elm code and getting it into production within first week
Using Elm’s Union Types for a consistent list of Elm Actions
Type Annotations for functions
Future update in Elm for dead code detection
Features from Elm that are novel
“Almost impossible to have a runtime error”
Ability for Elm to detect unreachable code paths
Type inference
Time traveling debugger in Elm
Future ability to export events, e.g. from QA team to Dev team, and add integration tests
Inter-op story with JavaScript from Elm
Overview of Elm Architecture
View, Model, and Update
Elm Tasks for deferred side effects
Elm compared and contrasted to Reactive Architecture
Actions vs Events
“The Elm Architecture is really easy to follow”
How Elm has the way they think
“I would code in a style that would please the Elm compiler”
Actions refer to user based events, as opposed to events that are JavaScript events
Type Annotations in Elm vs JavaScript
Type Annotations help to identify where side effects take place
Resources for getting started with Elm
Building a Live-Validated Signup Form in Elm
Mike Clark’s Pragmatic Studio Series on Elm – Elm: Building Reactive Web Apps and Elm: Signals, Mailboxes & Ports
Walkthrough: Introducing Elm to a JS Web App
Elm website
Things we missed talking about
Elm’s package manager automatically enforces semantic versioning
NoRedInk is hiring
Developing a React Edge
Calls to Action
“Go play on the website”
“Try rewriting a small piece of your website on Elm”

As always, a giant Thank You goes to David Belcher for the logo design.