2026
-
Rebuilding a Dead iPod Game
Sept 7
I loved a 2009 game called Artificial Life. It simulated real-time evolution of protozoa. I took a crack at rebuilding a modern, in-browser version based on that experience. The new version features emergent behaviors, predator-prey dynamics, and a dynamic ecosystem.
-
The 0.25% Background: Building a Rarity System Into a Portfolio Site
Apr 13
I turned a portfolio rebuild into a craft exercise by hiding a gacha-style rarity system in the background animations. Fifteen variants, weighted probability, Cloudflare Workers, and a collector’s page nobody knows about. Sometimes you build things because they make the work yours.
2020
-
Slack Autoresponder – Part II
Apr 17
Today we flesh out our Slack Autoresponder, using Amazon’s Lambda toolkit, the Serverless framework, and RingCentral for messaging.
-
Slack Autoresponder – Part I
Apr 16
Now that I’m working remote, I’m using Slack more often. I need an autoresponder to ensure my team can reach me when needed, but give me space otherwise.
2014
-
JavaScript: The Importance of Input Validation
Dec 27
Always sanitize and/or validate the inputs of every function before assuming the data is valid.
-
Cryptography, JavaScript, and Performance
Nov 19
JavaScript really is powerful, if you know how to use it …
-
A Tale of Two Package Managers: Composer and NPM
Oct 16
How Composer and NPM do things wrige and, at the same time, very very wrong.
-
jQuery and Cross-site Scripting
Oct 2
Never trust user input, even if it’s coming from an allegedly trustworthy source.
-
Ultra-rapid Prototyping
Sept 23
I built an app last night that allows me to look up bus arrival times via SMS. It took me 2 hours. Node is incredible!
-
Selector Caching in jQuery
Aug 1
One of the first critiques I find myself writing while I review JavaScript code is “cache your selectors.”
-
Variable Coalescing
Jul 18
I wanted to take a moment to un-obfuscate a technique of mine for others so I can continue to use it in my code.