I'm Software Engineer

in San Francisco.
I build serious tools and silly hacks. Currently traveling, recently at Joyable. I'll be looking for work again in the fall of 2019.

CSS-Only Chat

So, it turns out that css background-images don't get loaded until the relevant selector is triggered.

Many people might say "neat!"

I used it to build a bi-directional CSS-only async chat.

Read more


Totes-not-amazon.com: Markov Chain Generation for AWS Announcements

I challenge you to reliably tell the difference between AWS and Totes-not-amazon.

Read more


Scarr: S3 + Cloudfront + ACM + Route53

There are a bunch of free/cheap options for hosting static sites (just html/css/js) out there: github pages, netlify, firebase hosting - but when I want to build a bulletproof static site "for real", my go-to toolset is S3 for hosting with Cloudfront caching in front of it.

My workflow for that usually looks like:

Read more


Building a url-shortener with Lambda — JUST Lambda

Some people, when confronted with a problem, think "I know, I'll use AWS Lambda." Now they have thousands of concurrent problems.

If you want to know how to build a sanely-architected url-shortener using AWS Lambda on top of a datastore like Postgres, this is not the post for you. We're going to build a Rube-Goldberg url-shortener using just Lambda.

Read more


Disguising Ruby as Javascript

Because my parents didn't raise me right, I decided to take another crack at making valid ruby that is indistinguishable from javascript.

Update: This post became a talk at RubyConf 2018.

Read more