Imperial College London

October 2014 - Present

MEng Electronic and Information Engineering

Janestreet Capital

April 2017 - Present

Software Developer Intern - London, United Kingdom

I am currently doing a 6-month placement in Jane Street as a Software developer, primarily writing Ocaml, a functional programming language.


Basketball FRVR Bot

April 2017

This bot plays Basketball FFVR, otherwise known as the Facebook messenger basketball game, automatically, destroying even the best human high scores. The bot treats the game as a blackbox, essentially playing the game simply by moving the mouse as a human would to control the ball's projection.

I worked on this project in a ski trip when I grew frustrated from the inability to beat my friend's high score (165 points), after trying for over three days. The bot's gameplay is based on simple physics laws. Click here for a video demo. The source code is available in github.

Eurobot UK 2017

January - April 2017

Along with the Imperial College Robotics Society, I have participated in the UK round of Eurobot 2017. I worked on the computer vision, localization and motor controller algorithms of the robot.

Google - Software Engineering Intern

June 2016 - September 2016

I was a software engineer intern in Google, Mountain View CA, United States.

I Worked on pytype, a python type inference and static analysis tool. My main contribution was integrating pytype with an internal code review tool to facilitate the company's transition to typed python.

My work helped discovered bugs in several projects and was adapted by several teams, including the python team and borg , google's cluster manager.

Self-Hosting C-Compiler

January - March 2016

I wrote a C-compiler, from scratch, in C, targeting the MIPS 1 architecture. My compiler supported a turing-complete subset of C operations, namely:

  • BODMAS arithmetic operations
  • if-else, switch statements
  • Function calls
  • Goto
  • For loops, While loops, Do-while loops
  • Whie loops

RAMEAR - PennApps Spring 2016

January 2016

RAMEAR is a project heavily based on GSMem [Mordechai Guri et al] . In this project, we program an air-gapped computer (a computer that is not connected to the external world via any means, including ethernet, bluetooth, wifi etc.) using the memory bus as an antenna, to transmit data to a signal receiver. This is achieved by periodically bombarding the memory bus to denote a HIGH BIT and using the average environment noise as a LOW BIT.

I worked on this project with 3 others in PennApps Spring 2016, one of the largest student-run hackathon in the world. Our project won the grand prize in the hackathon.

Click here for a video presentation of the project and here for the source code.

Netcraft - Internet Services Developer Intern

June - August 2015

I worked on a hosting company classification project. My tasks mainly comprises of writing tools to partially automate data classification and designing and implementing features to aid manual data classification. I wrote Perl, bash and PHP extensively in this internship.

Fishotron - Fishackathon 2015

June 2015

Fishotron is a computer-vision based application that measures the size of a fish using chilli tags and a mobile phone.

The implemention is based on a combination of OpenCV and chillitags' project from EPFL, along with custom statistical anomaly detection and shape fitting algorithms.

I worked on this project with Tom Hartley in Fishackathon 2015, sponsored by the State Department of the United States. Our project won the global hackathon organized in over 10 cities throughout the world.

Click here for a video presentation of the project

FPGA Passive Autofocus

June 2015

The application takes a real-time camera feed and adjusts a custom-made focal knob to get a a focused image to be. The video was a pure FPGA-based passive autofocus application. The control flow logic was implemented using a C++ based HLS tool and some latency-sensitive blocks using verilog. The algorithm is a heuristic search for the peak of the graph that maximizes the number of edges in the resultant image.

I worked on this project with a coursemate as part of our First Year Project. We were awarded the best first year project prize.

We have a video demo of the application and open sourced our source code on github.

Water Pouring Problem Simulation

August 2014

I worked on a web-based simulation (in addition to simulation in a few other languages) of the water-pouring problem to demonstrate Breadth-first search and euclid's extended algorithm. This project was used in one of the Malaysia Computing Olympiad training camp to demonstrated the mentioned algorithms.

Click here to view the project. The code source code is open sourced on github.