I am an engineer with over 10 years experience developing for Apple’s platforms. My expertise in Objective-C, Swift, Cocoa and iOS development is extensive. I started writing Objective-C using Core Data in OS X Tiger, and started Swift immediately after its announcement, and have since been developing predominately in Swift.
Open Source Contributions
In total, to date, my open source frameworks have had over 1 million downloads and are used in ~4,500 apps.
ProcedureKit is a Swift framework offering rich and powerful classes for using Apple’s Operation classes. The project started in June 2015 and has progressed steadily in terms of features, code quality, documentation, contributions and adoption. ProcedureKit has been used in over 1000 apps, including ASOS, Linked.In, Sky, Check24 and SquareSpace. It’s had ~500,000 downloads, and 28 contributors.
Senior iOS Engineer, Vodafone Smart Tech, October 2021
I joined Vodafone Smart Tech, to broaden my experience around Internet of Things (IoT) and Bluetooth Low Energy (BLE) devices. The Vodafone Smart Tech product offerings include GPS trackers, Bicycle trackers, and Neo a Kid's Watch.
Lead iOS Engineer, ustwo, May 2020 - July 2021
I joined The Body Coach team as the project entered the build phase. The app is a digital experience of Joe Wick’s 90 day plan. I helped to build out much of the app’s features, from account creation, onboarding, training sections, video player, user profile and homepage. I also helped drive the adoption of reusable and configurable SwiftUI components, which were powered by Combine based services and stores.
At its peak the team grew considerably, to 6 iOS developers working in parallel streams, all fully remote. We maintained consistency through the codebase thanks to constant communication, continuous integration, and incremental delivery. This work culminated in a feature packed release in December 2020.
Following the initial release, I worked extensively on subscriptions, building out support for free trials and subscription offers.
Lead iOS Engineer, ustwo, February 2019 - May 2020
I joined ustwo to work on Project Pulse, a startup backed by a major global bank. The project is an app for SMEs melding open banking, accountancy software and machine learning. I built the iOS application to closed beta stage. This included the user on-boarding flows, including open banking flows and the initial product feature: smart invoicing.
Senior iOS Engineer, Telegraph Media Group, October 2018 - February 2019
I joined TMG to deliver the new Digital Edition iOS app. The work has involved a significant amount of teaching to train TMG’s current iOS developers in modern Swift and engineering practices. The app’s design has prioritised a simple, maintainable and testable architecture.
Mobile Tech Lead, New Look, December 2017 - July 2018
New Look is a high-street fashion company, which has historically outsourced its technology to 3rd-party suppliers. They contracted me to lead an internal team, tasked with taking control of their mobile product from TigerSpike, an agency. To achieve this, I formed a 10 person team, and provided the technical direction for iOS and Android. I migrated tools (VCS & CI) and personnel from TigerSpike’s to New Look’s control. In February, New Look were able to end the agency engagement; in March, we released the major version of their application which the organisation had started 9 months previously. The team is now in a position to provide continuous delivery of new product features while removing technical debt, and increasing test coverage through UI automation. The focus has been to reduce complexity through simple abstractions, and writing easy-to-read and maintain code.
iOS Engineer, ustwo, June 2017 - November 2017
I joined ustwo as part of a 4 person iOS team within a larger 12 person mobile team. The product was a connected car app for Jaguar Land Rover, a major British automotive firm. The iOS app had a clean protocol orientated architecture using modern MVC patterns, reactive programming and socket based networking. In particular I worked on features such as remote engine start for climate control, door unlock and stolen vehicle support. Additionally I did significant work evolving the BDD test architecture to eschew 3rd party frameworks in favor of Apple’s XCTest.
Lead iOS Engineer, Sky UK, January 2016 - November 2016
I began contracting at Sky as the lead of a 10 person iOS team building the iPhone version of their new flagship product: Sky Q. In April 2016, I began to provide broader technical leadership and direction within the connected devices division. Largely this has been through increased communication with managers and other team’s senior developers. This effort has created a structured process for design, development and testing of features. Additionally, I have advocated for, and helped deliver improved CI tooling and process automation. The project supported almost 40 iOS developers at its peak to deliver two distinct product propositions (SkyQ and SkyGo) in multiple markets from the same codebase.
Independent Contractor, Open Source contributor, May 2015 - December 2015
After building an app in Swift, I wanted to share some of my techniques with other developers. During this period I created the open source projects discussed above. Additionally I also began contracting for some small clients, primarily working on customer relationship management applications for enterprise using CloudKit.
Software Engineer, Yakatak, June 2014 - May 2015
I joined Yakatak, a 10 person sports-data startup, to build their social messaging app revolving around live sports data, news and sticker messaging. I designed and built the app from scratch in Swift 1.0. The networking layer uses web-sockets with Thrift protocols with promise-based higher level APIs. Beyond UIKit, the app also featured a rich in-app sticker store utilizing StoreKit and UIKitDynamics.
iOS Lead, Badoo, January 2013 - June 2014
After three months at Badoo, I was promoted to iOS Lead and responsible for all iOS products. In this role I made significant enhancements in key areas. I improved the development and testing process to support branches, automation and continuous integration. I developed real-time app performance metrics and displays. This gave the team rich and direct feedback on their work. Most importantly, I fostered a diverse team culture of technical excellence and best practices. This organically led to an ethos of test-driven development, architectural review, pair-wise programming and open-source contributions. In turn this allowed us to engineer a platform infrastructure on top of which new applications (Hot or Not & Bumble) have since been created.
iOS Developer, Badoo, October 2012 - December 2012
I joined the 8 person iOS team to develop the iPad version of Badoo.
Technical Founder, 300 Notes, June 2012 - October 2012
I built the MVP for an iPhone app for the Primrose Hill area. The app is novel in that it forms an exclusive location based social network for a community. We demonstrated the app to locals in August 2012.
Mobile Platform Developer, BraveNewTalent, October 2011 - May 2012
I joined BraveNewTalent to design and develop the social network's native mobile apps and API.
Founder, Blinding Skies Limited, August 2009 - August 2011
My first app, You Owe Me originally for the Mac was released for iPhone in June 2011. The app enabled its users to record financial transactions that they make within a group.
R&D Engineer, Artistic Licence, full-time January 2010 - August 2010, + sporadic client work
School of ECS, University of Southampton, October-March 2005/06/07
IAM Group, School of ECS, University of Southampton, Summer 2004/05
University of Southampton, Doctor of Philosophy, 2009
My PhD, titled On Shape Mediated Analysis of Spatiotemporal Phenomena, focused on predicting the future activity of any space-time varying phenomenon that occurs naturally, such as forest fires or the nation-wide incidence of influenza. This was achieved using computer vision, image processing, pattern recognition and statistical models.
University of Southampton, 2005
BEng Electronic Engineering 1st Class Hons
Trinity School, 1992 - 2001
A Levels in Electronics (A), Maths (B) and Physics (B).
10 GCSEs including Maths (A), Physics (B), Chemistry (B), Biology (B), English Language (A*) and Literature (A*)