Shrinkflation in Canadian Groceries
CMPT 353
Course Project · Python, Pandas, SciPy, scikit-learn
A statistical analysis of whether package sizes shrank while prices held or rose across major
Canadian grocery chains, benchmarked against StatCan's official food CPI.
- Cleaned and joined ~70M scraped price observations (Project Hammer) with StatCan CPI data
- Built a custom price index and compared it against official inflation figures
- Ran significance testing and regression to detect shrinkflation candidates by vendor
Reddit Corpus Analysis
CMPT 353
Course Project · PySpark, Pandas, scikit-learn
Large-scale analysis of Reddit submission data on the SFU Hadoop cluster, studying what drives
post success and whether regional subreddits scale with real-world population.
- PySpark extraction pipeline over Hive-partitioned submission/comment data on HDFS
- Kruskal-Wallis, Mann-Whitney, and a gradient-boosted classifier with per-category stratification
- Power-law fit of subreddit activity against 2021 census population data
Self-First
Dec 2025
Personal · TypeScript, React, Next.js, REST API
Privacy-first habit tracking app with a local-first architecture for full offline functionality
and end-to-end encrypted cloud sync — the server never sees plaintext user data.
- Account authentication and device linking
- Secure JSON export/import and backup
- Accessible UI with dark mode and large-text preferences
Daily Dilemma
Oct – Dec 2025
Group · React, FastAPI, PostgreSQL, Docker
Full-stack app where users answer daily ethical dilemmas and see real-time community results,
backed by a dedicated user service with authentication and analytics.
- FastAPI backend for game logic and majority-outcome computation
- User Service API with auth and player tracking
- Containerized with Docker; PostgreSQL via SQLAlchemy
LED Board — Spotify Display
Personal
Personal · Python, Raspberry Pi
Drives a 64×32 RGB LED matrix on a Raspberry Pi with a Spotify "Now Playing" mode — album art,
centered title, and a scrolling lyric line — plus a web-controlled text scroller.
- Single-process-per-mode design with smooth, tick-based scrolling
- No blocking I/O in the render loop
- Web UI for controlling the scroller remotely over local network
Chess Game
Dec 2024
Personal · C++
A full chess implementation in C++ with Player vs. Player and Player vs. AI modes, featuring
a custom AI opponent for strategic, challenging gameplay.
Weather App
Sept 2024
Personal · Java, HTML, CSS, JavaScript
A responsive weather app pulling real-time API data into a dynamic frontend, with local
storage caching to cut redundant API calls and speed up repeat visits.
Currency Converter
Personal
Personal · Python, Tkinter, REST API
A desktop currency converter with a Tkinter GUI, converting between currencies in real time
via a live exchange-rate API.
Graphing Calculator
Personal
Personal · Python, PySimpleGUI
A TI-83-style graphing calculator built with a custom GUI, supporting both standard math
evaluation and function graphing with trig, exponents, and expression parsing.
Desktop Music Player
Personal
Personal · Python, Tkinter
A desktop music player with a custom GUI — play, pause, stop, and skip controls for local
audio files.
Automated Planter Box
Sept – Dec 2024
Group · Sensors, Arduino, Mechanical Design
An automated irrigation system that monitors soil moisture and activates drip irrigation
accordingly, with a motorized roof for rain/snow protection and manual override.