Current Work
Serialized novel and Podcast—about a former slave who happens to be immortal, looking to collect his pound of flesh from a man he bumped into back in 1518. Problem is, in the world of 2020, that man runs a counter terrorism task force out of 1 Police Plaza in New York City. The Masters is a violent romp through history, folklore, and science—full of true, but-stranger-than-fiction nuggets. There are blood harvesting renditions, government conspiracies, werewolf battles with mercenaries, and the mad scramble to understand, reproduce, and militarize an incredible human capability encoded right in our DNA.
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.
![](https://images.squarespace-cdn.com/content/v1/5dabaee11e9d9809a8816556/1617588620485-HIVX9RRGEWBGX9B6YFL3/image-asset.jpeg)
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.