Technical Skills

  • Languages: Swift, Objective-C, C, Ruby, Python, ECMAScript (Node.JS), TypeScript, Go, Java

  • Databases: MySQL, SQLite, Postgres

  • Web development: REST services, HTML and CSS, React, Docker, Kubernetes, Many flavors of Cloud Compute and Serverless, etc.

  • Many years of first party iOS app development, with many contributions to iOS UI/UX

  • Many 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)

  • UNIX systems design (pthreads, traditional UNIX IPC, process and privilege isolation)

  • Co-inventor on 5 patents (all while at Apple) covering topics such as phone number processing, Facetime registration, Apple Wallet security, and QuickTime asset validation.

Work Experience

September 2022 - Present: Senior Software Engineer, Maps Business Services Client Team

  • Helped lead the development of new features for Messages for Business and related technologies.

June 2021 - September 2022: Mobile Software Engineering Manager, ujet.cx

  • Led two mobile teams and one backend/web team (12 engineers total) to implement multiple mobile-facing features including virtual agent support, screen sharing support, and initiatives to break the monolithic SDK into a more modular components, thus encouraging better design and allowing customers to bring in only what components they need.

  • Ran project management for the team. Gathered estimates from engineers; used these to design project plans and track software all the way from technical design to release.

  • Redesigned the mobile release process to add flexibility and ensure delivery of high quality code.

March 2020 - June 2021: Senior Software Engineer, ujet.cx

  • Co-led an entire rework of the user authorization system for UJET’s core administration portal using a flexible custom roles and permissions system instead of a monolithic fixed role system. Designed a Ruby-based DSL for specifying permissions for particular API calls.

  • Implemented call barging, a rewrite of the feature flag system, and many other backend features.

July 2019 - February 2020: Senior Software Engineer, Amazon.com

  • Led iOS development for Amazon Glow, a Amazon Grand Challenge project.

  • Enabled rapid prototyping by quickly building an iOS client and node-based web services that the iOS client, Android client, and Glow device itself interfaced with.

January 2018 - March 2019: Senior Software Engineer, Classy.org

  • Helped harden and modernize the in-house REST-based payments service. Converted much of the code from JavaScript to TypeScript resulting in safer, less-error-prone code.

  • 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 distributing it 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++.

Education

University of Tennessee, Knoxville: BS in Computer Science