I’m a software engineer currently living in San Francisco. I like puppies, shoot with Fujifilm cameras, and am originally from Toronto 🇨🇦.
You can reach me by email at hello@ this domain or on the Twitter.
Swift, Synchronization, and Semaphores. Why is multi-threaded code so difficult, and how can semaphores help?
The Least You Need to Know About Hashing in Swift
Swift Language User Group, San Francisco ☁️, august 2018
What is the simplest hash implementation? How about the worst? What is a hash anyway? And why does it matter?
What does crafting augmented realities teach us about crafting better software?
How do we deal with uncertainty in our programming lives, and how can the thread sanitizer help us in managing that uncertainty?
View controllers: we know them, love them, despise them, and overload them. Let's look at them a little closer.
Dealing With Asynchrony in a Synchronous Swift World
Swift Language User Group, San Francisco 🤓🇺🇸, april 2017
How do we deal with Swift code that executes in a (mostly) straight line when there are so many side tangents and threads to wait around for?
How can reading more code help us write better code?
What I Learned From 55 Swift Standard Library Protocols
Swift Summit, San Francisco 🌫🇺🇸, october 2015
How does the way the Swift standard library uses protocols give us hints on how we should do it?
|📣 See all talks|
|Size, Stride, Alignment ↝|
The basics on the memory layout of Swift struct instances
|12 March 2018|
|Fun With Flags|
Managing concurrency with better communication. And flags.
|15 Jan 2019|
|Concurrency From the Ground Up|
Based on a talk presented at 360iDev 2018
|27 Aug 2018|
|Getting Under Swift's Skin @ NSMeetup|
Three ways to get under Swift's skin: reflection, debug toolchains, and SIL
|8 Feb 2018|
|Five Unbelievable Secrets of Reactive Programming the Experts Don't Want You to Know!|
Totally non-clickbaity article about lessons learned from reactive programming.
|23 Feb 2017|
See all posts