Selected work

Projects

Panacea

2025 - 2026

A healthcare platform for booking appointments across separate doctor and patient views.

  • Led a team of 5 building Panacea, a healthcare platform, handling architecture decisions and sprint planning
  • Managed the team's Git workflow, resolving merge conflicts and reviewing PRs to keep the codebase stable
  • Built multi-user authentication and an appointment booking system so patients can search for and book with doctors across separate doctor and patient views
  • Integrated article APIs and migrated the backend from SQLite to PostgreSQL on Neon, deploying on Railway
  • Wrote unit tests with JUnit to validate core booking and authentication logic
  • Ran end-user testing with 10 participants, finding usability issues for future iterations
  • Java
  • JavaFX
  • PostgreSQL
  • Maven
  • Git

RDF Query Language Interpreter

2026

A domain-specific query language for RDF graphs, interpreted in Haskell.

  • Designed and implemented a domain-specific query language for RDF graphs, interpreted in Haskell
  • Built a lexer and parser with Alex and Happy to process the query syntax against Turtle-format RDF input
  • Implemented graph operations including union, pattern matching, aggregation, and graph-based edits
  • Haskell
  • Alex
  • Happy

Optipath

2023 - 2024

A learning tool for exploring and comparing 13 Travelling Salesman Problem algorithms.

  • Built a learning tool for the Travelling Salesman Problem with user accounts and saved graph history
  • Developed a full graph editing system so users can create custom nodes and edge weights to test against different TSP algorithms
  • Implemented and compared 13 algorithms including Held-Karp, Christofides, Lin-Kernighan, and Ant Colony Optimisation, measuring performance differences to highlight each one's use case
  • Wrote unit tests with PyTest to validate algorithm correctness against known optimal solutions
  • Ran end-user testing with 2 users, identifying and resolving usability issues
  • Python
  • PyQt5
  • Flask
  • NumPy
  • DSA

5×5 Chess AI

2025

A custom AI for a 5x5 chess variant.

  • Built a custom AI for a 5x5 chess variant that plays at a strong level against human opponents
  • Implemented Negamax search with alpha-beta pruning, iterative deepening, and transposition tables to cut down search time
  • Added MVV-LVA capture ordering plus killer move and history heuristics to improve move ordering in quiet positions
  • Java
  • AI
  • Game Theory
Recognition

Achievements

  • SotonHack 2026: Stick It Together 1st place

    Two-player party game built for the Amazon Fire TV Stick in 24 hours. Two random words appear, a buzzer fires at a random point, and whoever grabs the remote first has to chain the two words together in as few associations as possible, all while running within a 1GB RAM constraint.

    • React
    • FastAPI
    • Kotlin
    • ElevenLabs
  • SotonHack 2025: Screen Shield 2nd place

    Computer vision system that detects unauthorised faces looking at your screen and immediately hides the display contents. Repeat offenders get photographed and trigger an automated email alert.

    • Python
    • OpenCV
    • Computer Vision
Toolbox

Skills

Languages
Java, Python, C, JavaScript, TypeScript, Haskell, Kotlin, Rocq
Frameworks & Libraries
React, Next.js, Flask, Node.js, JavaFX, PyQt5, PySide6
Databases
PostgreSQL, MySQL, SQLite, SQLAlchemy, JDBC
Tools
Git, Docker, Netlify, Railway, JUnit, PyTest