Java (and Android)

  • Internships: 2 Internships so far (both at Microsoft), and 2 research assistantships using Android/Java.
  • Side Projects: Lots of side projects (HTML parser, and a variety of other experimental apps to learn about mobile app/game design).
  • Hackathon: Went to a LOT of hackathons, and made Android apps for (almost) all of them. Finalists in 2 of the hackathons
  • High School: programmed in Java in grades 11 and 12.


  • Internships: During my 2nd internship at Microsoft, developed the Windows 10 version of Office Lens in C# using the Universal Windows Platform.


  • MTE241: Real-time operating systems course (implemented half-fit dynamic memory allocation in C: link to paper/algorithm here)
  • MTE140: an intro to data structures and algorithms. Achieved 98% in this course.
  • CS138: an intro to data abstraction and implementation. I technically wasn't enrolled in this course, but I managed to get permission from the professor to listen to his lectures. I went to all of them. I learned more data structures and algorithms by attending this class.
  • GENE121: a beginner programmer's course everyone takes in university. Learned: all of the basics of programming, how to make algorithms, recursion, classes, et al. I also learned RobotC and the final project was to make a cool Lego Robot do something with sensors. We made a garbage collecting robot, with ultrasonic sensors, encoders, and more!
  • Arduino: made lots of simple Arduino projects


I created this site by learning the basics of HTML.

I also did some web dev work for the site


I created this site by learning the basics of CSS.

I also did some web dev work for the site


I learned Javascript from Code Academy. I completed the whole online course. Used JS in a hackathon as well.

I also did some web dev work for the site

List of Skills:

(Click on the icons below)

This page introduces the skills, internships, and projects that I have done. It is the main part of this portfolio website. The reason why I have so many internships, despite being an undergraduate student, is because my university has a continuous co-op system where I take alternating 4 months of co-op and 4 months of school until I graduate. Therefore, I will have lots of internships and experience. I am looking forward to pursuing graduate studies in the future in the following fields: robotics, artificial intelligence (particularly affective computing and machine learning), and psychology.

Previous Internships

2014 - Android Developer and Research Assistant at the University of Waterloo

My job was to research and develop a rehabilitative android application for people with reading disabilities. It is an improvement from an earlier prototypal concept written in VBA. I participated in every part of the software’s lifecycle.

2014 - Android Software Engineering Intern at Imaggle Inc (in Tokyo, Japan)

My job was to make an Android version of the currently existing iOS Imaggle application. It is an app similar to eBay, but for mobile phones. The app also specifically is for the buying and selling of womens' clothing.

2014 - Software Engineer Intern at Microsoft (Japan)

I was on the Sway team. I have designed and implemented various algorithms and data structures for generating suggested content, including implementing various other experimental features as well. I also improved the UI and UX experiences on the client application, creating custom gesture features.

2015 - Software Engineer Intern at Microsoft (Japan)

I Worked on Windows 10 Office Lens, an image processing app that can scan documents, whiteboards, etc. on your mobile device with real-time edge detection.

2017 - Web Developer & Data Scientist Intern at Oculys Health (Waterloo)

I developed a web app with Angular frontend and ASP.NET backend for collecting relevant hospital data to be inputted into machine learning models the company develops.

In terms of data science, I trained and cross-validated/tested some ensemble machine learning models in R. I also helped operationalize many of the models used (i.e. integrating the ML models with the backend servers, and the ability for clients to communicate and obtain predictions from the ML models).

Side Projects

2015 to 2017 - Machine Learning Projects

I have been interested in machine learning and its applications for quite some time and have invested time into learning about fundamental machine learning algorithms, data cleaning and aggregation/web-scraping, etc.

2013 - HTML Parser

An Android application. You can choose an html file (.txt) from the phone's internal storage and then it will parse the HTML and display it on the screen. I did not use any HTML parsing libraries and implemented the entire parsing algorithm myself, by first writing pseudo code, and then typing up the real code/debugging later. The algorithm is not based off of any known parsing algorithms so in a sense, it is very "brute-forced" (wrote it before I took any algorithms course).

2013-2015 - Small Android Side Projects

Hackathon Projects

(Click on their names to see detailed blog posts about each)

aTech - TiO

TiO is an AirBnB like android application. I developed it with another Android developer, a backend, and a UI designer at a Japanese hackathon. This app helps freelance creators and developers find free office space from companies. Click here for Github repo.

TechCrunch Japan - Mikkokusha (Top 5)

This is an Android application I developed with another engineer and a designer for TechCrunch Hackathon. It is an app to help prevent sexual harassers from attacking Japanese girls in Japanese trains (this is a known cultural phenomenon). We got in the Top 5, and the top 5 get to present their project to the TechCrunch Event in Tokyo November 2014. Actual description of the application itself is here: Click here for Github repo.

Virtual Koding Hackathon - Donathon (top 100)

This is a web application for the Global Koding Hackathon 2014. It uses an API to get real-time information on all reported natural disasters around the world, and then we categorize them between earthquakes, floods, tornados/hurricanes, etc. and then we display them on an interactive map (which is another API). Then, people can use this service to donate to these natural disasters. This service's purpose is to make donating to charities more accessible and readible available, and you can earn "tokens of appreciation" (a.k.a. game-like points) for doing so. Click here for Github repo.

JPHacks 2014 - Android x Health (Top 6)

This is an Android application I developed with two other engineers at JP Hacks (at Tokyo University). It uses ChromeCast and is basically an app that is interconnected between your Android Watch, Android Phone, and Android TV/ChromeCast to help you exercise and become more disciplined. It uses location boundary detection, Google Fit API, and not really any other external non-Google APIs. We got in the finals for this hackathon.Click here for Github repo.

PennApps - Footsies

This is an Android application I developed with another engineer and UI designer at PennApps. It is an application that uses the Pebble watch and a Sensoria sock sensor that helps diagnose, rehabilitate, and monitor foot/walking conditions based on the foot sensor's accelerometer and pressure sensors. Click here for Github repo.

Hack the North 2015 - SmartChef Recipe Recommender System

This was an iOS application that connected to a backend machine learning service, and recommended recipes based on the user's background/other users' ratings. I personally did not do any iOS dev, but instead solely focused on the backend. It was a lot of work and I learned how to apply machine learning concepts I learned from the machine learning online Coursera course. Azure Machine Learning was what we initially attempted to use, as it made an automatic web service so we did not have to manually make our own API. the Azure recommender system uses a hybrid collaborative-filtering and content-based filtering system to recommend recipes. It was really hard to actually scrape the data, but to also clean the dataset , and then formatting the features well enough so we do not get inaccurate recommendations/false positives from insignificant features, et cetera. After we finally trained our machine learning model, there unfortunately was a documented bug at the time about the inability to deploy the model as a web service for the iOS client app to use. Then, we tried to use Django to make an API during the few hours we had left. It is suffice to say that we did not completely finish the backend, but I personally learned a lot on how to actually implement recommender systems. Click here for links to the three Github repos.