Final-year CS undergrad at the National University of Singapore. I like building things that rank, retrieve, or predict, then checking whether the numbers behind them actually hold up.
🔭 Right now: an LLM-training final-year project under Assoc Prof Eric Han, extending nanochat through pretraining, supervised fine-tuning, and RL alignment on the NUS SoC GPU cluster. The baseline is done: a 1.38B-parameter model trained from scratch on 2 GPUs (79% of ideal per-GPU scaling, where the reference assumes 8) reaches the GPT-2-grade CORE target of 0.2603, and two independent runs on different hardware agree within 0.54%.
Tries to catch songs on the way up. Blends signals from six chart sources, shows exactly why each track scored what it did, and uses Gumbel-Top-k sampling so it explores instead of always playing it safe. Scored by replaying weeks in order, so it never gets to peek at the future.
Probabilistic time-series forecasting where the hard part is not the model, it's not lying to yourself. Backward-only feature joins, temporal splits, and quantile metrics that refuse to score misaligned data. 55 tests, including 300 randomised probes that no feature ever leaks in from the future.
LoRA adaptation of whisper-tiny for Singaporean-accented speech. Training 1.4% of a 39M model (540,672 parameters) took it from 66.2% to 23.8% WER, beating zero-shot whisper-small at 6x fewer parameters. Ships the WER harness, not the licensed corpus.
Highlight text anywhere, fire it at ChatGPT, Gemini, Claude or Perplexity, or type ai in the address bar and it routes sites, questions and tasks. The extension grew to ~1,000 users and a Chrome Web Store Featured badge, and the browser agent now on main plans its work, checks every action actually changed the page, must validate its answer before finishing, and asks before anything irreversible. Your API keys never leave your browser.
Rust playground for prediction-market pricing: order-book reconstruction, lead-lag and order-flow signals, calibration, replay backtests. Strictly paper-only, no live trading.
Python Java TypeScript Go Rust Swift C SQL
PyTorch Transformers React Flask Docker AWS
- 🤖 AI engineering @ iEnergy Digital: safety and compliance agent on AWS EC2 with hybrid dense/BM25 retrieval and SQL tools, answering in under 3 seconds, plus a voice agent officers use on site in 30+ languages
- 🔧 Backend @ NUS IT: three internal platforms, SSO and per-route RBAC, and a sync engine with 167 tests behind it
- 🥽 Vision Pro research @ NUS × Apple: a cognitive-assessment app built in the Interactive 3D Design Lab and piloted with stroke patients at NUH, written up for ISMAR 2026 (closed source, since it's clinical research)
- 📑 AI development @ Klimacap: an LLM research pipeline that cut M&A analysts' investor reports from hours per company to minutes
- 🏦 Software engineering @ Aurionpro: Java and Spark features in SmartLender, lending software used inside commercial banks
- 🧪 Also fine-tuned Qwen3-4B with BitFit for insurance-policy reasoning, lifting payout accuracy from 46.7% to 73.3%


