Objective-C Developer in North Vancouver, BC, Canada
iOS Developer (Contract)2016 - PRESENTMountain Equipment Co-op
Technologies: Objective-C, Swift
- Implemented new features and fixed bugs for Canada’s top-rated outdoor eCommerce app.
- Modernized the UI of a 2012-era app to use a constraint-based layout and adapt seamlessly to all iOS devices such as the iPhone X and iPad.
- Synchronized the mobile app cart with the website cart; worked with back-end developers to specify changes to RESTful API necessary to implement this feature.
- Created a feature to show a virtual membership card when the user is near a store, using geofencing and barcode generation.
- Added a more intuitive control for choosing product quantity; contributed fixes to the open-source library used for this control; am now the maintainer of this GMStepper library.
Independent iOS App Developer2012 - PRESENTPathym
Technologies: Swift, Objective-C, Ruby on Rails, Python, PostgreSQL
- Independently developed two iOS apps for outdoor sports (bicycling and hiking), including the front-end and back-end development, design, marketing, and strategy.
- Sold tens of thousands of apps; increased sales by 300% through App Store Optimization.
- Designed a responsive UI using storyboards and adaptive layouts, including the use of Sketch and Photoshop to create graphic assets.
- Designed a map tile generation process that processes map data for the entire world (32 gigabytes) and extracts relevant trails for displaying in my apps.
- Developed a back-end for my hiking app that accepts hike tracking GPS data via a RESTful API and can notify an emergency contact via email if the hiker gets lost.
iOS Developer2018 - 2018Nemo Design (via Toptal)
Technologies: Swift, Ruby on Rails
- Fixed bugs and improved design of a partially completed iOS app and its backend API.
- Successfully launched "Nonstop travel" app in the app store. (https://itunes.apple.com/us/app/nonstop-travel/id1289829129).
- Implemented iOS push notifications for flight reminders using Ruby on Rails (server) and Swift (app).
iOS Developer (Contract)2015 - 2016Radical.io
Technologies: Objective-C, Ionic, Cordova
- Developed the iOS native component of a mapping feature for a cross-platform (Android, iOS, HTML 5) app for Canadian credit unions.
- Implemented a Cordova plugin to allow communication between my native code and HTML5 hybrid code on the other screens of the app.
Product Manager2012 - 2015PNI Digital Media
Technologies: JIRA, Objective-C
- Managed eight photo-printing eCommerce apps across complete product lifecycle from conception to launch for major retail clients such as Costco, Walmart, Tesco, and Staples.
- Assisted the iOS development team with critical issues such as fixing out of memory bugs and implementing lossless JPEG rotation.
- Redesigned iOS apps and brand new Android apps with these results: mobile revenue increased between 2x to 8x, the average user ratings increased from ~1.5 stars to 4-to-4.5 stars, and received positive client responses (e.g., “Best demo I have seen from PNI for the last couple of years.”).
- Managed and prioritized product backlog and wrote user stories for features (agile product owner).
Strategic Product Manager2009 - 2012BlackBerry
- Managed releases of BlackBerry Travel app, v2.0.40 and v2.5—designed new social features that doubled the rate of user acquisition and improved purchase flow resulting in a 20% increase in revenue.
- Specified requirements for a "big data" and mobile analytics platform at RIM by conducting market research, reviewing privacy best practices, and driving a solution set across development teams.
- Planned and executed the launch of BlackBerry Analytics Service 1.0; wrote marketing collateral, coordinated documentation updates, created a presentation for a conference session on the product.
- Designed a new customer support strategy: determined key benefits, created a model forecasting financial impact, and pitched an idea for a phased approach, beginning with an A/B test pilot to quantify loyalty and word-of-mouth impacts. Collaborated with a mobile carrier to carry out the pilot.
- Validated a tiered-pricing model: constructed detailed data-driven assumptions to build a financial model and presented results to C-level executives.
Programmer II2004 - 2007Ubisoft Entertainment
Technologies: C++, C#
- Created a system to produce interactive cinematic sequences which provides a high level of control to level designers, while remaining easy-to-use. This became part of the Anvil game engine that is used as a basis for many next-generation games at Ubisoft.
- Designed and implemented a system which manages the distribution of people in each of the cities in the game.
- Managed the technical design and implementation strategies for all investigation and mission structure features of the Assassin’s Creed video game.
- Coached the junior programmers on my team, acting as a technical reference.
- Solved twice as many bugs as any other programmer on my team—significantly contributing to the high quality and on-time delivery of our products.
Software Engineer2002 - 2004Electronic Arts
Technologies: C++, Java, Perl
- Designed, programmed, and debugged all aspects of a presentation for the video games NBA Live 2004/5 and March Madness 2004/5, including cameras, replays, cutscenes, audio logic, and transitions.
- Redesigned a replay system to use 1/3 the memory, and allow for continuous rather than frame-based playback.
- Rewrote a pipeline for the cutscenes—reducing the build time from two hours to three minutes and improving the workflow for animators.
- Re-engineered the animation pipeline for NBA Live 2003 to work with a new animation technology; isolated and fixed various issues with animation data.
- Created tools for animators and sound designers.
- Root and Branch (Development)https://itunes.apple.com/ca/app/id1093262997
• An iOS app for hikers that includes maps of trails, elevation, and other natural features
• It provides a hiking safety service that will notify emergency contact of your route and last known position.
- Bike Maps (Development)https://itunes.apple.com/ca/app/id548416551
• An iPhone/iPad app that shows bicycle routes, lanes, and trails everywhere in the world, including turn-by-turn voice navigation and ride tracking
Note: This is a paid app, but if you'd like to check it out, I can provide promo codes to download it for free.
- MEC | Mountain Equipment Co-op (Development)https://itunes.apple.com/ca/app/id573282599
• An eCommerce app for outdoor gear.
• I've worked as the sole developer on this project since July 2016.
- Conexus (Development)https://itunes.apple.com/ca/app/id529989186
• I implemented the "Find Us" map screen and ATM location functionality for this credit union app.
LanguagesSwift, Objective-C, C++, Python
FrameworksUIkit, MapKit, Core Location
Libraries/APIsREST APIs, MapBox iOS SDK, Google Analytics API
ToolsXcode, Sketch, Photoshop CC, Crashlytics
ParadigmsAgile Software Development
StorageRealm Database, PostgreSQL
- Master's degree in Business Administration (MBA)2007 - 2009Rotman School of Management - Toronto, ON, Canada
- Bachelor of Science degree in Computer Science1997 - 2002Simon Fraser University - Burnaby, BC, Canada