Portfolio

Research

Good Enough? Quantised LLMs on a Laptop

A controlled study of five open-weights 7–9B models, quantised to run on a MacBook, against a Claude Opus 4.6 baseline. 1,500+ scored responses, two independent judges, four task categories. The frontier-vs-local gap turns out to be task-dependent rather than uniform — and Qwen 2.5 7B displaces Llama as the Pareto-optimal local choice.

llama.cppQwen 2.5Llama 3.1Gemma 4GLM-4DeepSeek-R1Apple SiliconLLM-as-judgePython
Case Study

Spec-Driven Development: IsoHome

A weekend experiment in spec-driven development — starting from a dictated brief and structured specs, Claude Code produced IsoHome: an isochrone mapping tool that combines real train timetables, drive-time polygons, and weighted desirability layers to find ideal places to live within a given commute of London.

spec-driven-developmentisochronesgeospatialcloudflare-workersr2mapboxtanstack-querypythonreact
Research

Overview of Academic Research Papers (Materials Science)

What started as a lucky summer internship measuring piezoelectric films at Cranfield University evolved into a full research career — from clean rooms and supercomputers to published papers in the Journal of Physics and IEEE, a US patent, and even a serendipitous reunion with the BBC scientist I'd written to as a child. None of it would have happened without the generosity of mentors like Roger Whatmore, Steve Wilson, and many others who showed me the ropes.

researchmaterials sciencecomputational physicsnanotech
Experience

Petabyte-Scale Ad Bidding Infrastructure

Led the engineering team behind Marin Software’s real-time bidding platform — computing intraday bids for 6B+ objects on a 400TB Hadoop cluster, overhauling the ML clustering algorithm to deliver a median 15% campaign performance uplift.

sparkscalahadoopmachine-learningbayesian-inferencecausal-impactadtechbidding
Experience

Scaling a Global Analytics Function from One to Fourteen

Built Marin Software’s analytics function from a single analyst to a 14-person global team across six offices, creating an internal Django platform that served 12,000+ reports per year and drove $1.8M in annual efficiency gains.

pythondjangosqlbashanalyticsteam-buildingautomation
Experience

Running Engineering Teams Across Time Zones

Managed a distributed engineering team across San Francisco, London, Shanghai, and Pune — inheriting a demoralised group, rebuilding direction through a team summit, and learning what actually works (and doesn’t) for remote team cohesion.

remote-leadershipengineering-managementteam-buildingdevopslookerokrs
Project

BNG Metric Matrix Processor v0.2

Process Biodiversity Net Gain (BNG) Metric Excel files and generate habitat transition matrices

PythonBNGBiodiversityData Processing
Project

ML-Powered Budget Allocation

Designed the algorithms behind an ML forecasting and constrained optimisation system that automated ad spend allocation across $78M+ in annual budget for 32 customers.

Pythonscikit-learnMulti-Output RegressionConstrained OptimisationAmazon QuickSight

Background

I started in physics — an MPhys in Physics with Theoretical Physics at Manchester, where I spent as much time writing computational simulations as I did working through the theory by hand. That led to research at Cranfield, sponsored by TDK, building nanoscale piezoelectric resonators: computational materials science on supercomputers, clean-room fabrication, finite element modelling, and enough time with scanning electron microscopes to last a lifetime. The research produced published papers in IEEE and filed patents, but what stuck most was the habit of thinking from first principles — understand what's underneath before you decide what to build on top.

From there I moved into the commercial world. A business analyst role at AOL Advertising became a career in search engine marketing, analytics, and eventually data science and engineering leadership. At Marin Software I spent over twelve years progressing from Analytics Manager to Global Director of Analytics to Director of Engineering (building and scaling a 14-person global analytics function) — a trajectory that tracked the industry's own shift from reporting to data science to machine learning to platform engineering. From there I spent some time honing my skills in causal measurement for a Group-M agency, before returning to Marin, where I designed ML-powered budget optimisation managing $78M+ in annual ad spend, and operated at petabyte scale computing intraday bids for 20M+ objects using Spark and Scala.

I've been in leadership roles since 2006 — twenty years of building teams, coaching people, making architecture decisions, and being accountable for the outcomes. I moved to San Francisco for several years to lead a term, before returning to London to continue my career. I've led teams across Tokyo, Singapore, Pune, Hamburg, London, Dublin, Chicago, New York, and San Francisco. Currently I'm Head of Engineering at Great Yellow, where I'm building the company's first digital platform from scratch: data infrastructure to make regenerative land use investible and scaleable, built on Cloudflare Workers, D1, and R2. The work sits at the intersection of environmental science and software engineering, which suits the way I think: across domains, not within them.

Work with me

Alongside my role at Great Yellow, I'm available for advisory work. I help early-stage companies and research teams make technical decisions they won't regret — choosing the right architecture before you've hired your first engineer, evaluating whether an AI approach will actually work for your problem, or untangling a codebase that grew faster than the team's ability to reason about it.

What I bring:

  • Twenty years of leadership across analytics, data science, and engineering
  • Architecture and technology selection for early-stage products
  • Data and AI strategy — from feasibility through to production
  • Honest assessment of what you should build, buy, or leave alone

I'm not a consultant who writes a report and leaves. I work alongside your team, review code, talk to your engineers, and stay accountable for the outcomes.

If that sounds useful, get in touch.