- Recently-used Languages: Swift, Objective-C, ECMAScript (Node), TypeScript, Python
- Less-recently-used Languages: Go, Java, PHP, C, C++, Perl
- Databases: MySQL, SQLite, Oracle, Postgres
- Many years of web development: REST services, HTML and CSS, React, Docker, AWS deployments (EC2 and serverless, CloudFormation), etc.
- ~8 years of first party iOS app development, with many contributions to iOS UI/UX
- ~8 years iOS systems development (Mach Ports and MIG, launchd, XPC and NSXPCConnection, XPC services, XPC events, grand central dispatch, lldb, Darwin virtual memory subsystem, entitlements, priority boosting, CoreFoundation, ARC)
- Hobbyist experience with Android development
- Many years of UNIX systems design (pthreads, traditional UNIX IPC, process and privilege isolation)
- Co-inventor on 5 patents, all while at Apple
July 2019 - Present: Senior Software Engineer, Amazon.com
- Helped lead iOS development for an unreleased Amazon Grand Challenge project.
January 2018 - March 2019: Senior Software Engineer, Classy.org
- Built software to migrate millions of dollars of recurring payment profiles from external payment processors into the in-house payments system.
September 2015 - April 2017: iMessage Software Engineer, Apple
- Helped design and implement many features of iOS 10 Messages including stickers, Messages apps, handwriting, full screen effects, and a general visual redesign.
September 2013 - September 2015: Apple Watch Software Engineer, Apple
- Designed the syncing infrastructure, data storage format, and app/daemon architecture for the Passbook (now Wallet) application and subsystem on Apple Watch. Implemented the app and daemon from scratch.
- Worked with Human Interface team to design and build a Passbook and Apple Pay experience that is fast and easy to use.
- Coordinated with the iOS Wallet team to share code and minimize redundancy.
October 2009 - September 2013: iOS Software Engineer, Apple
- Lead maintainer of the Phone app and Visual Voicemail subsystem, and co-maintainer of Facetime and iMessage.
- Helped design and implement the first versions of FaceTime and iMessage, as well as many other smaller features like “Decline and Reply” and “Do not Disturb.”
- Worked with carrier EPMs to diagnose Visual Voicemail issues. Built additional tools carriers could use to diagnose common issues themselves.
May 2006 - October 2009: iTunes Software Engineering, Apple
- Along with two others, built a distributed video processing system written in Java and Objective-C. The system was responsible for ingesting content from 3rd party content creators and farming it out to multiple machines that could process and encode the content, parallelizing tasks where possible.
- Authored a QuickTime file metadata parser to validate files before being submitted to Apple (incorporated in a tool that was given to content creators).
September 2003 - April 2006: Software Engineer, Cadre5
- Wrote and helped maintain software for a variety of companies, mostly server software in Java and C++.
University of Tennessee, Knoxville (Fall 1999 - Spring 2003) BS in Computer Science
Available upon request.