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

Update spritefont.js

Comment/syntax cleanup.
Fix various bugs with > 4 players per team.
Released v4.0.6
Version 4.0.6.
Sort map categories for `!homes`.
Fix bug with channel topics.
Fix bug with team sizes > 4.
Issue #49 - Restricted Modifiers
(3 total commits)
Fix issue where rear view camera sometimes wouldn't be properly initialized and would require toggling to not bomb DrawHUD display
(3 total commits)
Separate olmod link from tracker.
The Yinut patch.
`!matchtime` for unconfirmed matches only, improve text on `!confirm`.
Fix resolution selector.

Fixes #52.
Fix merge error.
Fix bug with older clients being unable to join in progress due to invalid messages being sent.
(7 total commits)
Nice word.
(4 total commits)
Issue #47 - PIP Rear View option
(2 total commits)
The WhollyCow patch.
Released v0.3.4
Update readme.
Version 0.3.4, fix thunderbolt sound.
Minor formatting change.
Released v0.3.3
Update Linux script to use stderr.
Version 0.3.3.
Released v4.0.5
Update README.
Version 4.0.5.
Fix bug that was combining regular and postseason damage on an player's damage breakdown.
Released v1.2.2
Version 1.2.2.
Fix minor bug with adding stats from the wrong game.
Fix bug with not having enough maps when a challenge is created.
Fix bugs related to topic generation.

Fixes #188.
Automatically set Twitch name and whether they're streaming a challenge for pilots.

Fixes #187.
Add `!mynext` command.
Fix bug with rematches not recognizing the previous team size played.
Issue #21 - Improve JIP handling of disconnected pilots
(4 total commits)
Possible gsync fix, needs feedback.
Fix bug with older clients being unable to join in progress due to invalid messages being sent.
Fix to sniper packet implementation.

Fixes #34.
Re-upgrade to discord.js 12.3.1, and resolved setParent issues as discussed in discordjs/discord.js#4787.
Downgrade Discord.js to 12.2.0 until discordjs/discord.js#4787 is resolved.
Released v4.0.4
Version 4.0.4.
Version 2.0.2.
Update dev packages.
Fix various bugs found in testing.
Add testing setting so that test bot doesn't listen to other servers. Package.json updates.
Update website to include new home level categories.
Add neutral map commands. Update about page.
Fix Graphics Options VSync left arrow.

Fixes #39.
From @tobiasksu, fix left arrow not working in console.

Fixes #41.
(11 total commits)
Fix flak/cyclone/thunderbolt charge/fire rate holding over after death.

Fixes #38.
Released v2.0.1
Version 2.0.1.
Version 2.0.1.
Add IP Address to the properties.
Fix metrics tracking.
Fix incorrect IP address.
Fix bug with directories.
Updates to logging.
Fix script.
Fix script.
Fix regex.
Get date/time down to milliseconds for logging.
Fix nginx config.
Always create the nginx config.
Do not collect node requests.
Fix nginx config.
Redirect all http to
Update nginx script.
Update logger docking file.
Fix startup.
Fix docker-compose.
Fix instrumentation key.
Fix dependencies.
Fix regex.
Released v2.0.0
Update readme.
Update readme.
Update readme, remove unnecessary script.
Version 2.0.
Sleep 1 minute on starting the website.
Update docker-compose.
Update docker-compose.
Remove staging.
Fix certbot script.
Separate from work directories.
Update to docker compose. Media Player