Music. Coding. Gaming. Life.


Programming has been a hobby of mine since I was a child. I am entirely self-taught, and have managed to carve out a career in the field that spans over fifteen years.

Initially, I worked with BASIC on the TI 99/4A, Atari 130XE, and the Commodore 64 and 128. This transitioned easily to Mac OS 7's QBasic. Then I learned Microsoft Visual Basic 4 through 6 and starting making small programs and games. My first two programming jobs involved me learning Microsoft Access, with all kinds of back-end VBScript.

In 1998, I got heavily interested in web technology, and took a dive into HTML and JavaScript. Soon, I'd pick up Visual Basic.NET, C#, and ASP.NET. I was then able to transition my HTML knowledge to the modern HTML5 browser. My JavaScript experience also readied me for learning Node.js. Along the way I've picked up a bunch of PHP and C/C++ as well somehow.

In many ways, I consider the core concept of coding to come quite naturally to me. You simply break a task down into smaller and smaller tasks. What really fascinates me about coding, however, is how you can put all these simple tasks together to do something phenomenal.

I am involved in many projects outside of my professional career that involve programming in some way. This page is dedicated to showcasing those projects.

Current Projects

Commits and Releases

Version 0.3.1. Bug fixes for finals tournament.
Add Ashe to randomonium.
Updates to sending data from The Observatory via websocket.
Fix bugs with displaying seasons.
Bug fixes for Finals Tournament. Need to fix broadcasting backups.
Version 0.3. Fix bugs, get the bot to work for qualifiers.
Update console title.
Update console title.
Update console title.
Update console title.
Pull from all available players for opponent selection in Tournament.
Improve error handling.
Complete finals tournament commands. Untested.
Further work on starting the finals tournament.
Begin working on wildcard matches.
Added further commands for preparing for a Finals tournament.
Start working on openfinals command
Scaffolding for next stage of development.
Fix minor bugs.
Add players, events, and matches to the database.

Also, remove old commands that don't make sense anymore.
Setup alerts for when new players join and home levels are set.
Add rules to UI.
Automatically open The Booth when The Observatory goes live.
Remove hosts, add Booth Discord channel, add season standings to UI
Upgrade node-database to v1.1.0.
Completed bumper carousels, upgrade node-database to v1.1.0.
Finish Observatory intro bumper
Adding comments for what the next commands will need to do.

Also, implement locked rosters, and add SQL file that rebuilds the database.
Fix analyzer back to stereo mix.
(2 total commits)
Remove old index.
(15 total commits)
Bug fixes, this is now stable to use.
Update for The Observatory, Crypt of the NecroDancer outside of seasons, and also add a dedicated full screen webcam view.
Fix various bugs in testing, this should be a stable roster management system.
Allow for commands to have one character messages.
Various bug fixes, the new FusionBot is now usable.
Remove spotify web helper, update positioning for ND races, update intro analyzer.
Various bug fixes.
More bug fixes.
Remove TMI, fix bugs.
ES7 update.
Update linting.
Fix for Chrome 69.
Add multiple playlists.
Spotify fix for iOS control page.
Automated CoNDOR scenes. Current stats support for Season 7 only.
Update and bug fix for CoNDOR 7.
Incorporate Wild Wednesday into the main scene, plus some badly needed cleanup.
Incorporate DCL info into main scene.
What's new is old.
Remove old index.
Start moving DCL into the main scene.
(3 total commits)
Fix a new Spotify bug.
(9 total commits)
The Observatory Season 11.
Add OBS websocket remote control for scenes. I'll never forget to mute or unmute again!
Fix various broken APIs, modernize code a bit. Media Player