Building things, breaking things, and everything in between

Write-ups of projects, hackathons, homelab experiments and whatever I'm figuring out in CS and life in general, by Rahul Vedant Pemsing.

"Life is a tragedy in close-up, and a comedy in long shot."

Charlie Chaplin, by way of Rowan Atkinson (yes, Mr. Bean). A line I stand behind.
  1. 4 min read

    My pre-first act as AWS club president was a disaster (and I learned a lot)

    I represented the AWS Student Builder Group at Monash University Malaysia's first Tech Club Award Night and fumbled the presentation. Here's what went wrong and everything I'm fixing before 2027.

  2. 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.

  3. 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.

  4. 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.

  5. 3 min read

    My "LAN speed test" was actually an internet speed test

    I'd just replaced a faulty LAN cable, so when iperf3 said 30 Mbit/s I blamed the new one. The traffic had never touched the LAN.

  6. 2 min read

    My new monitoring paged me twice on day one. Good.

    A flaky HTTP/2 ping and a backup job that ran fine by hand but not under systemd. Both were real bugs, and both got caught.

  7. 5 min read

    Getting a homelab ready to run for three months without me

    No sleep, a watchdog, key-only SSH, a wiped HDD turned into storage and backups, a second way in, and an outside alarm for when the box goes dark.

  8. 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.

  9. 3 min read

    Auditing a gaming laptop that thinks it's a server

    A read-only audit of my homelab box. No firewall, password SSH, no backups, and 86 unsafe shutdowns on the SSD.

  10. 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.

  11. 3 min read

    ShipDoc, part 2: moving off AWS before the account expired

    The hackathon's AWS account ended on 18 October. ShipDoc moved to my homelab behind Caddy and a Cloudflare Tunnel, and the old domain now explains where it went.

  12. 2 min read

    How an old gaming laptop became my homelab

    A Lenovo Legion Y540, Arch Linux, SSH and Tailscale. How my "learn Linux" machine turned into the server that hosts my projects.

  13. 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.

  14. 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.

  15. 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.

  16. 1 min read

    Hello, world (again)

    Why I'm starting a journal, and what you can expect to find here.