Projects

Check out more on GitHub!

Roolet

reactJs discrete event visualiser (Demo|Blog Post|Repository)

roolet

Full-stack ReactJs site that visualises betting outcomes (pmf, cmf) in xkcd-like graphics. Inspired by Roulette.

Synacore

Virtual machine for assembly code (Repository)

synacore

Implemented an object-oriented VM that can read assembly code. Includes memory, registers, stack, function calls, jumps and an ALU. This project is for the Synacor Challenge

Pomenohenn

Retro word game in Python, Pyxel (Repository)

pomenohenn Created a retro word game (limited to 256x256 pixels!) in Python, Pyxel. The inspiration was from a Cambridge article on how we are able contextually understand mispelled words, as long as the first and last letters remained in place.

FlaskShort

Full-stack URL Shortener in Python (Repository)

flask short demo A URL shortener with a complete backend system, using Flask, FlaskBootstrap, PostgreSQL.

Ghost

Python package for a word game (PyPi Package|Repository)

Created a Finite State Machine Game Engine that can be used by various applications (web, mobile).

Dynalite

Internet-of-Things using RaspberryPi and CoAP (Demo|Repository|Presentation)

dynalite Created a light-detection system to retrieve data on room occupancy rates. Finds available study spaces in school. I worked on the RaspberryPi module, using CoAP (Constrained Application Protocol). CoAP is a lightweight http-like protocol for use in IoT devices with limited bandwidth (this will soon be resovled with 5G).

tcptrace

Traceroute in TCP using C (Blog Post|Repository)

tcp traceroute Created a primitive traceroute in TCP. It can tell you which routers your data goes through before reaching your destination.

Intellex Search Engine

A weighted tf-idf information retrieval system (Repository)

diagram Created a search system for legal documents (data by Intellex). I worked on the indexing portion, as well as creating APIs to access the indexed data. Having worked with the legal data let me understand the sheer complexity of legal information retrieval. Different court systems, different document formats and different terminology used are just some problems plaguing the legal industry.

semacrawl

Multi-threaded web crawler using semaphores (Repository)

A simple database-free web crawler using semaphores.

Pose Estimator

DSTA TIL Artificial Intelligence Hack 2019 (Blog Post|Repository|Slides)

Trained a pose estimator in Tensorflow/ Keras using Transfer Learning and the ensemble method. Won the 6th place in the competition (Merit Award), out of 50+ teams

Poker Agent

Artificial Intelligence (Blog Post|Report)

poker Combined the concepts of CounterFactual Regret (CFR) Minimisation and Deep-Q Networks (DQN) in a poker agent.

Concierge

Command-Line Hotel Management Application (Repository|Project Portfolio)

concierge This project was morphed from a 10kLoC address book application in Java. The system has an MVC architecture. I created a login system using SHA256 hash to protect the password. This feature involve creating a new command, a login manager, and password storage.

Healthcare Queuing Application

Android App to manage queues at NUS UHC (Repository)

halp Created an android prototype that allows NUS students to take a queue number without being physically present at the clinic. The project is now outdated as we integrated to the NUS system using the old IVLE LAPI. NUS has since migrated to LumiNUS.