Projects
Hacktoberfest Detector
20
21
A very straightforward Firefox & Chrome Add-On to check whether a repository in GitHub has opted-in to DigitalOcean's Hacktoberfest initiative.
partygamepicker
20
20
A cheeky Svelte project to pick the select a random digital party game for you and your friends, taking into consideration the number of attendees.
githubcollaborators
20
20
Find out who your common collaborators are on GitHub! Produces a JSON output mapping collaborators and repositories.
Outages tracking
20
20
Track outages as JSON files via Git History. Basically, scrape for outages (or fetch a JSON if already available) via GitHub Actions and keep track of changes via Git History. Currently tracking Slack, Shaw, and BCHydro outages this way.
Simple MNIST neural network
20
18
Simple neural network implementation using the Nim programming language. Intended for educational and demonstrative purposes. Project structured as a set of three packages handling the MNIST-specific components, a general purpose configurable neural network, and the final demonstrative executable.
myTRU CLI
20
17
Selenium-powered scraper for myTRU and TRU's Moodle grades websites. Includes email notification features for grade changes/additions. Not production ready.
Talking Chef
20
17
Developed an experimental recipe application centered on voice-recognition. Application was developed as a native Android application using Java and the Android NDK. The app employs voice-recognition to allow the user to issue vocal commands to the application. This is indented for hands-free operation while the user is cooking. The application uses Realm as an object storage for its underlying user-submitted data.
Research
Big Dota Reduction - Lessons Learned From Analyzing 1 Billion DOTA2 Matches
20
19
Together with Dyson Fraser. Paper and associated tools used for analyzing a very large dataset (1.2TB) of Dota2 matches for pattern/metagame extraction. This was presented at the TRU Undergraduate Research & Innovation Conference 2019.
Modeling Patient Flow Among Hospital Wards Using Non-Diagnostic Data
20
19
Together with Dr. Piper Jackson, paper accepted at the Canadian Undergraduate Computing Science Conference. Using discrete-event simulation modeling and the MIMIC-III data set, this paper produces a demographic and metadata-only model of patient transfer within hospital wards. The model successfully approximated the underlying transfer dynamics (95.63% accuracy measured using RMSE). The accompanying visualization may be used to examine patient flow.
Extending a Generative Adversarial Network to Produce Medical Records with Demographic Characteristics and Health System Use
20
19
Together with Dr. Piper Jackson, conference paper accepted at the 2019 IEMCON (IEEE 10th Annual Information Technology, Electronics and Mobile Communication Conference). "Developing upon previous work, we have extended the MEDGAN system to generate records with eight additional variables, including demographic and health system use factors. The records generated are similar in distribution to the underlying dataset for all of these added variables."
Workshops
Developing a professional web presence: Domains, DNS, Emails, & Hosting
20
19
Introduced attendees to domains, DNS, and options for hosting websites and applications. Walked attendees through purchassing a domain name, setting up DNS, email, and static and dynamic website hosting.
Introduction to Version Control & Git
20
19
Guest lecture in the Software Architecture class at Thompson Rivers University. Introduced students to version control systems placing them in their historical context. Introduced Git in the context of distributed version control systems and demonstrated its basic operations. Discussed online platforms that aid the use of version control.
Nim workshop
20
18
Introduced participants to Nim, an experimental programming language with advanced metaprogramming and transpilation features.
Python for Data Analysis Workshop
20
17
Introduced participants to the use of Python for basic data analysis. Explained the concepts behind more Pythonic use of looping constructs. Taught basic use of graphing library Matplotlib and data analysis library Pandas as well as Jupyter notebooks in an applied manner. Introduced the topic of concurrency and the Global Interpreter Lock in Python.
Django introductory workshop
20
17
Introduced participants to the Model-View-Controller (MVC) design pattern. Compared Django with other MVC or MVC-like frameworks. Led participants through the creation of a basic Django web application.