In 20 years of building software, I've always focused on finding the work that compounds — emerging platforms, scrappy teams, and bets with outsized returns.
5 Oct 2016
26 Jun 2014
24 Nov 2013
The Perfect Thanksgiving Turkey
A multi-year journey from ‘I had to google sous vide’ to converting the entire family to breast-only sous vide turkey every Thanksgiving.

20 Nov 2013
Blocks: A Retain Ménage à Trois
NSNotificationCenter’s block API isn’t harmful — you just need to understand how self gets captured. A response to the ‘considered harmful’ crowd, with practical advice on block retain cycles and memory management.
15 Nov 2013
UICollectionView’s backgroundView property is horribly broken
Setting backgroundView more than once? It just stacks them. Forever. A Reveal-assisted deep dive into why the old view never gets removed, plus the simple workaround to fix it.

11 Nov 2013
Custom View Controller Transitions in Landscape
iOS 7’s custom transitions are great — until you rotate the device. A breakdown of the landscape bugs, the hacky workarounds that don’t quite hold up, and why we went back to view controller containment.

8 Oct 2013
Bookshelf View Controller Transition For iOS 7
An open-source iBooks-style 3D bookshelf transition, built on iOS 7’s new VC transition API. Includes easy setup, customizable options for depth and perspective, and a link to the GitHub repo.

19 Sep 2013
13 Sep 2013
12 Sep 2013
How To Support Old iOS SDK’s in Xcode 5
Xcode 5 dropped the iOS 6 SDK, but you can just copy it back in. Here’s where the SDKs live and how to grab them if you already nuked your old Xcode.
2 Jul 2013
Bringing cartoon-style squash and stretch to iOS views, automatically. The layer tracks its own velocity and distorts along the direction of travel — no configuration needed, volume stays constant.
21 Apr 2013
4 Mar 2013
30 Jan 2013
SMPageControl, Meet UIAccessibility
Adding VoiceOver support to our UIPageControl replacement — and naming pages too. With per-page names and full accessibility parity, SMPageControl finally earns its 1.0 and lands on CocoaPods.

11 Dec 2012
5 Nov 2012
Mistakes Were Made: Audio and ARC
ARC silently kills your AVAudioPlayer mid-playback. Here’s why and how to fix it. Spoiler: make it an ivar, and maybe file a radar while you’re at it.
15 Oct 2012
SMPageControl: UIPageControl’s Fancy One-Upping Cousin
A drop-in UIPageControl replacement with custom dots, images, and per-page indicators. Swap class names, tweak diameters and margins, or go full Dribbble with per-page custom indicator images.

27 Aug 2012
Premature Completion: An Embarrassing Problem
Core Animation runs your completion block early if it doesn’t find any animations. Rude. Includes a sample project to poke at the behavior yourself and avoid hours of confused debugging.
7 Jul 2012
16 Mar 2012
A CALayer subclass that fakes realistic lighting and shadows during Core Animation. Uses Lambert illumination math and a custom animatable property to keep shading correct mid-transform, specular highlights included.





