Current Work
Serialized novel and Podcast—In August 1950, tissue samples from a Los Alamos research project are stolen from a lab in San Juan, Puerto Rico. To the FBI's astonishment, the thief is an old Taino farmer who hides the samples in a wooden crate on his property. When two field agents pry it open, they find something unexpected — a brass heirloom shaped like a ball. Confused, they notify station chief John Spillers, who immediately orders the crate brought to him. After inspecting its contents, he kills the men without hesitation and initiates a chain of covert actions. The farmer is transferred to a high security compound known only as the "Grass Cutting Area". Spillers then activates a special missions unit out of Fort Benning, with orders to parachute in, take possession of the old man, and kill everyone else.
Watching from beyond the control plane are the Area J operators — mathematicians who study and document the human layer of the event stream. They grow increasingly alarmed by John Spillers and the debris trail that appears to follows him, all the way back to December 1492.
Apps, Integrations, and Video Explainers
An app that generates SHSAT quizzes with answer keys and hints. Uses Markov chains and context-free-grammars to generate an infinite number of sample SHSAT quizzes. This is a no-compile Vue.js app that makes use of http-vue-loader, hosted on github pages.
On-demand semantic segmentation and text recognition for user-uploaded files. Why… the NYC Covid Safe app can’t tell the difference between a valid CDC vaccination card and a picture of a cat. My app uses signed S3 url’s, an S3 bucket, and a pair of API’s—textract
and rekognition
—to determine if your image is a legit vaccination card… or a picture of a cat. 🤣
For the millions of fans of the New York Times spelling bee game, I’ve set up a scheduled clue generator that gets all answers for the game every morning at 4am, then uses dictionary.com API endpoints to generate daily clues, and finally publishes those clues to a blog and an S3 bucket. Uses Github Actions
, Cypress
, Playwright
, and Rita.js
.
Video walkthrough of CI/CD tooling I built and processes I put into place to observe and correct software test automation running in Jenkins. The goal was to make flaky test failures in CI less likely than the probability of being struck by lightning ⚡.
Video that shows the process of creating a personal access token—to ensure continuity of service for API scripts and 3rd party software that connects to ShotGrid, and performs actions as a HumanUser.
Video that shows ShotGrid site admins how to transitiion a standard-authentication site to one that uses Autodesk Identity.
Video that shows the process of linking purchased ShotGrid licenses to a non-trial ShotGrid site. It takes you from the Autodesk account management site, where you will do the linking – to your ShotGrid site, where you will confirm the linking.
Custom webhook integration that lets engineers and artists run containerized vehicle and drone simulations against shelved Perforce Changelists. The integration consists of multiple components: a chrome extension (manifest v3), a custom webhook, a github action, Jenkins build, and a Kubernetes ingress controller.
Previous Work
When I was a scrum master, raising the quality and stability of the software my team delivered was my number one focus. Below are a few pieces of work that let me do that.

Video walk-though of hooking up AWS with Shotgun Webhooks. My team developed Webhooks, and were eager to dogfood the microservice as soon as possible. So I built an integration to send text messages when Asset statuses change. It uses a Python 3 AWS lambda behind an API gateway. The code I wrote for this was very simple, and later became the basis of an internal tool I wrote to monitor our build infrastructure.
The story of how we went from 16 semi-reliable Selenium-based tests maintained by a single person to over 900 Cypress tests, actively maintained by 16+ developers from over 9 backend and frontend agile teams.
Changes made by my team and my engineering organization that led to a noticeable leveling up of software quality, as well as quality of life.
How my engineering organization moved away from a top-down approach to test automation to one that empowers teams to be accountable for their work.