Jake Kirshner

Software Engineer

Profile

California bred software architect and engineer with significant experience designing and building iOS, macOS and web applications as well as the server infrastructure, databases and APIs those clients use.

Strong knowledge of cryptography as well as both client and server-side security.

Cocoa Framework enthusiast who enjoys creating highly efficient native applications. Passionate about anything fast and statically typed with preference for reference counting over garbage collection.

Spends free time skiing uphill, biking downhill, and sitting in hot springs.

Education

2012
University of Utah Computer Science —
B.S.
Bachelor of Science

College of Engineering

Salt Lake City, Utah

Skills

Languages

Swift
Objective-C
Golang
Python
HTML & CSS
JavaScript
Ruby
C & C++

Open Source Contributions

TextMate https://github.com/textmate/textmate/

Added NSTouchBar support and updated DocumentWindowController to support custom tab titles.

Swift Algorithms & Data Structures https://github.com/raywenderlich/swift-algorithm-club/

Improved radix sort to perform fewer iterations and reuse the same containers when running bucket sort.

Gevent https://github.com/gevent/gevent/

Patched C90 bugs and warnings related to included libevent library.

Other Works

Method for Encrypting and Storing Data US Patent No. 10,044,509 B1 Aug. 7, 2018 • Published

System using client-side symmetric data encryption and asymmetric key encryption in conjunction with server-side asymmetric key generation to provide secure file uploads and sharing.

iOS Recognitions

3

New & Noteworthy

App Store

3

What's Hot

App Store

2

Category Featured

App Store

Experience

Apple Since 2020 Senior iOS Engineer Cupertino, CA

Engineer on a set of private system frameworks that leverage different event streams for presenting instructional content based on relevance and timing.

Directly responsible individual (DRI) for redesigning a set of existing private frameworks for use as a public API. Built using Swift and SwiftUI with support for iOS, macOS, tvOS, and watchOS.

Big Nerd Ranch 2019 → 2020 Senior iOS Engineer Atlanta, GA

Worked as an embedded expert with different companies to help them implement new Cocoa and Cocoa Touch technologies in their iOS and macOS applications.

Helped clients build new components using Augmented Reality, CoreData and Server Driven Layout.

Updated Swift and Advanced iOS coursework for bootcamps and team training so materials stay up to date with the latest iOS and macOS SDKs.

MartianCraft 2018 → 2019 iOS Developer San Francisco, CA

Rebuilt iOS file management application using Swift and modern Cocoa Touch components. Model and ingestion logic was built as part of a Cocoa Framework to allow the backend to be used across the client's other iOS applications and to allow for separate testing from the app's UI code.

Fidelity Investments 2015 → 2018 Principal Software Engineer Salt Lake City, UT / Boston, MA

Architected and developed new file storage platform and API that leverages client-side symmetric file encryption and server-side asymmetric key generation to encrypt and store files independently of the platform's application servers. Built iOS file management app based on that API.

Welikesmall 2012 → 2015 Software Engineer Salt Lake City, UT

Built APIs and server backends for the U.S. Air Force, Major League Baseball, Starbucks, and other clients.

Developed iOS and macOS apps using Objective-C and Swift based on the aforementioned APIs.


Projects

TipKit @Apple

Lead engineer behind the design and development of Apple's TipKit Framework and APIs for iOS, macOS, tvOS, visionOS, and watchOS.

Worked with several different teams within Apple to create a framework that allowed them to author instructional content alongside the display rules that govern their availability.

Built the persistence layer and querying engine on top of CoreData and leveraged Swift Macros and Foundation's Predicate APIs to make it easy for developers to create tips and only show them to users who will find them most beneficial.

Created APIs for enabling TipKit integration in SwiftUI, UIKit, and AppKit.

Updated the Quality Engineering pipelines to enable quick testing and validation across all of Apple's platforms.

Etsy iOS Application @Big Nerd Ranch

Created ARKit experience to allow the app's users to preview paintings and other wall art in their homes. Used Apple's Vision and Core ML Frameworks to extract and crop artwork from seller images to enable Augmented Reality experiences without needing additional assets for each listing.

Designed UIKit and Dispatch extensions to allow dynamic animation and event chaining based on user interactions and server driven layouts.

Onboarded and paired with new engineers to familiarize them with the codebase of the app and help with Objective-C/Swift interoperability in the project and its frameworks.

iOS File Management Application @MartianCraft • 2018 → 2019

Built universal iOS file management application for company's main client. App uses persistent CoreData store located in a shared group container to allow for read access from the app's share and document provider extensions.

Used custom transformable property attributes to handle a variety of file metadata formats that differed based on the parent container and API used to access the file.

Data model and core logic are built into an access control designed Cocoa Touch Framework to allow for easy sharing of the file structure and management across the client's other iOS apps.

Fidelity Cloud Storage Platform @Fidelity • 2016 → 2018

Lead redesign of the Fidelity Investment's file storage platform to allow for a larger volume of user traffic with increased file security by offloading data encryption to the client applications.

Wrote the application server in Golang and designed it to serve with latency based routing in front of region specific load balancers. The API is responsible for authenticating users via JSON Web Tokens signed with environment specific public/private key pairs. The servers also coordinate file edit and sharing operations for the web and iOS applications as well as the generation and storage of per-file public/private key pairs that are used by the clients to encrypt symmetric key components.

Built MVP web application and updated existing iOS application to perform the client-side encryption operations. Each client generates symmetric key components and performs 256-bit AES-GCM data encryption on selected files. The browser accomplishes this with Web Crypto, while the iOS application uses CommonCrypto and the Security Framework. Wrote big integer libraries for the browser via TypeScript and iOS with Swift to perform encryption of symmetric key data using asymmetric key components delivered by the Golang application server.

PostgreSQL persistent store pairs user file references and version information for encrypted data with asymmetric key components. Wrote driver for the application server designed to take advantage of Golang native synchronization pools in conjunction with PgBouncer connection pooling on database server. Later updated the driver to connect with AWS Aurora database service to allow for the creation of PostgreSQL read replicas within each region hosting application servers. Wrote C library utility for wrapping OpenSSL EVP functions for encrypting documents uploaded under the legacy API.

Built serverless functions for notifications using Node.js and configured them to run as AWS Lambda tasks triggered from specific AWS API Gateway endpoints. AWS Simple Email Service is utilized to dispatch transactional emails for users, while AWS Simple Notification Service sends text message verification codes.

Fidelity Cloud Storage iOS Application @Fidelity • 2015 → 2016

Built new iOS application targeting file storage API and added biometric authentication using TouchID and the LocalAuthentication Framework, also updated user credential storage to leverage Security Framework and Keychain Services.

Designed and created new vector assets to add compatibility with high-DPI iOS devices.

Used UIViewControllerContextTransitioning protocol and custom transition animators to present a path selection child view controller from the navigation bar that allows users to quickly traverse their directory hierarchies.

Starbucks 1912 Pike @Welikesmall • 2015

Designed and built Content Management System for Starbucks to draft and publish articles and videos. Backend is written in Python and uses combination of Memcached and PostgreSQL for article storage and caching.

Built SQL adapter around PostgreSQL array field and SQLite char field to store and generate article markup without performing unnecessary table joins and enable new modules within the markup to be added with ease. Article sections are designed to be extensible and allow for new layout types and styles while also enabling editors to easily change posts inline via the HTML content-editable attribute.

Article content is broken up into submodules to allow for translations in different locales, while keeping an article's layout and non-text components synchronized.

Smoggy Backend & iOS Application @Welikesmall • 2015

Built Python based application server to periodically fetch and parse raw air quality station data from EPA AirNow.gov servers.

Air quality index forecasts are calculated using NOAA LFIT Linear Least Squares Regression function utilizing an annual harmonic coefficient of four to filter outlying data points based on seasonal cycles. Adapted LFIT function to be used in SQL aggregation calculation to avoid unnecessary querying and serializing of historical forecast data.

iOS app queries the API with users' latitude and longitude. Server finds reporting air quality stations stored in PostGIS compatible format and the five closest active stations are cached using Redis to avoid redundant recalculations. App detail view uses UICollectionViewLayout to provide cell paged scrolling while also displaying previews of the next and previous cells.

Wonderment Backend & iOS Application @Welikesmall • 2013 → 2015

Designed backend architecture and built Python application server for content creation and sharing platform for kids. Includes powerful moderation utilities to ensure all content is prescreened and child appropriate. All text content is passed through a profanity filter and all photo and video content is approved using an administrative portal.

Site includes reward system to encourage user activity. Users earn virtual currency for creating new content that they can use to buy new costumes and accessories that can be combined to decorate profile avatars.

Built iPad client that allows users to contribute photos, drawings and new content to the site and browse various costumes and accessories for updating their avatars. CoreData store allows authenticated users to save creations for viewing or updating when offline. Uses MKMapView with custom MKTileOverlays to present interactive graphic world map of various active projects.

Call for Wonder iOS Application @Welikesmall • 2013 → 2014

Built iPhone application for viewing content feed that was curated with a basic web backend by Kidnected staff. Allows users to like or bookmark posts that are then associated with their iOS UDID for later reference. Users can also submit links, photos and video to staff for review as potential new content.

U.S. Air Force Collaboratory @Welikesmall • 2013

Lead backend architecture design on platform used by U.S. Air Force for collaboration and problem solving with students.

Built moderation system for staff to post problems under specific projects that users answer by sharing urls, photos and video.

Problems can be sorted and filtered based on activity frequency, category and if other students are simultaneously working on a problem.

Users earn points in specific categories based on which problems they answer and staff can award individual answers with higher certifications. Wrote various database aggregation functions for user progress tracking based on specific milestones for participation and post frequency.