We equip companies with intelligence systems — machine learning models, data pipelines and AI tooling engineered to work in the field, not just in the lab.
Field-ready systems, not slide decks. Every engagement ships working software with measurable impact.
Neural networks for vision, sequences and structured data — trained, fine-tuned and evaluated properly.
The core machine-learning toolkit, applied with statistical rigour rather than black-box defaults.
High-frequency system design and trading architecture: low-latency pipelines from market data ingestion to execution, built and tested against real microstructure.
Before any model: understanding what the data actually says, and whether it can be trusted.
The plumbing behind the models: pipelines, distributed compute and clean data you can trust.
Classical statistical machinery for quantifying uncertainty and making decisions you can defend.
The academic foundation behind the work.
Imperial College London
RANKED 1ST IN EUROPE · 2ND IN THE WORLD
Swiss Federal Institute of Technology, Lausanne (EPFL)
RANKED 6TH IN EUROPE · TOP 20 IN THE WORLD
Selected applied research and engineering projects — real data, real results.
Contextual (LinUCB) and sliding-window (SW-UCB) bandit algorithms trading hourly across BTC and two altcoins on Binance data, choosing between long and short positions each hour. The contextual policy adapted to regime changes and finished well ahead of every buy-and-hold baseline over the three-month test window.
Trained image classifiers to identify which of 50 artists painted a given work, on a dataset of 8,683 paintings. A fine-tuned ResNet-18 more than doubled the accuracy of a from-scratch CNN baseline, reaching 92% top-3 accuracy on the held-out test set.
End-to-end exploratory analysis of 2,165 London schools: data cleaning and missing-value treatment, then geospatial and statistical exploration linking attainment to deprivation indicators — free-school-meal rates, income and employment scores — across all 33 boroughs.
Gradient-boosted models classifying four levels of cognitive status — from normal to dementia — trained on 200k+ US clinical visit records. The models were then externally validated on an independent Latvian patient cohort, with SHAP explanations and calibration analysis to make predictions clinically interpretable.
Master's thesis: the Flims–Laax–Falera resort rebuilt as a directed multigraph from OpenSkiMap data, with an agent-based simulation of thousands of skiers — beginners to pros — flowing through lifts and pistes in one-minute ticks. Used to analyse per-lift queue formation and test a wait-aware lift recommender.
A full unsupervised-learning study: dimensionality reduction with PCA, clustering, and independent component analysis to separate mixed source signals — recovering the underlying components from their blended observations (the classic blind source-separation problem).
Bayesian decision theory and inference: deriving optimal estimators under asymmetric loss, then building a Gibbs sampler for a Gaussian mixture to infer cluster assignments and produce a full posterior predictive density over new data.
Recurrent (GRU) models predicting the next item a shopper clicks, trained on the YOOCHOOSE dataset of millions of e-commerce sessions. Included full exploratory analysis of session and click behaviour plus systematic architecture and hyperparameter studies.
Off-policy evaluation and control on a six-state ODE simulator of HIV dynamics: importance-sampling and weighted-IS estimators for policy value, hypothesis testing across state–action pairs, and an optimal treatment policy computed by backward-induction dynamic programming.
Variational Bayesian matrix factorisation for movie-rating prediction, implemented as distributed MapReduce and PySpark jobs — coordinate-ascent updates over the full ratings matrix.
Estimated treatment effects in partially linear models, comparing polynomial regression, cubic splines and a random-forest orthogonalisation approach to recover the linear coefficients under non-additive confounding.
Products, games and engineering beyond the models.
A live travel-planning product: destination guides with day-by-day itineraries, a visa checker for any passport, climate charts powered by our own FastAPI climate service, a trip finder quiz, interactive world and scratch maps, airline info and a travel blog. Visit plantrip.travel →
A complete Pacman built in Java as a two-person team: ghost AI with per-difficulty pathfinding, four difficulty tiers that scale over time, menus, options, a persistent leaderboard, camera smoothing and shake, glow effects — plus a hidden EPFL bonus level.
A playable Java implementation of the classic rail-adventure board game on the Swiss map: route claiming, ticket objectives, full game logic and an interactive interface, built as a semester-long software engineering project at EPFL.
A polished iOS arcade game built in Swift: survive waves of incoming projectiles across a 50-level story mode spanning 5 worlds with boss battles, plus daily challenges, an in-game store with 82 items, accessibility options and full App Store packaging.
A marketplace connecting athletes with sports coaches — find coaches, book sessions, manage your training. Built with Next.js and TypeScript; currently in development.
Physics work from EPFL: simulating magnetic bead chains in a gravitational field by minimising dipole–dipole interaction energy (Nelder–Mead optimisation), and computing magnetic moments of dipoles from Gauss-meter field measurements.
Tell us what you're trying to achieve. We'll tell you — candidly — whether machine learning is the right gadget for the job.