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

Add market prices to the survey.
ES6 for console/website.
Fix flipping.
Fix bugs.
Go a little easier on the memory usage.
Fix bug with creep count.
Fix year.
Fix bug with date.
Define lastTime properly.
Implement survey.
Don't flip things we can't use in case we get stuck with them.
Various market enhancements.
Start on survey code.
Correct order of structures with energy.
Man, the closure compiler sure was a whiny bitch today.
More appeasement.
More closure appeasement.
More destructure appeasing.
Another closure issue, plus a potential performance gain.
More Google Closure Compiler appeasing.
Third attempt to appease Google Closure Compiler.
Revert previous change, Google Closure just doesn't like destructuring on arrays.
Reverting last change, that wasn't the problem.
(2 total commits)
Fix destructuring/closure issue.
RIP logging.
If there's collecting to do, quit standing around.
Fix labs.
Clear labs when done.
Don't cache labs.
Week 12, edit channel topic and game!
From week 11, completed user profiles.
Quotes, how do they work?
2nd attempt to fix stuck labs.
Attempt to fix stuck labs.
Remove unused var.
More leaning up on storers.
Fix URL for Steam Client Extension.
Fix selling.
Correct flipping.
Get leaner on healers and storers.
Fix bug with buying resources.
Revert scientist count change.
(2 total commits)
Cleanup cleanup rooms. Yes, that makes sense.
Fix bugs with boosting.
If structure doesn't exist, don't try to repair it.
Fix collecting energy.
Suicide dismantlers.
Move || [] to the right place.
(2 total commits)
Really fix upgraders.
Fix upgraders.
(2 total commits)
Fix hostile structures count to exclude controller.
Fix selling.
Teaking army size for mines.
Be smarter about cleaning up spawns.
7's not good enough, let's do 10.
Fix odd bug with assignments.
Fix collecting energy assignment.
Let storers fill labs with energy.
2 scientists when room is under seige.
Don't create armies from rooms that aren't base.
Use ranged in room defense.
Correct when we fire towers.
Don't fire towers if any under 500 energy.
Fix length count.
Better tower code.
Run room every turn when there's hostiles.
Geez, way too many!
Fix spawning armies.
Correct amount of mineral to make.
Make minerals that we should buy but can't.
Fix ranged boost.
Change squares to retreat to.
Always get boosts.
Use correct object for armies.
Change energy thresholds on terminals.
Fix bugs with terminal code.
Get escorted by someone else if your old escort dies.
Correct equality operator.
Don't pickup resources in room when there are hostiles.
Scientists to fill terminals before extensions.
Correct healer count.
I got tired of miners not moving fast.
Ensure there's a threat before attacking something.
Add ranged defenders.
Increase caching time.
Fix boosting when players come in.
Actually, let's just boost them instead.
Return defend divisor to 20.
Fix some CPU issues.
Get collectors working again.
Make max to 3 decimal places.
Update profiler.
Better profiling.
Adjusting value.
Fix bug with threat.
Fix defense creeps.
Calculate fleeing for all rooms.
Really fix threat calc.
Fix threat calc. Media Player