Hello, friend. This site describes some of my work in software.
At the moment (May, 2020) I am taking time off to consider new directions and, you know, to be sure family survives the global covid-19 pandemic. 😓
Got any fun projects you'd like to work on with me? Now's the rare perfect time when I can do that. Please, say hi! I'm interested in Swift with TensorFlow, ML apps, and also learning my way around web tech especially for data visualization -- but mainly, just working with friendly people.
Previously I was the CTO of Topology Eyewear, a company which makes made-to-measure eyewear. You can be fitted for a pair of glasses, virtually try them on, browse different styles, and purchase them, all from your iPhone. This is thanks to a dizzying combination of technologies -- computer vision, augmented reality, automated manufacture, Cocoa Touch, Swift, and other wonders.
I started when the company consisted of the mechanical engineer founder, Eric, another junior mechanical engineer, and some leftover computer vision code which ran only on macOS. When I left four years later, the company had completed successful rounds of funds, had dozens of employees, had sold thousands of pairs of glasses, had a polished consumer app in the App Store for years, had a strategic partnership with Canada's second largest eyewear retailer, and had deployed a retail app in dozens of stores. I built a lot of software -- on mobile, on servers, for actual factories -- and I built a lovely team. (Hi, guys! 👋)
Before Topology, for years I operated my own consulting business, and at various points have worked in finance (Deutsche Bank), in management consulting (McKinsey & Co), in science (London Institute for Mathematical Sciences), and in theater (The Maydays, Brighton).
I also did a PhD and postdoc, back in the day.
Machine Learning in iOS (slides)
A tutorial talk at RWDevCon 2017, showing how to build a smile classifer on your Mac, in real time along with the talk! (Before CoreML made this a button push.) Mar 31, 2017.
Everything a Swift dev Ever Wanted to Know about Machine Learning But Was Too Afraid to Ask (slides)
Presented as the opening session at try! Swift, on March 2nd, 2017, in Tokyo, Japan.
Talking to Swift (slides) 👈 fun!
A talk about the hype versus the reality of chatbots, about the design of conversational user interfaces, and how to use Swift to build them on iOS and on the Amazon Echo. Also good if you're interested in French literature.
Value SEMANTICS (not value types!) (slides) 👈 fun+deep!
This is not a talk about value types in Swift! It's a talk about value semantics, how that's different, and why that's what matters. Explained via Alan Rickman, and diagrams. Recommended if you mistakenly think "copy-on-write semantics" is a thing (grr!).
Amazing Powers and Mesmerizing Secrets of 3D Touch (slides)
A somewhat mad experiment where I explore the 3D touch features of the iPhone 6s, by building a "touch pedestal." Alas, 3D touch never really had a chance. Goodbye, my hot dog jokes.
Protocols with Associated Types and How They Got That Way (slides)
A deep dive into Swift's protocols with associated types, their roots in other languages, and why they have a surprising relationship to Objective-C protocols (namely, almost none at all!). This talk introduced the term PATs and was perhaps the first focused discussion of their limits, which are now familiar in the Swift community.
Introduction to Protocol-Oriented Programming
A tutorial-style talk systematically reviewing protocols in Swift, and how they compare with inheritance-based solutions. A bit dry, but damned thorough.
If you you're going to see only one talk that touches on Swift's value types, the philosophical transporter problem, and feelings of alienation, it will probably have to be this talk, because I don't think anyone else is nuts enough to give it. Good if you like Derek Parfit and geniuses with big hair.
Swift, Functional Programming, and Does It Matter? (slides, approx.)
A remote online talk considering Swift's roots in functional programming languages and implications for Objective-C.
You're probably wondering how I ended up here
Not a talk, but an interview with me on one of my favorite podcasts, SwiftCoders. Like many, I took a roundabout route into software.
Evolvability: a Formal Approach
Once upon a time, I was a scientist! My PhD thesis explored what conditions need to be in place for evolution to produce complex life, by developing a novel, formal approach to describing evolvability. (Pro tip: skip the jargony abstract and just read the preface, to get a sense of what this is about.)
Machine Learning by Tutorials, 2nd edition
I updated and rewrote the chapters on natural language processing and sequence to sequence models for this book's 2nd edition.
The Swift Apprentice, later editions
I wrote the chapters on generics and value semantics.
The Swift Apprentice, 1st
I wrote the chapters on generics and functional programming, for this earlier edition of the book.
Harvard University (BA, Physics)
Oxford University (PhD, Theoretical Biology)