Most of my personal projects revolve around my ecosystem of
reusable code.
For NodeJS I run a private package system stored on BunnyCDN and imported into projects from a command line
module. All of my websites use a library free static compiler, markup language and automatic website
optimizer that are self made.
Project code is backed up to two storage regions in BunnyCDN & AWS S3 daily. I love Git but no longer use it
for personal work as it started causing problems with no benefits.
Repairathon Website (repairathon.ca)
I created a website for the volunteer group running Ottawa's first repairathon. I integrated AnimeJS for subtle animations while still maintaining perfect benchmark scores.
Portfolio Website
Created an HSV colour picker only populated with RGB values that pass WCAG contrast checks for white, black and both. Used a Voronoi algorithm to populate the empty space in the hue images between valid colours.
WCAG Color Picker
Created an HSV colour picker only populated with RGB values that pass WCAG contrast checks for white, black and both. Used a Voronoi algorithm to populate the empty space in the hue images between valid colours.
Cold Calling Automation
Created a fake bluetooth mouse using an esp32 device. It maintains a serial connection to my computer to receive instructions, and a bluetooth mouse connection to my iPhone. Enables me to start & end phone calls from my computer keyboard without ever touching my phone. C++ was required for latency reasons.
Cold Call Manager
Created a socket based NodeJS app that syncs a phone to a “master” computer. The app reads a spreadsheet determining what companies are available to call. Records when I called a business along with call statuses & call notes.
Small Business Finder
A lead finder & qualifier. Accepting a search term and country, makes a Google Places search in all somewhat populated cities for that country. Gets the details for every unique place found, analyzing their website for faults if one exists.
Computer Backup Tool
A terminal command that uses NodeJS to backup my files to two storage zones in both BunnyCDN & AWS S3. A daemon executes the script twice per day.
WebGL Rendering Engine
Graphics programming had started to fascinate me so I spent 2 months learning barebones WebGL and ES SL shaders. Ended up with a renderer that supports proper bloom, sun shafts and reflections among other basic graphic features.
Runtime is great for a browser, at half resolution it runs at ~1-3ms/frame (300 - 1000 fps) on an integrated macbook GPU. It leaves enough performance overhead for a simple game to run on.
Smart Image Saver
An NPM package I made for conveniently saving images locally. Supports image converting with sharp, automatic output folder creation & simplified handling of destination paths.
Prompt GPT
An NPM package I made for ChatGPT & GPT 4 that handles rate limiting, concurrency, timeouts and response validation.
Tired CLI
The first version of my global npm package that manages my private code
Better Debounce
A debounce function that's more reliable, performs better & indicates why it's executing the debounced function.
Halloween Show Editor
The most complex UI i’ve built. Scrapes youtube for the mp3 of a target song. Renders a timeline for 5 laser displays and 7 lights. Allows users to create & configure events on the timeline for each individual device.
Halloween Laser Path Generator
Created a UI that allows users to create RGB path points that get exported to JSON instructions for the laser projectors. I stored the design instructions in querystring so it could be easily shared, edited and stored without the need for a server.
Telnetflix
My friend built a program that renders movies to text over SSH so I built him a simple website that displayed the available movies so he could share his work more easily.
I used WebGL & Shader code to make two transition animations between movies. Both of the animations making up the intro sequence were made in Adobe After Effects. It was a lot of fun putting together the visual components for this project.