About Me
Hi there! I'm Ryan, a student who loves to tinker with code and explore new ideas. When I'm not diving into my latest project (or the dustbin for electronics - I'm serious, these University skip tanks embody the one man's trash is another's treasure), you can find me learning something new or figuring out creative/silly ways to solve problems. This site is a little peek into my world of coding and fun projects!
Homelab
I run self-hosted services in my homelab as a long term side project. At this point it is less of "one old PC running Docker" and more of a small internal infrastructure stack: Proxmox, Terraform, Ansible, internal DNS, reverse proxying, monitoring, media services, GPU passthrough, and enough YAML to make me question my life choices.
The current main compute node is a Supermicro H12SSL-I system with an EPYC 7542, ECC memory, local NVMe, a 10G uplink, IPMI, an RTX 3090 for AI experiments, and a Quadro P2200 dedicated to Jellyfin transcoding. The older Z640 is now more of a proof-of-concept / spare Proxmox box rather than the centre of the lab.
The network is split into VLANs for services, VMs, NAS, management, DNS/infra, torrents, and IoT.
Core DNS is no longer a random docker container I pray stays alive: I now run separate resolver VMs
using AdGuard Home + Unbound, separate BIND9 authoritative DNS VMs for the internal peky zone,
and a Caddy reverse proxy VM with an internal CA for HTTPS inside the lab.
Most new infrastructure is defined from Terraform and then configured with Ansible. Jenkins, Gitea, a Terraform controller VM, Prometheus/Grafana, and a K3s/Rancher/AWX experiment are all part of the current automation direction. Some parts are working cleanly, some parts are in the "I understand why this broke, but I am still mildly offended" stage.
This is still my playground for learning networking, Linux, service operation, backups, and systems design. It has broken my internet, eaten a ZFS partition once, taught me DNS the hard way, and generally paid back the pain by making abstract infra concepts feel very real.
Full List of Homelab stuff: current architecture, devices, network layout, automation state, and what I still need to clean up.
What I'm Currently Working On
Some snippets of my ongoing projects.
- Singapore Bus Route Project: A fun ongoing hobby project where I’ve been analyzing and mapping Singapore's bus routes using real-time data to figure out the best way to visit every bus stop. Currently rewriting the project in go to become more familiar with go, take advantage of gothreads for data collection, as well as writing documentation and short reports.
- Homelab infrastructure automation: Sandbox/POC machine for homelab automation before I get more permanent rack mounted solution. The services and state of my homelab is starting to get too hard to manage, with some stopgap procedures I ran fogotten cause of time, and the maintainence / upgrades taking longer to do. I have started trying some automation via ansible and git to help with migration and maintainence issues. Currently most of my services run off single ansible playbooks, and my self-hosted services are being ran on this hardware. In the middle of planning to refactor to more standard best-practice ish formatting, and to migrate once hardware prices go down again.
Completed/Archived Projects
A few things I’ve finished and I thought were cool.
- SUTD Pathfinding Project: I explored pathfinding algorithms from scratch and used them to map out the SUTD campus more efficiently. Download the report here.
- 50.005 - C Shell: Tiny Unix POSIX compliant shell with job control & tab‑completion. Wrote it for 50.005 with a bunch of built in programs and utilities.
Site Design Inspirations
This site is intentionally simple — no frameworks, no dark patterns, no extra JavaScript. Just good old HTML, some light CSS and Vim's auto indent to keep me sane.
No fancy graphics, no latest trends, just what I hope is easy to access and read.
The structure is inspired by Bjarne Stroustrup’s website, for its text-first clarity. I also borrowed some design choices from McMaster-Carr — straightforward, get to the point fast, no distractions.
Setup
I built my own custom PC to handle everything from programming and simulations to hardware tinkering. It’s powered by a 5950X, 32GB, and a 7900 XTX.
I mostly work in Debian 13 stable on my workstation and T480, most of my homelab vms are on Debian 12 or 13 and the occasional Ubuntu Server. Some windows for my school work (so I can take the exam), to access acrobat to sign off documents.
Other stuff
Comfort Languages:
C, Python 3, Go
Functional enough knowledge Languages:
C++, Java
I can do it with loads of googling/docs Languages:
Javascript, Typescript
Software stuff:
Git, Vim, tmux
Infra stuff:
Ansible, Terraform
Hardware stuff:
ESP32, Arduino, Raspberry Pi, 3D Printing
Reading List
A small collection of books, manuals, and references I found useful or interesting — mostly systems, algorithms, networking, philosophy, and a bit of aviation CRM / human factors.
- The C Programming Language – Kernighan & Ritchie
- Introduction to Algorithms – Cormen, Leiserson, Rivest, Stein (CLRS)
- UNIX Systems Programming – Kay A. Robbins & Steven Robbins
- Digraphs: Theory, Algorithms and Applications – Jørgen Bang-Jensen & Gregory Z. Gutin
- Meditations – Marcus Aurelius