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

Support for the retired rank.
Released v0.3.2-beta.2
Version 0.3.2-beta.2.
How long has JavaScript had an exponent operator????
Allow to be ran outside of the Overload directory with the -gamedir parameter on Linux and Mac.

Fixes #25.
No longer enforce stock maps.
Minor refactor to improve ELO function.
Potentially fix bug with another player devastators not being removed when triggered by that player.
Improve CTF ELO for low scoring games.
Alternate way to get size of category.
Fix some website bugs.
Released v4.0.3
`!pickmap` and `!forcemap` is now fully case insensitive.

Fixes #183.
Version 4.0.3.
Fix bugs with captains hanging around in teams captains channels after they've left the team.
Fix various bugs related to updated documentation.
Start a fresh challenges category when 40 or more games exist in the current challenges category.
Temp bug fix with script.
Released v0.3.2-beta.1
Update readmes.
Initial implementation of sniper packets.

Also unified olmod custom message types to a single file.
(11 total commits)
Further fixes for

Now will expect Overload and olmod to be installed
in the same directory by default , but it will not require this.
The `-gamedir` argument is restored as a way to to target a separate
overload installation dir.

This is a more general fix for #18.
Load libraries by absolute or relative path
Version 0.3.2-beta.1.
Project updates.
* olmod now targets Windows SDK 10.0.18362.0, as 8.1 is deprecated.
* Turned off whole program optimization, as this was causing build failure.
* Better modularized the Overload-specific dependencies. Instead of updating .csproj with the location of your Overload directory for each reference, now you just do it once in Directory.Build.targets.
Ignore all Visual Studio user files.
Initial implementation of sniper packets.

Also unified olmod custom message types to a single file.
(7 total commits)
Disable multiplayer rear view. Disable sniper packets by default. Don't allow players without sniper packets to join a game that uses them. Allow sniper packets to be added to the match presets.

(cherry picked from commit 37fcca42de96441a1f53c11479ae7e838d121de1)
Add SP toggle to Advanced Match Settings, send to server/clients
(2 total commits)
Create MPSniperPackets.enabled static member and use it to determine whether the game should have sniper packets or not.
Return the expected 200 from DCL API when an error occurs.
Released v2.0.0
Released v1.0.0
Version 2.0.0. Moved to Azure Functions.
Really fix bug with adding maps.
Fix bug with adding maps.
Released v4.0.2
Version 4.0.2.
Various bug fixes.
Upgrade packages.
Split maps into game types.

Fixes #171.
Update about page with new commands and options.
Allow `!report` to use tracker URLs.

Fixes #182.
Fix bug with `!suggesttime` when using dashes.

Fixes #179.
Add parameter to `!creatematch` to create a series between two teams.

Fixes #180.
Allow teams to issue challenges even if they have postseason challenges active.
Add `!testing` and `!stoptesting` commands.
Update to sniper packets.

Add improved synchronization for ammo, energy, weapons in use, and weapon ammo counts.

Fix devastator trigger bug.
Various bug fixes to sniper packets.
v0.3.1.3 with Sniper Packets.
(3 total commits)
Fix observer mode first person after observed ship dies.
(3 total commits)
Fix observer mode first person after observed ship dies.
(3 total commits)
JIP: fix joining as observer
(3 total commits)
JIP: fix joining as observer
(3 total commits)
Corrected sniper packets testing.
Sniper packets testing.
Released v4.0.1
Various code cleanup.
(6 total commits)
Disable flares in observer mode.
server browser: fix compile warnings
(7 total commits)
Anticheat module. Not perfect, but defeats easy-to-detect issues.
- Set weapon cooldown to 0.066s if unoverloaded crusher or lancer is fired within 0.066s of cooldown being completed.
- Do not allow mouse wheel for fire buttons.
- Remove mouse wheel for fire buttons from configs when loaded.
(69 total commits)
Fix several bugs, introduce panel in lower right for who you're observing and their KDA. Draw damage effects when in first person.
Update with download link
(55 total commits)
Released v4.0.0
Version 4.0.0.
Update olmod settings for Season 4.
- Fixes to various notification bugs, add reset capability that runs at the end of the stream.
- Fix bug with Discord Channels view in the control page.
- Fixes to various bugs related to Twitch token refreshing.
- Add return to control link on 500 pages that originate from the oauthpage.
- Add bit leaderboard API, currently unused.
- Delay starting notificaitons 2 seconds after game view appears.
- Fix donation notifications.
- Version 2.0.5.
Version 2.0.4.
Fix various bugs with support panel and ending screen.
Version 2.0.3.
Fixed bugs and added elapsed timer.
Fix various instances of name vs user. Version v2.0.2.
Fix some bugs. Version v2.0.1.
Version v2.0.0.
Fix various bugs.
Restrict season numbers on the records page.
Restrict season numbers on the player page.
More updates, working on debugging a Streamlabs bug.
Add Streamlabs donations.
Adding some final touches.
Checkpoint commit.
Various bug fixes and improvements.
Most major coding for game scene completed.
Checkpoint commit.
Checkpoint commit.
Checkpoint commit.
Remove mp4.
Remove invalid Google key.
Apparently I doubled up on things.
Start on version 2.0.
Various updates.
- Change config.js to settings.js
- Replace request with @root/request.
- Switch Javascript target to esnext.
- Probably good enough for version 1.0. Media Player