Daniel Thorpe PhD, BEng Hons

Daniel Thorpe PhD, BEng Hons

I am an engineer with over 12 years software development experience. My expertise in Swift and iOS development is extensive. I started writing Objective-C using Core Data in 2005 on OS X Tiger, and have been developing predominately with Swift and SwiftUI since their announcement. I have build 3 production apps entirely in SwiftUI, most recently using The Composable Architecture (TCA) and modern Swift concurrency.

Open Source Contributions

In total, to date, my open source frameworks have had over 1 million downloads and are used in ~4,500 apps.

Swift-Networking is a SPM library which I started in June 2022 to create a composable, functional networking library using modern Swift concurrency. Although not widely adopted or recognised, it is fully featured yet lightweight and highly adaptable.

ProcedureKit is a Swift framework offering rich and powerful classes for using Apple’s (NS)Operation classes. The project was actively developed between June 2015-2019. At its peak, ProcedureKit was used in over 1000 apps, including ASOS, LinkedIn, SkyQ/Go, Check24 and SquareSpace. It’s had ~500,000 downloads, and 28 contributors.

danthorpe - Overview
danthorpe has 51 repositories available. Follow their code on GitHub.

Professional Experience

Senior iOS Engineer, Global Relay,  May '22

I joined to build a new search feature in the Global Relay messaging app. The app is predominately built by teams in Vancouver, but this new feature was a green-field project developed by a small team in London. I was the 2nd iOS engineer, and helped to hire 2 additional developers. I advocated to adopt SwiftUI with TCA and structured concurrency from the start. SwiftUI enabled us to prototype and iterate on UI features quickly, while TCA unlocked a single-entry state driven architecture with exhaustive unit testing, feature composition, and dependency isolation.

Additionally, I developed a DSL for SPM which allowed us to maintain a “hyper-modular” package of dozens of targets within a single SPM library product. I have been a vocal advocate for best practices such as code linting (SwiftLint), formatting (swift-format), documentation (DocC) and code-generation (swift-gen), achieved by adopting Swift package plugins and pre-commit tools. I have helped refine the team’s process introducing, conventional commits with squashed linear git history, snapshot testing, feature specifications using Gherkin, and updating the Jenkins pipeline for faster CI with continuous delivery to TestFlight.

I have actively collaborated with backend teams to refine their JSON REST API schema. Furthermore, I drove the creation of a middleware API layer to align more closely with the front-end product requirements, and even created a demo gRPC prototype. I am ready to collaborate with Product and Design offering insight from Apple's HiG, or ready to prototype a fresh design from Figma as required.

Senior iOS Engineer, Vodafone Smart Tech, Oct 2021 - May '22

The Vodafone Smart Tech product offerings include GPS trackers, Bicycle trackers, and Neo a Kid's Watch. I joined Vodafone Smart Tech, to broaden my experience around Internet of Things (IoT) and Bluetooth Low Energy (BLE) devices. I worked on the accompanying iOS app for the Curve GPS bike tracker.

Lead iOS Engineer, ustwo, May 2020 - July '21

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, Feb 2019 - May '20

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, Dec 2017 - July '18

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 - Nov '17

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 - Nov '16

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

Education

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*)