J.P. Morgan

I worked on J.P.Morgan’s eXecute FX trading app, a mixed-language Objective-C and Swift project. I also contributed code used in all other apps in the organisation via their shared code library.

From the beginning of 2019 I led eXecute’s 3-strong developer team. During this time I architected, helped to implement and oversaw delivery of new functionality allowing trading in a new-to-mobile asset class. This involved liaising with the product owner and other technical teams to ensure that requirements were clear, dependencies were resolved and blockers were resolved. I also mentored the more junior developers, promoting best practises such as: writing testable code using SOLID principles; UI testing and use of automation.

Poker Log 

Sadly no longer online

Poker Log was a personal project which I used to teach myself both the Swift programming language and some new APIs introduced in iOS8.  While making a useful productivity app for poker players, in order to learn I tried to fit as many relevant frameworks as possible into the app.  Among other technologies, the app uses App Groups, Core Data, Core Location, MapKit, iCloud, Size Classes and a Today Extension

Clydesdale Bank

As part of the launch of Clydesdale’s new mobile banking app, I added TouchID login to their iOS app which is used for their Clydesdale, Yorkshire and B brands.  I have also delivered a number of smaller features including app login using personal details and using the app as a security token for high value payments.


I helped to deliver an iPad experience for the iServe “till in your pocket” app.  Working with the existing team of in-house devs my task was to decouple the app’s business logic from the UI and improve code reuse while creating the UI for the iPad.  As a result of the decoupling of business logic from view code we were also able to significantly increase unit test coverage.

Sage One

Working on a greenfield app with a small team, I was involved in the choosing and configuring of our CI and testing environment almost as much as I was cutting code.  I configured Jenkins to selectively build branches from our git repo, run unit & UI tests and distribute the app.


Working as part of a small team, our task was to completely redesign and rewrite the UI layer of this complex chat-based iOS application.  The redesign used Storyboards and Auto Layout in contrast to the programmatically generated UI which preceded it.  This meant learning new skills using Auto Layout & constraints while still working with UI using frames, springs and struts.

The core functionality of the app was contained in a legacy cross-platform C++ (Objective C++) core.  This required me to develop C++ skills in order to understand and modify the complex codebase.


Sadly no longer online

I was the sole iOS developer on the iOS, Android and Web product Reactn.  I helped to work with the other devs to design the RESTful API which this app used communicate with its backend.  My main role was to iteratively add and improving features while responding to the customer’s feedback and evolving requirements.

Open Face Chinese Poker

Sadly no longer online

I was the creator, owner and sole developer of this iPhone, Web and Android game.  The game was developed using Adobe Air to make iteasy to quickly develop for multiple platforms and all three clients shared a common ActionScript codebase.  The server component was written in C# using the (now Yahoo Games Network) SDK.