HeatWave logo

Heatwave Hourly Forecast

Languages used: Kotlin

Heatwave Hourly Forecast is available on the Google Play Store. An Android app created entirely by myself, Heatwave uses the DarkSky API to display weather information in a format that is designed to look like an hourly calendar. Users can see more or less information by tapping the screen. Users can also add as many locations as they desire, and swipe between them. Heatwave works best when living in a location where temperature is not relatively consistent throughout the day.


Languages used: JavaScript (React), PHP, SQL

Worldly.link is a localized link shortener. It can redirect users to different links based on the country they are visiting from. This is good for Amazon Affiliates and anyone else who needs to direct users to different websites based on the country they visit from.

Stretch Timer logo

Stretch Timer

Languages used: JavaScript (React Native)

Stretch Timer is an app I created to create and follow a stretch routine. It came out of my frustration with being unable to customize a video routine I found on YouTube. I enjoyed the routine, but there was a couple of stretches I wanted to swap out. Once I had memorized the routine, I stopped using the video but found I was spending too much time setting and resetting the timer on my phone. Furthermore, I missed the announcement of stretch steps. With Stretch Timer, I can build a stretch routine and play it. My phone announces the steps using text-to-speech and keeps track of time. Changing the routine is simple. I can play the entire routine without ever touching my phone, which ensures I can get fully relaxed. Stretch Timer is currently only available on Google Play but I do hope to have it available on the App Store in the near future. This was my first time creating a mobile app with React Native.

Cruising for Gas Simulation

Languages used: Python, JavaScript (JSON)

In this simulation, I simulate cars driving extra distances to get a better price on gas. This is something I have done myself many times, but represents an unnecessary source of emissions. The simulation aims to quantify the amount of unnecessary emissions in the city of London and the province of Ontario. The simulation and accompanying write-up are available on my site here.