Cupertino California, USA | Winter 2017
- Proposed and implemented a data entry process in overseas factories, for data acquisition targeting the remaining 25% of product reliability data; built with Ember.js and Ruby on Rails
- Prototyped 50% faster data processing ETL architecture with Spark and evaluated costs
- Developed a machine learning classifier to adjust reliability specs from product returns
- Took initiative to reach out and collaborate with teams across Apple for mentorship
Ottawa, Canada | Summer 2016
- Internal Tooling: contributed to a command-line tool used by all developers to construct development environments with a unified workflow, built with Ruby & Bash
- Architected a package management system, to support extensions for the tool
- Developer Infrastructure: built a reverse proxy in NGINX to cache dependencies
- Optimized deploy and install time to be 7% faster while mitigating upstream outages
Calgary AB / Waterloo ON | Summer 2015 – Present
- Built Ruby on Rails app (petrorecruit.ca) for aggregating & classifying job postings
- Created a scraping system to generate a corpus of postings, in Ruby
- Implemented a naïve bayesian classifier to categorize scraped job postings
- Raised $40,000+ in funding and published 3,000+ postings
- architected entire infrastructure system, including an elasticsearch cluster, SQL database, machine learning jobs and scraper jobs
PetroPredict @ Velocity Garage
Waterloo ON | Summer 2014
- created a data processing tool that was used to aggregate and sanitize millions of data entries from csv
- generated or fit data into Django models automatically
- wrote a python parser for json data that extracted and processed data for graphing and visualization using D3.js
Published on Velocity Site
Project Source Code
- exploration of consensus protocols
- video synchronization using web RTC and an implemention of the Paxos algorithm
Learn Something Everyday
- git hooks are used to pre-compile static html using ruby
- custom designing the html and css for the site, repetitive components were modularized
- content is defined using
- converts files trees of
markdown files to a website
- general crawling tool that emulates a browser, recursively following links using in-order traversal and fetching their assets
- parses and uses http request headers, and stores cookies for authentication
- processes and inserts into SQL data stores, or zips locally for offline browsing of web pages
Ruby on Rails Application that implements a voting based system for crowd-sourced answers and collaboration on practice exams and homework.
- Conway's Game of Life is implemented on the 128x32 LCD screen, written in C
- includes sensor integration and hardware output
bmp files into pixels arrays for viewing on Texas Instrument's Launchpad Microprocessor using the Orbit Booster Pack hardware add-on
- generates a solution using pattern recognition, smart permutation checks and primative algorithms
- graphically displays the cube's geometric net
- this program currently generates solutions of approximately 100 quarter turns
Parses and displays polynomial functions, through a command line interface. Able to factor any polynomial and do arithmetic operations on polynomials.
- user can input an enemy lineup of up to 5 heroes and Dota will return a list of all remaining heroes in order of statistical success against the input team
- scrapes aggregated data over millions of data entries for winrate statistics
- analyzes matchups for each hero and suggests good hero matchups
Computes the farthest pair of points in a set of points, implementing convex hull finding and anti-podal analysis.
Interactive Mandelbrot set generator with corresponding julia sets using complex number implementation. The view is zoomable, displaying closer snapshots of the sets. They are displayed using an rgb color scale.
The project titled "The Germ-inator" examined the comparison of natural and synthetic anti-microbials. An innovative technique was used to gather precise measurements for bacterial reduction. By taking digital photographs of a petri-dish, a pixel to mm ratio could be determined. Then, specific fine measurements on the dish could be determined through digital analysis.
Eastern Canada Student Energy Conference
Sponsored by Shell; awarded for winning team in case study competition.
Laurelwood Neighbourhood Association
This award was for outstanding contributions to the community of Laurelwood through involvement with the Laurelwood Neighbourhood Association.
University of Waterloo
Awarded to students applying to the University of Waterloo with an average of 95% or higher.
Waterloo Wellington Science and Engineering Fair (WWSEF)
Canadian Computing Competition Certificate of Distinction (Top 25%)
Winner of SJAM Engineering Robotics Competition
DECA Silver Medalist
2X Award of Merit, Waterloo Wellington Science and Engineering Fair (WWSEF)
2X Best of Division Award, WWSEF
Sir Isaac Newton Award, WWSEF
The Ontario Ministry of Research and Innovation Stepping Stone Award, WWSEF