I am a second-year MEng Computing student at Imperial College London, specialising in Visual Computing and Robotics. I currently lead software for First Order Robotics in the RoboCup Small Size League, and I built SPM Chat, a free chatbot for Malaysian students. This site is where I share projects, research notes, and recent updates on what I am building and learning.
Giving Coding Agents Something to Measure
What I changed in our RoboCup SSL control stack this summer so a coding agent could judge a change in minutes: 16x faster path planning, 11.5x smaller replays, and tools for finding stalled matches.
Scaling Strategy Search, Evaluators, and the Agentic Coding Workflow
Our bet on scaling robot sports: why we believe coding agents can search strategy space better than human developers, and the infrastructure, debugging tools, and evaluation benches we built to let them hill-climb.
Strategy = Tactics × Orchestration
Why Behavior Trees broke down for multi-agent coordination, how modeling our scheduler after an OS kernel solved dynamic regrouping, and the three safety invariants that eliminate race conditions.

Leading Software for a Robot Football Team
An architectural overview of our RoboCup Small Size League robot control stack, lessons from our Great Exhibition Road Festival milestone, and open challenges as we scale to a full 6v6 squad.

Why I Built a Dashboard for SPM Chat
A dashboard changed how I make decisions for SPM Chat. Here’s what I track, why trends matter more than vanity metrics, and how it doubles as a control panel.

Teaching a Robot Arm to See 100ms Into the Future
Most robot controllers have a delay. Commands take time to travel through software stacks, buffers, and hardware. For the Franka Panda arm I was working with in MuJoCo, this delay is exactly 100ms — five control steps at 50Hz. That sounds small. It is not. The problem A standard inverse kinematics (IK) controller does something simple: look at where the target is right now, compute the joint angles that would put the end-effector there, send those angles to the robot. ...

SPM Bench: Benchmarking Affordable LLMs for Malaysian Education
SPM Chat started as a practical question: can an affordable AI system be reliable enough to help Malaysian students revise for SPM? As the project grew, I realized I needed something more rigorous than anecdotal wins and isolated demos. That led to SPM Bench, a benchmark built to measure how well low-cost language models answer SPM multiple-choice questions, and how much a purpose-built retrieval harness actually helps. This write-up summarizes what I learned from the latest benchmark run on this branch, and why the results changed how I think about RAG for education. ...

I Built a 'ChatGPT' for SPM Students
I built an AI chatbot for SPM students. Here’s what I learned about marketing, small language models, community, and fumbling a beta launch.
MidiBERT-Piano Paper
MidiBERT-Piano Contributions Compound word(CP) encoding is better than REMI encoding in general BERT-based model outperforms RNN-based model in following downstream tasks: Melody extraction Velocity Prediction Composer Identification Emotion classfication Pretraining perform much better than the model that train from scratch. Future work Implement other pretraining method to further boost the performance and robustness. Personally, I think the recent GLM paper is worth trying.
Hierarchical Perceiver Note
Hierarchical Perceiver Problems Perception Models are able to process large inputs and largely focused on Global attention. Fourier embeddings must be adjust to fit the modality of data and become memory bottleneck when dealing with high dimensional data Novelties This paper shows that by introducing some degree of locality, it can improve the efficiency of perceiver model. Masked Auto-Encodign(MAE) plays a mojor role in learning positional embeddings Architecture ...