// maths × code × markets

I build ML systems from scratch — then I build products with them.

Computer Science & Mathematics student at the University of St Andrews. Currently deep in neural networks, options volatility, and shipping full-stack apps with production-grade tooling.

matthew@standrews — zsh

$

$ featured work

all projects →

LetMeCook!

product

Co-founder & Backend Developer · letmecookonline.com

A deployed cooking web application. I designed and built the Express.js REST API: authentication with JWT, user profiles, dietary preferences, recipe-generation workflows, and image uploads backed by AWS S3. Also contributed to the Next.js frontend and collaborated through Git/GitHub.

  • Express.js
  • Node.js
  • JWT
  • AWS S3
  • Next.js
  • REST APIs

micrograd

ml / from scratch

Autograd engine built from scratch

A scalar automatic-differentiation engine with dynamic computation graphs and reverse-mode backpropagation, implemented from first principles in Python. Covers the chain rule, gradient flow, and a small neural network library trained on top — no PyTorch, no shortcuts.

  • Python
  • Backpropagation
  • Computation graphs
  • Neural networks

tips-regression

ml / from scratch

Regression study with honest evaluation

A small regression study on the classic tips dataset, built around disciplined evaluation rather than model complexity. Every model is scored against a dummy baseline, compared under 5-fold cross-validation with leak-free preprocessing pipelines, and judged by paired fold-wise differences — which show that no richer feature set beats the single-predictor model once fold variance is accounted for.

  • Python
  • scikit-learn
  • pandas
  • Cross-validation
  • Jupyter

makemore

ml / from scratch

Character-level language models, step by step

A series of character-level language models of increasing complexity: from bigram-count baselines to multilayer perceptrons with learned embeddings, built in Python and PyTorch. Focused on what actually happens inside a language model — loss surfaces, initialization, activation statistics — rather than calling a library.

  • Python
  • PyTorch
  • Language models
  • Embeddings
  • MLPs

status: open to opportunities

Looking for a software engineering/quantitative finance internship

Backend, full-stack, or ML-adjacent — I care about understanding systems down to first principles and shipping work that holds up in review.

get in touch