Projects

Each project is labelled as a team, personal or home lab project, with my part stated plainly. Open one for the evidence: what I did, how I tested it and where it falls short.

Team project, Monash University (FIT5120)

BeyondReAim

A web platform showing young Australian workers how AI may change their industry. My part: ICT support, testing and security. I found and helped fix a CORS misconfiguration, moved the app off admin database access to least privilege, added rate limiting and wrote the security report.

  • React
  • TypeScript
  • Vite
  • NeonDB
  • Vercel
Read the case study

Personal home lab project

Pi-hole over Tailscale

Network-wide ad blocking in Docker, reached over Tailscale with no router port forwarded. I scanned it with nmap from three vantage points: the ports were filtered from outside and open only on the tailnet.

  • Pi-hole
  • Docker Desktop
  • Tailscale
  • nmap
Read the case study

Personal project, built with an AI coding assistant

DomainCheck

My part: requirements, scope and review, with Claude Code writing the code. It checks SPF, DMARC, DKIM, TLS and security headers using passive checks only. Every outbound request goes through one safe fetcher that blocks private addresses, and tests and CI (ruff, Bandit, pip-audit) enforce it.

  • Python
  • FastAPI
  • pytest
  • Bandit
  • GitHub Actions
Read the case study

Personal project, built with an AI coding assistant

secnews

My part: requirements, scope and review, with Claude Code writing the code. It reads security news feeds, pulls out the CVE numbers and looks up each official NVD score. A local dashboard shows what needs a decision today, merges the same CVE across sources and never guesses a missing score. It checks robots.txt and binds to localhost only.

  • Python
  • Flask
  • SQLite
  • NVD API
  • pytest
Read the case study

Personal project, built with an AI coding assistant

Interview Gym

My part: requirements, design spec and review, with Claude Code writing the code. You practise interviews out loud with an AI recruiter or hiring manager, then get a coach report that quotes your own words and never invents any. The model, voices and speech recognition all run locally, so nothing leaves the computer.

  • Python
  • FastAPI
  • Next.js
  • Ollama
  • SQLite
Read the case study