
π€ππ¨π¦π¦
Hello! Iβm Greg, a software engineer living in San Francisco, California. I like puppies, shoot a lot of photos, and am originally from Toronto π¨π¦.
![]() | I currently work at Apple on the Camera & Photos team. |
![]() | Previously #diditforthegram as an iOS engineer at Instagram. |
![]() | Emeritus tutorial producer and editor at raywenderlich.com. |
![]() | Former writer and proprietor at Swift Unboxed. |
... | and other things now lost in the mists of time. |
You can reach me by email at hello@ this domain or elsewhere on the web: Twitter, Instagram, Flickr.
Conference & Meetup Talks
![]() |
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? |
![]() |
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 |
Writing
Size, Stride, Alignment ↝ The basics on the memory layout of Swift struct instances. | 12 March 2018 |
@objc and dynamic ↝ Objective-C runtime visibility and the depths of dynamic dispatch in the modern Swift era. | 5 December 2017 |
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 |
See all posts |