Contact Me

Fun Projects

Software Developer

Specialisations: iOS application and framework developer / devops and tools developer

Location: Glasgow, Scotland.

I have a passion for programming, which means I am always willing to learn new things. My main focus has been on iOS applications, frameworks, tools and devops (with some additional experience in web apps and mobile games). My mix of specialisations gives me a unique view on design aspects and my reliability and punctuality ensures I will get the job done on time. I also have a talent that allows me to quickly understand and debug existing systems.

I have worked on many projects as a freelancer and I have worked in teams from as few as 2 people to as many as 15. Some of that time was as a Lead Developer, which allowed me to develop my delegation, mentoring and leadership skills.

PgDip Games Technology
BEng Hons. (2:2) Computer and Electronic Systems
5 SCE Highers (AABBB), 7 SCE Standard Grades

My main area of focus has been iOS applications and frameworks, tooling, continuous integration and delivery, with some experience in data and image processing and manipulation.

Objective-C, Swift
iOS Frameworks, Jenkins, JSON, XML, Restful APIs
Python, SQL, JavaScript, Groovy / Java, PHP
Bazel, HTML, CSS, NodeJS, Homebrew
Angular, C, C++, Ruby
Gradle, yarn, Maven, Cocoa Pods


Senior iOS Engineer
January 2023 - January 2024
Working on the client SDKs for the internal experimentation platform and the open source, external equivalent Confidence product. As the lead iOS developer responsibilities included implementing new features, bug fixing, writing tests, creating RFCs, documentation and making architectural decisions.

Contributions to the Confidence project via design and development of the client and provider SDKs for mobile and PHP, utilising the Open Feature standards.

Liaised with other teams to enable cross department projects and advise on usage of our SDK. Mentored colleagues and helped guide their development path.

J.P. Morgan
iOS Developer, Senior iOS Developer, Tech Lead & Line Manager
May 2017 - December 2022
iOS Developer: Main duties included bug fixes, maintenance and feature implementations for two iOS applications. Including development of features that require communication with web services, increasing unit test coverage, build automation and utility scripts.

Senior iOS Developer: Development and maintenance of frameworks used firm wide (including authentication and security). Providing support (including one on one sessions) for consuming developers. Building and maintaining tooling and CI/CD to support developers (facilitating adoption of firm wide standards).

Tech Lead & Line Manager: Leading the frameworks team in designing and developing new features, liaising with internal teams to discuss their needs, ensuring the team is working efficiently and effectively.

City FM
iOS Developer
June 2016 - May 2017
Development and maintenance of existing iOS applications. Including taking ownership of two existing applications and bringing them up to date with new, internal frameworks and generally improving the UI and UX of both applications. Other responsibilities included developing a statistics web service (displaying existing logging information in a user friendly way), helping identify trends and potential areas of improvement for the syncing service between the apps and the main web services.

Envoy International Ltd.
Lead Developer / Web Applications
September 2014 - January 2016

Contractor / Web Applications
February 2016 - April 2016
Lead Developer of a small team, creating web based applications for the IP Rights renewal service industry. Utilising PHP, PEAR, CPAN, HTML, JavaScript, AngularJS, Composer, Restful APIs and MySQL (with some minor use of Perl and Python).

Envoy Renewals (http://www.envoyrenewals.com)
Maintenance of existing system and redevelopment of invoicing system.

Envoy Client Direct (http://www.ip-renewals.com)
Portal for IP renewals, with data validation.

Delegate Instant (http://www.delegateip.com)
AngluarJS application for instant quotes. Connects to USPTO PAIR API.

Claymore Games
Games Developer / Designer
January 2006 - February 2016

Working in a small team of 2, we have developed several games, both self published and on a contract basis. All of which have utilised the majority of the languages and technologies listed above.

NeoArcade (Universal iOS, tvOS) (http://www.neoarcade.co.uk)
Utilising Game Center, ReplayKit, OpenGLES, Box2D physics engine, Objective-C custom engine. Android version is currently in development.

NeoControl (iPhone)
Companion app for NeoArcade. Use your phone to control the games on another device (iOS and tvOS). Using local WiFi to connect and transfer data.

Chock A Block (Universal iOS) (http://www.claymoregames.co.uk/cab)
Game Center, iCloud saves, Objectice-C custom engine, JSON for saving replays. Also includes a MySQL and PHP backend for game accounts (create, delete, friends, invites) and challenges.

Internal Motivational Game for Aviva (through Dinnis Design) (Web / Flash, AS3, Starling)
Programming and design (developing the concept into a game, which required representing risk and its rewards or consequences). Using ActionScript 3 and Starling.

Plum Crazy (Universal iOS) (http://www.claymoregames.co.uk/plumcrazy)
Game Center, Objectice-C custom engine, custom high score server (MySQL and PHP). Including porting and upgrading Primordial Soup to Objective-C.

Super Solitaire (J2ME) (http://www.claymoregames.co.uk/solitaire)
Created using J2ME, including a custom image processor that reduced overall image storage size and allowed palette switching.

Countdown (J2ME) (No longer available)
Programming, including any tools required, with some help during Q&A stages.

Ludometrics Ltd.
Various Dates

Bodycheck (PSVita) (LUA, C#, C++) (http://ludometrics.com/game/bodycheck/)
Co-programmer on a speedball inspired 3D game for the Playstation Vita. Game is being built using the BitSquid engine, which utilises LUA and C#. Majority of my work was centred on the first pass of the A.I., as well as the UI and Leaderboard system. Initial prototype was developed using Sony's C++ Fyre engine.

Bips! (Facebook Game) (AS3, Starling) (http://ludometrics.com/game/bips/)
Co-programmer, with main tasks involving tools and UI development. Using ActionScript 3 with Starling and Player.IO (now Games Platform Company).

Aarkid Ltd.
Lead / Technical Programmer / Web Developer
August 2007 - September 2010

3D-Standards (GWT, PHP, MySQL, Hibernate, Java) (No longer available)
Design and development of a 3D web application to help sellers of Display Stands visualise their layouts and show their customers how they will look before purchasing.

Sub-Projects (based on the 3D-Standards application):
Skytron (3D Operating Room sales tool)
VTS Medical (3D Operating Room control tool)

Stanley Vidmar (PHP, HTML, CSS, Java) (No longer available)
Design and development of a 3D visualisation tool for Stanley Vidmar's range of tool cabinets and workbenches. Included exporting a PDF with extra information.

Various 3D Presentations (PHP, Java) (No longer available)
Programming of various 3D product presentations.

Picsel Technologies
Software Engineer
June 2006 - August 2007

Smart Office (J2ME variant, J2SE, Tomcat, Maven)
Variant of the Smart Office product that was used to create and publish e-magazines. Included a large server side component, which involved heavy use of J2SE, including a Flash to Java converter.

Pricerunner (J2ME) Mobile version of popular price comparison website (No longer available)
Shared responsibilities of programming, which included developing a protocol for downloading large quantities of images and text and displaying them in a usable, easy to navigate format.

Altachorvie (Website)
Hotel website, with booking capabilities. Custom Wordpress skin, with bespoke plugins.

Pilots Direct (Website)
Job website for Pilots. Development of site, with Drupal CMS.

Car Mag F1 [Android] [iOS]
Mobile app for South African Formula 1 website. Built using PhoneGap. App was already in development before I took control and rebuilt the app to fit the customer's needs.

Dinky Dino Games
Games Developer / Designer
February 2004 - January 2006

J2ME projects:
Various Puzzle Games

Rockpool Games
Games Developer
December 2004 - June 2005

J2ME projects:
WWE: Raw

DC Studios (now Firebrand Games)
Games Developer / Technical Producer
June 2004 - December 2004

J2ME projects:
Worms Forts: Under Siege,
I, Robot (Movie franchise),
Ice Age Skater