Header image for Boggler
Boggler

A minimal Boggle experience.

Header image for Barbell Tipping Simulator 2023
Barbell Tipping Simulator 2023

I made a barbell simulator to answer the questions I ask myself at the gym.

Solving this disc puzzle

When it comes to fiddling with numbers, computers are faster than I am.

Global Entry appointment scraper

Global Entry timeslots are hard to get. This script makes it much easier.

New York Times mini crossword leaderboard scraper

I wrote a script to save my daily leaderboard for posterity and bragging rights.

Design decisions in Wordle vs. my homegrown Spelling Bee

Same challenges, different implementations.

Rubik's Cube visualizer

A self-contained move visualizer written in three.js.

Header image for Face Memory
Face Memory

How quickly can you remember faces and names? Find out.

Recovering text messages from Textra with Python data wrangling

What do you mean you don’t have a proper export feature?

Migrating to Hugo and Netlify

Static sites are fast, free, and frictionless. Perfect for my use case.

Header image for Spelling Bee
Spelling Bee

A homegrown version of the entertaining New York Times puzzle.

For More Diverse Corporate Boards, Move Down the Org Chart

A Businessweek article on encouraging executive diversity through corporate directorship that I aggregated data for.

The Hottest Corporate Board Seats in America Right Now

Which corporate boards have the most impressive lineups? I helped find out.

Header image for Sobriquets
Sobriquets

It’s Codenames.

Header image for The Washington Post loves cause-and-effect headlines. Now, you must unscramble them
The Washington Post loves cause-and-effect headlines. Now, you must unscramble them

When a scrolling news ticker is a permanent fixture on your desktop at work, you start noticing patterns in headlines.

Header image for Are you better at ordering wings than a computer?
Are you better at ordering wings than a computer?

With prices this strange and algorithms this good, you definitely aren’t.

Wanted: 3,732 Women to Govern Corporate America

I pitched a story to Bloomberg News and queried data for it — it was published in Bloomberg Businessweek.

Header image for Bookish — a minimal reading list manager
Bookish — a minimal reading list manager

I couldn’t find an app that I liked so I made my own.

Header image for T-REX vs. PENGUIN: 2-Disc Collector's Edition
T-REX vs. PENGUIN: 2-Disc Collector's Edition

A Scratch game I made in 2013 shouldn’t be this fun. It still is.

Header image for What makes Today's Top Hits unique?
What makes Today's Top Hits unique?

Using PCA and d3.js on Spotify data to find out what factors make songs unique. Best in desktop Chrome.

The next frontier for Architecture Astronauts?

This article was written 17 years ago, but its argument felt very familiar.

Header image for HaQ: a proof-of-concept automated trivia answer app
HaQ: a proof-of-concept automated trivia answer app

This app magically answers questions in everyone’s favorite new trivia app, HQ.

Header image for Minesweeper Madness, updated
Minesweeper Madness, updated

The third-person minesweeping sensation is back and better than ever.

Header image for Mocking Spongebob GroupMe bot
Mocking Spongebob GroupMe bot

This bot automatically mocks people Spongebob-style. Inspired by a recent meme.

Header image for HangBot: a GroupMe bot that plays hangman
HangBot: a GroupMe bot that plays hangman

Playing text-based games through a messaging app.

A quick guide to using LaTeX

Understanding and using this document preparation system makes documents look much more professional.

Endless Lake and pattern-based games

Some thoughts about how pattern-based design can make a game’s skill curve more rewarding and extend its gameplay life.

Brownie recipe

This recipe is my crowning achievement in the culinary arts and my ultimate contribution to the world of baking.