iOS Portfolio

I’m 29 and started coding at 15. I completed many projects from scratch to finish and played the roles of lead and senior developer, product owner, business analyst, and project manager. If you’d like details, please see my LinkedIn profile.

At the end of 2011 I started working with Apple’s stack, and in October of 2012 I quit my job in order to focus on iOS full-time. I believe mobile be at the beginning of a larger revolution still, and I’d like to be at my peak when the peak of that revolution is upon us. For the next year and 3 months I remained unemployed, learning and building (thanks Tesla stock!). I visited SF in summer of 2013 and immediately felt home; I sold my house in TN and moved that New Year’s Eve.

Life 360

I was responsible for native support of iPhone 6 and iPhone 6 Plus screens and implementation of in-app purchases:


Two of us worked on replacing file-based storage with Core Data – from designing the schema to data import, to data sync architecture (data can be modified on other devices/web). A colleague and I were tasked with substantially increasing app launch times, improvements in overall performance, and wider refactoring of the code base.


My first open-source project, Choosy, is an iOS SDK that allows developers support all apps related to a category such as Twitter with one line of code:

[self.choosy registerUIElement:self.myTwitterButton
                     forAction:[ChoosyActionContext actionContextWithAppType:@"Twitter"
                                                                  parameters:@{@"profile_screenname" : @"KarlTheFog",
                                                                                  @"callback_url" : @"yourappurl:"]];

When ‘myTwitterButton’ is tapped, Choosy presents an app selection drawer that shows installed apps for that category:

Choosy Screenshot - Twitter Action


I used Mantle for JSON parsing and wrote a Mantle tutorial for beginners in a blog post. And here’s a GIF of the above line of code in action. In a sentence, Choosy is an app-agnostic interface to support all 3rd-party clients at once.


In 2013, I’ve been partnering with a designer on my first commercial app. The app lets you take multiple pictures and record your weight each time, align the pictures so they seem precisely overlaid, and then scroll through the pictures quickly to see how your look changed relative to your weight over time.

It wears a fully custom design that led to UIView subclassing, custom UIControls, and  appearance customization of collection views, labels, buttons, etc. The backend is Core Data (Magical Record), with images stored separately in files (for both backup and performance reasons). I’m particularly proud of working with NSCache to load 30+ full-screen pictures per second on an iPhone 4 (without GPUImage). It started as an iOS 6 app, and after WWDC 2013 keynote we switched to iOS 7-style design.