(May 2024)

Tinyping is a tool to help people (myself included) to make sure they're using their time in accordance with their values.

It does this by random sampling: every so often, it will ask you what you're working on. Once it has enough pings, you can use statistics to build up an accurate picture of how you're using your time!

Tinyping is currently under development and hasn't been released yet; there's a placeholder page at

This project started out as the last thing-a-month, and was inspired by TagTime.


(April 2024, last updated May 2024)

While building tinyping, I had a lot of trouble syncing complex types between Elm and TypeScript, so I started building elm-duet. It takes a JSON Type Definition schema and generates both Elm and TypeScript type definitions so the system can be type-checked end-to-end.

You can get source and binary releases for many platforms at BrianHicks/elm-duet.

engineering design systems at Vendr

(October 2023, last updated May 2024)

In late October 2023, I started working at Vendr as a staff design systems engineer. In that role, I work with both the design and engineering teams at Vendr to make making a consistent user experience easier.

I've notched some notable performance wins at Vendr! For example, I reduced our first contentful paint metric by about 2 seconds in the first quarter of 2024, which brought largest contentful paint down as well.

Past Projects

thing-a-month (awareness) (March 2024 to May 2024)
thing-a-month, making cool stuff in a time-constrained way (February 2024 to May 2024)
thing-a-month (meta), setting the stage for the rest of the project (February 2024)
being the wandering toolmaker, staff engineering at NoRedInk (May 2022 to October 2023)
learning Alloy, model all the things! (August 2022 to October 2023)
bold, a remote-first build system (December 2022 to January 2023)
home recycling, stop throwing away plastic (July 2022)
rbt, the Roc build tool (June 2021 to December 2022)
elm-csv, a CSV parser (January 2021 to November 2021)
bad-datalog, a datalog in Elm (August 2020 to June 2022)
a batch at the Recurse Center, M1 2020 (January 2020 to January 2020)