# Talks

I’m available to speak at conferences and meet ups, so please feel free to drop me an email mbw234@gmail.com.

## Anything you can do, I can do better

**May 2017**: My colleague Lisa Luo and I gave a talk at UIKonf about how we unify our foundations across iOS and Android by building off of functional programming in Swift and Kotlin.

## Monoids, Predicates and Sorting Functions

**April 2017**: At the 2017 Functional Swift Conference in Brooklyn I spoke about small atomic units of abstractions can piece together to build surprisingly complex, yet expressive, components. In particular, I used semigroups and monoids to build an expressive algebra for predicates and sorting functions. This talk is roughly based on the article I wrote “The Algebra of Predicates and Sorting Functions”.

## The Two Sides of Writing Testable Code

**March 2017**: There are precisely two things that make functions fully testable: the isolation of effects and the surfacing of ‘co-effects’. We will explore a bit of the formal theory behind these two sides, and show how they lead to code that can be easily tested. We will also show how we do this at Kickstarter by diving into our recently open sourced codebase.

## Finding Happiness in Functional Programming

**Oct 2016:** At the 2016 Functional Swift Conference in Budapest I spoke about how embracing simple, pure functions above all other abstractions has enabled my colleagues and me to build a well-tested, well-understood codebase. I first covered the basics of pure functions and the ideas of identifying effects and separating them from your functions. I then described how these ideas allowed us better our testing suites, enabled us to replace simulators and storyboards with Swift playgrounds, and ultimately a better working relationship with engineers, designers and product managers.

## Lenses in Swift

**Dec 2015:** At the 2015 Functional Swift Conference in Brooklyn I described the basics of lenses and how to implement them in Swift.

## Proof in Functions

**Feb 2015:** At the Brooklyn Swift Meetup I described how we can use the Swift type system to prove simple mathematical theorems. This talk coveres most of everything I discussed in my post “Proof in Functions”.

## Functional Programming in a Playground

**Dec 2014:** At the 2014 Functional Swift Conference in Brooklyn I used Swift playgrounds as a highly interactive way for exploring functional programming ideas. In particular, I developed the ideas of transducers and show how they lead to highly composable data transformations.