Full-stack developer · Team leader · PhD ·
Glasgow, Scotland
I can work remotely or in the Glasgow area. I’m not able to relocate at
this time.
-
Right now I mostly use TypeScript and JavaScript—browser,
Node and edge functions.
-
I'm also experienced with Swift, Kotlin, Python,
C/C++ and Java.
-
I’ve developed for macOS, iOS, Android,
Windows, Linux and the web.
- Experienced with OpenGL / ES / WebGL for 3D.
I do full-stack development: native client, web, back end, build system,
testing. I love working directly with users to solve their problems, and
to make apps they love to use! I’ve worked on videogames, health tech,
fantasy sports, TV and web advertising, web browsers, embedded operating
systems, digital radio receivers, and educational software; on my own, in
teams large and small, and managing teams.
Freelance software development
Since 2013, I've run a solo business in between full-time roles, trading
as More Please!
I've built and launched several mobile games with independent games studio
inkle (Cambridge, UK). I
continue to maintain these games and update them for the latest versions
of iOS and Android.
Web-based project (from Oct 2022, launch TBD)
-
UI and server code for the whole project (TypeScript, three.js,
Python)
Sorcery! 4 (launched Sep 2016)
- Added adaptive camera system
- Simultaneous release on all platforms and stores
- Built new backend server, managed seamless migration
Sorcery! 3 (launched Apr 2015)
- Extended UIKit emulation layer to PC and Mac
- Simultaneous release on all platforms and stores
80 Days (launched Dec 2014)
- Android port using Sorcery! framework
Sorcery! 2 (launched Jun 2014)
- Android port, reusing existing iOS code
- Collected and edited ambient audio
Steve Jackson’s Sorcery! (launched Mar 2014)
- Android port, reusing existing iOS code
- Built environmental sound system
- Rewrote 3D game map, ported back to iOS
Full-time professional experience
Nye Health (2021–2022)
Personal highlights
-
Spurred by COVID, made the jump from fantasy football to a health
tech startup.
-
Learned about major health problems affecting the world (notably
Alzheimer's) We weren't able to solve them, but we tried!
Lead mobile developer
- New home screens and API upgrades
-
Dynamic data system for feature flags and out-of-band UI updates
- App integration with NHS login (OAuth)
- Contributed to product discovery and user research
FanDuel Group (2018–2021)
Personal highlights
- Made iOS developers happy with a 10x build speed improvement.
Software Engineering Manager (Jun 2020 – Feb 2021)
- Line manager for 4 software engineers
- Frontend A/B tests and cross-product promotions
- Embeddable notifications inbox for Sportsbook app
Senior Software Engineer (Jul 2018 – May 2020)
-
Built “Discover” and “Referral Center” screens in Android DFS app
- Drove performance and stability improvements on Android
- Helped integrate GeoComply into Sportsbook app (React Native)
Google UK (2006–2013)
Personal highlights
- Promoted to Senior Software Engineer.
-
Learned Google-style big data techniques, TV delivery systems,
Android internals.
-
Helped work around launch-blocking flaws in the first-gen Nexus 7.
Ads Effectiveness Research (Jan 2012 – Jul 2013)
- Designed secure data warehouse for opt-in ads experiments
- Built statistical model for reweighting population samples
Android (Aug 2010 – Jan 2012)
-
Chrome for Android: speed and stability improvements, GPU
acceleration
-
Android web browser: helped replace legacy HTTP stack with the
Chromium stack
AdSense for TV (Oct 2006 – Aug 2010)
-
Designed and built code and workflow for managing all TV metadata
- Contributed to TV ad impressions forecasting and measurement
- Built our first project dashboard
RadioScape PLC (2001–2006)
Personal highlights
- Learned software defined radio and DSP techniques.
-
Worked on the full embedded stack: hardware, firmware, software.
- Mentored a team member writing a 128-byte boot loader.
Team Leader (Feb 2006 – Oct 2006)
-
Led a team of 10 engineers working on multi-standard digital radios
-
Led feasibility study for mobile TV, designed initial architecture
- Designed and built Electronic Programme Guide viewer
Principal Software Engineer (Oct 2004 – Feb 2006)
-
Integrated multiple digital radio stacks on a single C5509 DSP
Senior Software Engineer (Jul 2002 – Oct 2004)
-
Designed and built extensible radio manager to handle feature
interactions
- Designed and built station database for high-end receivers
-
Designed and built PausePlus feature for mass-market DAB receiver
Software Engineer (Jan 2001 – Jul 2002)
-
Worked on runtime and simulator for Communications Virtual Machine
Education
PhD (Computer Science), University of York (1997–2000)
-
Scoped coordination in open distributed systems. In
Proceedings of the 4th International Conference on Coordination
Languages and Models (Coordination 2000), pp 311–316.
-
Coordination with Scopes (with Alan Wood). In Proceedings of
the 2000 ACM Symposium on Applied Computing, ISBN 1-58113-239-5,
Volume 1, pp 210–217.
BSc Hons (Computer Science), University of St Andrews (1993–1997)
- Class medal for Mathematics (1994)
- Class medal for Computer Science (1995 and 1996)