
Starting on the Apple Pay Security team tomorrow!
About
I started iOS development in 2009 and have an advanced knowledge of the iOS platform, in both Swift and Objective-C. I also have an extensive history of 10+ years working in team settings for high-stakes projects that have reached millions worldwide (React Native, Microsoft Outlook, Twitter).
Projects
The React Native for iOS core team inherited this codebase from its previous authors with the intent of making the then-internal implementation ready for the open-source community. References to Facebook-specific code had to be removed, Objective-C++ was simplified to Objective-C, and the developer experience was greatly improved. I worked on developer experience, liaised with public users of the library on GitHub, and wrote UI features like text rendering and CSS-like border customization.
Side Projects
Built on top of Apple's private Sharing framework, TrollDropKit and the related TrollDropPlayground projects created a fun, if not undocumented, way to share the joy of the troll-face meme with nearby AirDrop participants. (NB: Apple later patched sharingd to allow only entitled processes to initiate sharing operations.)
Formerly PebbleBucks, JavaPay provided a native Starbucks payment experience on the Pebble smartwatch platform. It automatically fetched card details for Starbucks' online users; however, this functionality was removed at Starbucks's request. Written in C and JavaScript.
Awards
Work Experience
Pandamonia is a creative outlet for me to publish iOS and macOS apps.
Contributed towards launch of the Super Follows program on iOS, allowing creators to earn money from their largest fans. Worked on modularization and code cleanup efforts. Shipped a health-related feature as well as Spaces for Super Follows.
Worked on To Do client apps for iOS and macOS while continuing maintenance for the Wunderlist apps. Led efforts to ship a native, 100% AppKit macOS app, while adopting To Do's new visual design. In 2020 I transferred to Outlook, where I worked on the calendar/time management vertical and led work on notifications. On both teams, I served as a mentor for interns and new teammates.
Worked on both mobile apps (contributor and consumer) as a part of a distributed team across timezones. Our team made advanced use of Core Data in both apps for data persistence.
I worked on the Rooms app as one of a few iOS engineers, contributing both to the mobile codebase and our use of Parse SaaS backend features. My iOS contributions were focused on building novel interactions, animations and interfaces. Following that, I was a core team member of the React Native framework, working on open-source readiness and runtime module registration and interfacing with native (Obj-C or Swift) components.
Led mobile engineering efforts at Branch. Wrote the mobile iOS client for Potluck, a link-sharing social network for friends to discuss online content. I also wrote the iOS app PhoneTag, a voicemail style app where friends can send voice memos to each other accompanied by a photo.
Performed quantitative tests to measure the battery effects of background location monitoring to surface useful tips for nearby restaurants and other venues. After iOS 7 was announced at WWDC that summer, I worked the remainder of my internship on updating the Foursquare iOS client with new interface design patterns.
Assisted in the iOS client rewrite for Minus, a social platform for meeting, chatting with, and sharing photos with nearby people. I was in charge of the messaging and inter-user communication features. I wrote the message conversation view and associated message sending and storage.
Added user behavior analytics to Dragon Brush, a storybook app for iPad. Coded custom controls and in-game aesthetics for Disneyland Explorer. I wrote the app Bean, a virtual counting assistant.
Speaking
I gave my first-ever German talk at Macoun about the development of an accessible game, Backgammon with Buddies.
Auf der Macoun 2019 habe ich einen Vortrag auf Deutsch (zum ersten Mal) über die Entwicklung eines von mir gemachten barrierefreien Spiels gehalten.
I gave a workshop at the Swift Alps conference covering SiriKit’s component parts, the Intents and IntentsUI frameworks, as well the two relevant app extension types. I worked with attendees throughout the day on integrating Siri support into their own personal or work projects.
To celebrate the 10th anniversary of the iOS SDK, I explored the history of the iPhone and its SDK through some of the key features and innovations that contributed to the evolution of software development as we know it.
I taught a workshop on how collection view layouts work under-the-hood and how to write your own layout to express a unique, custom design.
My talk at NSSpain was about disassembly and how developers can reach into the internals of Apple’s and other frameworks to see implementation details and hidden functionality. I also gave a workshop at NSSpain related to my talk where we went in-depth into the private Sharing framework and we reverse-engineered AirDrop.
SpriteKit is Apple’s framework for 2D sprite rendering. I gave an overview of the various features of the framework and how developers can leverage them across Apple’s platforms.
I gave a general overview of the accessibility features of Apple’s platforms and why developers should adopt them in their apps.
Using slides featuring only emoji, I discussed how my inability to make decisions in a side project of mine led to its downfall.
I spoke about the Pebble SDK and how iOS developers could program for a smart watch before the Apple Watch and its associated watchOS SDK were available.
I was invited to speak at one of the first Swift London meet-ups to speak about using the the AddressBook framework in Swift when, at the time, only a C-level API was available.
Education
Core classes of B. Sc. degree in computer science before joining Facebook through the Branch acquisition.