Functional Swift Conference 2017 — Brooklyn

On April 15th Kickstarter hosted the fourth ever Functional Swift Conference, which is the third time we’ve hosted it at our office! It’s an all-day event with 10 speakers (4 were Kickstarter engineers!), 90 attendees and lots of discussions around what can we learn from functional programming to write better Swift code.

If you find any of this interesting, we’re hiring and we work out in the open!

Growing Trees with Recursive Enums in Swift — Konrad Feiler

Konrad describes the power of value types and recursive data structures as a means to very simply describe complicated objects. He applies this to KD-trees and shows off their amazing performance properties.

Test Doubles Are A Scam — Matt Diephouse

Matt makes the case that test doubles aren’t helping you as much as you think they are. He shows how you can instead describe side-effects instead of performing them in order to gain more testability and understandability.

There And Back Again…: A (dys-)Functional Programmer’s Tale — Lisa Luo

Lisa, an Android and iOS engineer at Kickstarter, describes her journey moving between Android and iOS, and how functional programming provided a base language for how she interacted with two very different platforms.

Objecting to Objects — Christella Dolmo

Christella, also an iOS engineer at Kickstarter, describes what it has been like to learn functional programming after having just learned object-oriented programming.

Writing Domain Specific Languages — Rahul Malik

Rahul discusses domain specific languages and uses GraphQL as an example, which a little bit of live coding at the end!

Beyond Types in Swift — Brandon Kase

Brandon gives a talk about algebraic laws that often lurk behind our abstractions, and why they are important.

Monoids, Predicates and Sorting Functions — Brandon Williams

Brandon, another engineer at Kickstarter, continued other Brandon’s theme on monoids by showing some interesting constructions of monoids and then applying it to the case of predicates and sorting functions.

Applicatives and Swift — Stephen Celis

Stephen, yet another engineer at Kickstarter, describes applicative functors, which are a generalization of monads, and how they unlock functionality that cannot be seen from the monadic world.

Applicative Parsing with Documentation — Chris Eidhof

Chris continues the theme on applicatives by live coding a simple API that generates its own documentation for free!

A Type System From Scratch — Robert Widmann

Finally, Robert gives a whirlwind of a tour through type systems and why type inference is so hard. He also describes how the Swift compiler team uses graph theory to attack problems of type inference in a practical way.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.