Knowledge Extraction and Visualization

Scala, JavaScript

I worked within a team consisting of students from the University of Waterloo and Professor S. Garan from the University of California, Berkeley, on NLP relation extraction and visualization. I was responsible for building a data pipeline to allow the relation extraction program to processing abstracts from PubMed. I also worked on parsing a human anatomy tree, a web app that can visualize binary relations, and a tool to curate extracted relations. Technologies I work with include Scala, Docker, Sigma.js, D3.js, React, MySQL, and PostgreSQL.

Sleep Guardian

Python, Android, JavaScript

Combine browser history with mobile app usage events to calculate how much you sleep each night, eliminating the need for any user data entry under the assumption you use your phone, tablet, or computer before and after sleeping. This idea was envisioned by a friend and three of us built it together at Hack the North.

UW Course Alerter


Sometimes when enrolling for courses, students cannot enroll in the section they wish, or not in the course at all. It is also slow to check Quest for availability, the registration system of the University of Waterloo. UW Courser Alerter is made to make registering for desired courses and sections easier. Currently, an API is available to check for course availability and send email notifications if the course or section is available and a sample cron client is made that calls this API regularly.

Waterloo Region ION Survey

Node.js with AngularJS

I worked with an Civil Engineering undergrad and a Civil Engineering Graduate student to create a single page web application to collect surveys on people's thoughts about the LRT project in the Kitchener-Waterloo region. I architected this web application, wrote more than 70% of the code, and maintain it on Heroku.



GRTSquare is a native BlackBerry 10 app wrote in C++, using the Cascades and Qt framework, that allows users to checkout when the next bus arrives based on the current time or some future time. The application stores everything locally so there is no need for a data connection for it to perform the lookup.



Often when we are trying to communicate mathematical equations to others using instant messaging, it is difficult to decipher the equation in plain text. For example, (b + ((a+b)^2/(c+d)) + cd/2) is pretty hard to read. During the 2014 Facebook Hackathon at the University of Waterloo, I worked alongside three other students from the University of Waterloo to create LaTeXMe, a proof of concept web app for instant messaging where equations need to be sent. Users can login to Facebook and invite their friends to join them to collaborate on math in the LaTexMe chatroom, which can render equations beautifully on the screen from LaTeX. It is powered by the MathJax library. I gained exposure to using the Facebook Graph API while working on this project.



multichat consists of 2 different kinds of programs: a server and a client. Multiple instances of the client program can run at the same time and messages can be sent between clients and the server. New clients can join and leave the group at any point in time. The main purpose of this project is to practice working with concurrency and networking in Java.



GradeTrackr is an Android application that helps students to keep track of their grades. I worked on this project alongside 3 peers in my program. Students can enter terms, courses, categories, and different kinds of evaluations such as tests, quizzes, assignments, and projects into the app and the app can calculate the weighted averages. All data is stored in a SQLite database.

Sudoku Solver

Java, JavaScript, C#

Sudoku Solver does exactly what it says, it can solve any Sudoku found on the web and in puzzle books. I used my own algorithm for this project, which is based on 2 elimination techniques. The Sudoku Solver was initially written in Java, and afterwards it was ported to JavaScript as an iOS web app (Mobile Safari) and also to C# as a native Windows 8 app. The Windows 8 app was made during the 2012 WowZapp Microsoft Worldwide Hackathon and the Sudoku Solver received a mention on a MSDN blog.