My Projects

Bounce – Watch your posts literally spread across the world.

Feb 2016

React Native, iOS, Node.js, Express, JavaScript

Bounce is a location-based social network where you can "bounce" posts to spread them geographically. Posts can originally only be seen in a radius around the original poster, but if people find it interesting or funny, they can bounce it so that it can be seen by people around them. In this way, a post literally spread virally across the world.

I was responsible for the development and design of the iOS app in React Native, including the user interface, communication with the server, and creating, viewing, bouncing, and displaying information about posts.

Bounce was developed in 24 hours at nwHacks 2016.

ParkingPal – Find parking meters.

Sep 2015 – Dec 2015

Ruby on Rails, JavaScript, HTML5, CSS3, Bootstrap

ParkingPal is a web app that lets users search for parking meters in Vancouver using a variety of search terms and filters, then mark those meters as broken or occupied, both to let others know what meters they can park at, and to keep track of what meter they have parked at.

I was responsible for implementing the front end logic and designing the user interface. This included design and implementation of the client-side interface, including searching, viewing details, marking meters, displaying meters on the map, and more. I was also involved in application and database design, and assisted in the implementation of some server-side logic. – Watch better together.

Oct 2015

Node.js,, JavaScript, HTML5, CSS3, jQuery, YouTube API, Azure

Developed in 24 hours at DubHacks 2015 and winner of 2nd place for Best Overall Use of Microsoft Tech at DubHacks, lets you watch YouTube videos simultaneously in-sync with others across the world. You can submit videos to the queue to watch, decide what to watch next by voting on the videos in the queue, and chat anonymously about the video you're watching with others. keeps everyone in sync, watching the same videos so you can discuss and react as if you're right next to each other on the couch. You can also create your own room so that you can watch with only people you know or just for certain topics.

I was responsible for implementing the client logic, including communication with the server, handling responses from the server, and managing and displaying the video queue. I also assisted with designing the client and YouTube playback.

NodeCG for Smash – Easier, better dynamic graphics for livestreaming Super Smash Bros. tournaments.

Jul 2015 – Present

Node.js, JavaScript, HTML5, CSS3, jQuery, Polymer, Challonge API

NodeCG for Smash is a collection of dynamic graphics bundles for livestreaming Super Smash Bros. tournaments. Built on NodeCG, a framework for dynamic livestream graphics, I developed NodeCG for Smash to provide high quality, easy to use dynamic livestream graphics for the Smash community and raise the average production quality of Smash livestreams. The graphics are built entirely as web pages, written in HTML and CSS. JavaScript, jQuery, and Node.js provide the dynamic graphics logic and connects the graphics with the dashboard where everything is controlled, which uses Polymer for an easy to use interface.

NodeCG for Smash has been successfully used in Vancouver-area Smash tournaments with positive feedback from viewers and streamers alike.

See NodeCG for Smash in action at Smash the Halls

PickAPlaceFor.Us – Choose where to eat with no fuss.

Mar 2015

Java,, Node.js, Android, Yelp API, Google Places API

Developed in 36 hours at nwHacks 2015, PickAPlaceFor.Us is an Android app that lets group quickly and easily decide where to eat through a series of votes; inspired by the Gale-Shapely algorithm, the app determines where the best place to go is. Users create lobbies to share with their friends, and they nominate restaurants to go to. Each vote pits two restaurants against each other, with a sliding scale to determine preference. The winner of each round then goes against the next restaurant, and so on, until only one final restaurant remains.

I was responsible for designing and developing the Android client app, including communication with the server, the user interface for voting, searching and adding new restaurants, and creating and joining groups.

Project Launch – Sample and create your own music, all in-browser.

Oct 2014

JavaScript, HTML5, CSS3, SoundCloud API

Project Launch emulates the functionality of the Novation Launchpad programmable grid instrument to allow anyone to easily create their own music and remixes from sampled sound clips. Written entirely in client-side Javascript, Project Launch also allows for the use of macros, loops, and user-programmable keyboard shortcuts to make creating music even easier and more convenient.

Project Launch was created in 24 hours at DubHacks 2014.