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