Michael is a Senior Engineer with five years of employment developing iOS applications, data explorers, interactive installations, and games.
iOS Application Engineering *
| iOS Application SDK and Vendor Experience |
Storage | GraphQL, Parse API, Firebase,Core Data, Keychain,
UserDefaults, Filemaker, Access |
Networking | Node.js, NSURLSession, AFNetworking, Alamofire,
WebKit,Reachability, MultipeerConnectivity |
Analytics | mParticle, Parse, Fabric, Kissmetrics, Facebook, Google
Analytics, Optimizely, Bugsnag, BeautifulSoup, NLTK,
SPSS, ArcGIS,Proprietary |
Animation | CoreAnimation, CoreGraphics, CoreImage, SceneKit,
SpriteKit, GamePlayKit,CoreMotion, Processing, Unity,
Cinder, OpenFrameworks, OpenGL, GLSL |
Multimedia | Notification Center, Kahuna, Photos, SDWebImage, Google
Maps, Apple Maps,GoNative, QT |
Authentication | Parse, Facebook, OAuth, Digits |
Purchasing | StoreKit, CardIO, RMStore |
Testing | XCTest, OCMock |
Toolchain | XCode, Visual Studio, Cocoapods, Carthage, Git, Node
Package Manager, CMake, Bitrise, Jenkins |
Design | Illustrator, Photoshop, InDesign, After Effects, Premier
Pro, Final Cut Pro, SketchUp |
Embedded | Arduino, MQTT, TCP/IP, UDP, Serial, I2C,
SPI,CoreBluetooth, iBeacon |
Senior Engineer | March 2017 – June 2018 |
Homer Learning is a cross-platform application designed to teach elementary reading to toddlers between the ages of 2 and 8. Homer uses stories, songs, and mini games to gradually present letters and words. Simple personalization is used to engage a child’s interest. Homer retains more than 250,000 subscription-based monthly active parent and teacher users.
At Homer, a team of as large as seven iOS engineers collaborated on the iPhone and iPad client for Homer Learning, four engineers provided backend engineering, and three engineers produced the content pipeline. Covering code with unit tests and integration tests, using XCTest, OCMock, and mocha.js was mandatory. Development shifted over the course of the year from a trunk-based process to a peer reviewed, git-flow process driven by occasional pair-programming, daily remote, agile standups, and project retrospectives recorded in JIRA and Google Docs. Deliverables included:
- Contributed code and white papers to the iOS, analytics, backend, and content production pipeline teams
- Evaluating content production pipeline alternatives for producing cross-platform character animation
- Reviewing GraphQL implementation and proposing a refactoring strategy to support the long-term roadmap
- Adding Parse API endpoints covered by mocha.js tests
- Design and implementation of a dynamic, CMS-driven contextual onboarding system
- Design and implementation of behavior tracking and non-fatal error reporting to multiple service providers
- Refactoring the main navigation controller to provide smooth transition blends for UIKit and Cocos2D
- Refactoring audio asset handling into a sequenced, multi-track audio manager
- Collaborating with a senior web engineer to implement OAuth for partner subscribers
- Code reviewing legacy modules and presenting findings for planning with executives and managers
- Configuring continuous integration for XCode bots and parallelized tests for Bitrise
- Converting the XCode project and unit tests to support Swift frameworks in Cocoapods
- Developing new mini game templates and view controllers
- Building a proof of concept for a state machine that improves orientation and handles deep links to any page
Contracted Senior iOS Engineer | April 2016 – December 2016 |
Evil Apples is an iPad and iPhone card game based on the premise of Cards Against Humanity. Five players compete in a seven or more rounds. In each round, one player acts as a judge and the remaining players select cards to complete a sentence. Evil Apples supports several discovery mechanisms including friends-only and stranger mode. It uses in-app currency to limit the rate of play and expand the content a player can use. It serves more than 300,000 monthly active users and retained a 99.7% crash free rate over the course of 2016.
The Evil Apples development team consists of the co-founder and project manager who performed back-end development, one Android engineer, and one iOS engineer. Responsibilities included:
- Executing sprints around maintenance issues with performance, stability, and security
- Adjusting the distribution of in-app currency and pop up advertisements
- Enhancing the chat room content, main menu, backgrounds, and deck collection views
- Building auto-layout views for new device sizes
- Refactoring the in-app purchase store layout and model
- Delivering a proof of concept refactor for the main navigation controller to a tab-based system
Screenshots
Contracted Senior iOS Engineer | January 2016 – May 2016 |
MTV News was an iPhone and iPad application designed to wrap the content of www.mtv.com/news with a native navigation container and a single social feature. The client intercepted the inbound web content and modified the source code in transit to support a native navigation experience using the GoNative SDK. The user was encouraged to take screenshots of the content and share it with friends through many social network APIs. The client hired Crush & Lovely (http://crushlovely.com) to implement the design and Crush needed a subcontractor to develop the iOS client. The MTV team knew at the outset that their chosen solution was a temporary fix to a larger branding challenge, and the MTV News app was removed from the App Store in late 2017.
The development of MTV News was conducted by an internal project manager, external project manager, iOS developer, Android developer, and a backend web client team. The team followed an agile development process. Responsibilities included:
- Customizing the GoNative wrapper for MTV’s web content
- Adding an interface to screenshot the content; adding the social network sharing APIs for iMessage Email,
Instagram, Facebook, Twitter, Pinterest, and WhatsApp
- Delivering pixel-perfect animation sequences for UI component transitions
Screencast
mtv_news.m4v
Screenshots
Contracted Senior Engineer | September 2015 – February 2016 |
The Liquor Cabinet is an iPhone application that presents mixology variations of classic alcoholic drink recipes. Each recipe includes ingredients, instructions, tools and variations. The client needed a single engineer to handle backend database deployment and native iOS development for the prototype and first version release.
The development of The Liquor Cabinet included the product owner/client, a designer, and a single engineer with a contracted project manager. The budget and timeline were limited by the client’s resources; however, the client was singularly focused on pixel perfect design. Responsibilities included:
- Creating a Parse instance
- Authoring an administrative tool to upload and join the database tables
- Implementing authentication with Parse; implementing card layout designs and seamless transitions
- Implementing a filtering system based on ingredients, skills, and flavors
- Implementing a search function
Screencast
liquor_cabinet.mov
Screenshots
Senior Engineer | December 2014 – August 2015 |
Yarn was a cross platform photos service developed at the Samsung Accelerator in New York City. The product was designed to transfer the photos from storage such as iCloud, Dropbox, etc. into a proprietary analytical pipeline.
The user was encouraged to tag photos with hashtags about people, places, and interests, and the Yarn application server would automatically, periodically return a collection of photos grouped together by topic. The goal of the work at the Accelerator was to integrate the service as a default in Samsung Nexus devices, and the first release was designed and built for iOS, Android, and web clients. The Yarn iOS application was released into production, with several subsequent maintenance releases, and roughly 5,000 users were accepted into the beta. The Accelerator did not choose to acquire the IP, and the client was eventually removed from the App Store. Apple’s native Photos client released an identical service shortly before Yarn was disbanded.
The development of Yarn was managed by a product owner, Chief Technology Officer, machine learning and back-end developer, front-end web developer, native iOS developer, native Android developer, remote iOS contractors, and a succession of UX designers and product consultants. The team followed an agile development process. The Accelerator required the product owner to present progress monthly to the executive team in order to continue funding for development. The remote iOS contractors were focused on delivering content for the presentation’s meeting while the in- house developer was focused on long term production code. Responsibilities included:
- Design and implementation of a network client to fetch photos from first-party and third-party repositories within foreground and background processes
- Design and implementation of a Model View, View Model design pattern
- Design and implementation of a parent/child CoreData model for fetching and storing assets and metadata
- Design and implementation of a gallery layout algorithm
- Implementation of a card-based memory feed, gallery presentation view, gallery editing view, collage editing view, photo tagging view, and other custom interfaces in auto-layout
Screencast
yarn.m4v
yarn_order_photos.m4v
yarn_zooming.m4v
Screenshots
Senior iOS Engineer | May 2014 – November 2014 |
Beautified was an on-demand client for making beauty service appointments in the New York and Los Angeles markets. The app was designed to extend the lifestyle brand of a well-known millennial celebrity. Women used Beautified to locate recommended shops for haircuts, blowouts, nails, massages, etc. and book a last-minute appointment on their phone. The vendors were suggested based on location and time through a feed. Beautified gained traction through marketing in publications such as Vanity Fair, Teen Vogue and Elle, but the founders came to a disagreement about management that resulted in mutual lawsuits and a shuttering of the business.
The development of Beautified included three product owners, two back-end Ruby developers, a native iOS developer, and a contracted product design consultancy. The native iOS developer and back-end developers worked closely to develop API integrations. Responsibilities included:
- Fully rewriting the client interface to implement the design created by the product consultant
- Writing collection view content in auto-layout
- Integrating the Kahuna push notification marketing service
- Integrating custom behavior tracking analytics events with mParticle
- Integrating a credit card transaction SDKs
- Producing a data explorer of the purchase funnel events to evaluate the user flow design
- Presenting an analysis of the purchase flow visualization to the co-founders
Screencast
beautified.m4v
Screenshots
Senior iOS Engineer | December 2013 – May 2014 |
Weather Whiskers and Smiley Central were designed by IAC’s Mindspark group, aka Ask Applications, to gather behavior tracking data on iOS usage. Smiley Central was a sticker app that sent custom Smileys through text messages and other channels. Weather Whiskers was a weather app that delivered the forecast with large photos of cats. Both clients implemented a custom behavior tracking analytics service used by Mindspark to track long term value against cost per acquisition. Mindspark needed an emergency fix in the in-app purchasing system before Christmas, and the work developed into a full-time role that ended in recruitment into a higher paying start-up environment at Beautified.
The development of Mindspark’s app relied on a product owner, project manager, two back-end engineers, a single native iOS engineer, and two designers. The team participated in daily standups and followed a strict agile development process documented in Atlassian’s JIRA and Confluence. Responsibilities included:
- Refactoring the iPhone client into a universal client
- Writing a wrapper for the custom behavior tracking system
- Improving the speed and transition of scrolling through views with large assets
- Bug fixing in-app purchasing crashes in legacy code
Weather Whiskers Screenshots
Smiley Central Screenshots