← All topics

#projects

8 posts

  1. 4 min read

    FairSight revisited: the bias in my bias detector was twice what I claimed

    A FIT1055 prototype that detects gender bias in hiring. Rerunning it showed women hired at 1.3% instead of the intended gap, and a "mitigation" that only works because we planted the bias ourselves.

  2. 5 min read

    Rereading my pathfinding visualiser: A*, Dijkstra, and an RRT that never arrives

    A first-year Streamlit project, benchmarked properly for the first time. A* checks 6× fewer cells than Dijkstra, the README describes the wrong heuristic, and RRT fails every time on a big grid.

  3. 4 min read

    Putting three old projects back online with one Dockerfile

    A roguelike, a pathfinding visualiser and FairSight, all Streamlit apps, now on my homelab under one deployment pattern. Plus a bug that only exists once a game is public.

  4. 4 min read

    ExamX, part 2: cloud models, a public site, and pressing pause

    Adding Gemini and Claude back ends, putting the app online behind a Cloudflare Tunnel, and deciding to stop and actually study.

  5. 5 min read

    ExamX, part 1: a practice-exam generator that marks its own papers

    One evening, five past papers and a 4 GB GPU. What worked, what the local models got wrong, and why the code ended up doing most of the marking.

  6. 4 min read

    ShipDoc, part 1: a perfect score locally, 0.9869 on Lambda

    Our Averis × Monash Hackathon entry checks shipping documents. Getting it onto AWS was my job, and the cloud scored lower than my laptop for a reason I didn't expect.

  7. 4 min read

    Anxin: two AI models, and what to do when only one answers

    Team Tenners' entry for the MUBA Blockchain Hackathon, a bilingual scam checker on Gonka's decentralised inference network. It made the top 21 of its track.

  8. 5 min read

    Planning errands is the travelling salesman problem in disguise

    For the Monash × Shortcut Asia Internship Challenge I built a route planner. Exact answers for small trips, fast good-enough answers for big ones.