Software and AI engineer in London. First-Class Computer Science from Greenwich, then a summer at Cloudflare.

Open to software and AI engineering roles

Move your cursor through the field

Dissertation, 2025 to 2026

Does a newspaper’s reputation tell you how biased its articles are? Only about half the time.

54.6% of articles leaned the way their outlet’s reputation predicted. Each square is 1% of articles.

I built a model that reads a UK news article and detects its political bias. It runs as a Chrome extension backed by an API, trained on 4,523 articles from 9 outlets.

Macro F1 on a 291-article gold set

My model0.847
VADER, a common baseline0.293
Accuracy
0.849
Brier score
0.109
Outlets
9
  • Recommended for academic publication. A paper is in preparation with my supervisor.
  • One of 10 Computer Science students chosen to present at the Digital Shark Expo 2026.

How it fits together

  1. 4,523 articlesCollected from 9 UK outlets
  2. Two modelsFine-tuned RoBERTa against a Linear SVM
  3. SVM shippedBest accuracy for what it costs to run
  4. FastAPI serviceOne /analyse endpoint
  5. Chrome extensionScores the article you’re reading

Technical Support Engineer Intern, Cloudflare, July to September 2026

A summer on Cloudflare’s Premium and Enterprise cases.

Hover a layer to launch an attack

0 attack packets blocked

Based on an attack-and-defend lab set by my manager: I reproduced DDoS attacks at layers 3, 4 and 7 on DigitalOcean VMs, then defended against them with WAF rules, SSL/TLS and Zero Trust.
  1. 60

    Premium and Enterprise cases resolved, through tickets and live customer calls across Cloudflare’s networking and security products.

  2. Built solo

    An onboarding tool for new hires: a wiki of hundreds of troubleshooting guides and past cases, linked to Cloudflare’s internal AI assistant through an MCP server that guides people to the answer.

  3. 1 of 50

    Teams in the company hackathon, across EMEA, North America and APAC. We built an on-page AI assistant on Workers AI that restyles any website on request.

  4. On call

    Joined the PagerDuty rota. Traced root causes with shell scripts, Python and networking tools, and escalated confirmed bugs to engineering with reproduction steps.

  5. Shout-out

    Recognised company-wide at the end of the internship for supporting the team and joining high-priority customer calls.

Machine learning, distributed systems and a team I led.

0.5 0.75 1.0 chance Random Forest 0.661 LSTM 0.687 AUROC, higher is better

Early sepsis prediction

Python, PyTorch, scikit-learn, pandas

An LSTM trained on 5,044 ICU stays that beat a Random Forest baseline at predicting sepsis early.

Click the coordinator to take it offline

Distributed chat system

Java, sockets, JUnit

Fault-tolerant chat with coordinator election. Tested with 20 live clients on 4 laptops and 100 scripted clients, delivering every message.

reflection bridge Kotlin Scala SQLite team of 3

Event planner, team lead

Kotlin, Scala, SQLite, JDBC

Led three developers. Designed the SQLite persistence layer and a reflection-based bridge between Scala and Kotlin.

Every tool here has been used on real work.

Tools and the projects they were used in

The last two years, at a glance.

I like taking things apart to see how they work.

  • My own DNA

    Collected and unpacked my own DNA data, digging into less-covered European regions.

  • Automating chores

    I write tools for long, boring tasks, like a bulk exporter for Snapchat Memories.

  • Smart watering

    A smart watering system for plants, built on a Raspberry Pi.

  • AR glasses

    A pair of augmented-reality glasses, also built on a Raspberry Pi.

  • Debate Society

    Argued both sides of motions, and joined Q&A sessions with serving MPs and UN representatives.

  • Guest speaker

    Giving talks to Data Science master’s students at Greenwich on landing internships, and helping with their dissertations.

Let’s talk.

GitHub LinkedIn CV