Grab your bucket and shovel - welcome to my sandbox!
Jan
2021
The Path to All 5
Here's what I did to finish all associate and professional
AWS certifications
.
Dec
2020
CloudFormation exercises
A set of
AWS CloudFormation
exercises to prepare for
AWS certifications
.
Jul
2020
Ricochet Robots
A multiplayer implementation of a fun puzzle game using
Websockets
.
Feb
2020
Protractor 3.0
Measure angles on any browser document using this
Chrome
extension. Now supports embedded options, improved instantiation, persistent guides, and clockwise orientation.
Jan
2020
Lightweight Server Infrastructure Revisited
In which our protagonist's architectural decisions from 4 years ago are validated: implementing
Gitea
,
Drone
,
HAproxy
, and
PostgreSQL
on
Ubuntu 19.10
VPS cluster.
Oct
2019
Protractor 2.0
Measure angles on any browser document using this
Chrome extension
. This version sports a UI overhaul, nudge tool, improved resize, and rotation.
*
2018
Procore BIM
I've been leading Procore's Virtual Design and Construction team for the last couple of years, living in
.NET
,
WebGL
, and
Firebase
, among other things. We're GA on several products.
Nov
2017
AI Swarms
Swarm simulation using
RxJS
, featuring organic movement, flocking behavior, independent AIs, and grid-based vision, all at scale.
Mar
2017
Protractor
Measure angles on any browser document using this
Chrome extension
.
Oct
2016
World Cup Matches: 1930-2014
Explore a chord diagram visualization for World Cup matches leveraging
D3.js
,
ES6
,
Webpack
, and
CSS Modules
with parsers built in
Haskell
and
Aeson
.
Apr
2016
Number Munchers
Play one of my favorite childhood games: MECC's classic Number Munchers, rebuilt with
React
,
Redux
,
Webpack
,
SASS
, and
ES6
Jan
2016
CA Buoy Data: 1982-2015
Ask and answer questions about California coastal weather data using this visualization, built with
D3.js
,
Three.js
, and
SASS
.
Nov
2015
Lightweight Server Environment
Set up a super-lightweight production environment using
GOGS
for version control,
Drone
for continuous integration, and
HAProxy
for load balancing.
Oct
2015
Sorting Algorithm Visualizations
Step through common sorting algorithms using these animations built with
D3.js
.
Aug
2015
Pixel Palettes
Using the pixels from one image, try to reproduce another image with the same dimensions. Here's a rough solution using
Node
, applied to the Mona Lisa, American Gothic, and others.
Mar
2014
3 Hours to Minesweeper
Play this rough 3-hour build of Minesweeper using
vanilla JS
and
JQuery
.
Feb
2014
Drinks Slot Machine
Take your chances and see if you can win coffee, espresso, or tea from this slot machine built with
CSS 3
and
JQuery
.
Dec
2013
Cryptanalysis: Nihilist Ciphers
Crack your first Nihilist cipher with this guide, then extend your skills to Vignere ciphers.