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.


Swift Talks

April 2017: Chris Eidhof and Florian Kugler of objc.io invited me to record a few guest appearances on their “Swift Talks” series about Kickstarter’s newly open-sourced code. It was a great opportunity to show how functional programming can be applied to a large codebase in real life.

View Models at Kickstarter

Brandon from Kickstarter joins us and shows how the company uses view models to write highly testable code. We integrate Apple Pay payments and look at Kickstarter’s open-source codebase.


Deep Linking at Kickstarter

Brandon from Kickstarter joins us to discuss deep linking into an iOS app. We show how to unify all potential entry points into the app using a common route enum, and then we take a look at this pattern in Kickstarter’s open source codebase.


Playground-Driven Development at Kickstarter

Brandon from Kickstarter is back to show us how the company uses playgrounds to prototype and style individual view controllers.


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.

The two sides of writing testable code


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.