I wanted to explore UI ideas for ETL. Can we make complex data transformations as easy to use as spreadsheets? What if we had tools to quickly diagnose+fix common issues in data pipelines?

To answer those questions, I built an interactive prototype in React that parses JS formulas as they’re edited. More info here.

This Website (GitHub)

Built using Hugo, Tailwind CSS, and an obsessive emphasis on performance. You can read more about it here. It has a dark mode using the new prefers-color-scheme media query and the Solarized colour scheme, because I love Solarized Dark.

Abundant Housing Vancouver Letter System

  1. An Angular front-end that generates personalized letters in support of housing projects
  2. A Serverless Framework back-end that uses Slack and AWS (Lambda, SES, S3, Athena) to review+send+analyze those letters

I wrote the front-end and Roman Lisagor wrote the initial version of the back end, but now I work on both. It’s been used over 1000 times, and most recently it was adopted by the BC Non-Profit Housing Association for their Build Homes Not Barriers campaign. More info here.

This started out small, as a tiny C# and WPF urban planning tool to help me visualize the impact of setback and lot size requirements on individual properties. Eventually I rewrote it using the HTML5 Canvas element, and after that I realized that I might as well scale it to entire neighbourhoods

I built an interactive map of every property in Vancouver using Mapbox, Eric Fischer’s remarkable Tippecanoe, and a Heroku app to serve the map tiles.

Warning: there is a bug in Tippecanoe that makes the map look a little wonky at lower zoom levels and the free Heroku tier takes ~10s to serve map data.

Rust Toys

I really like working in Rust as an alternative to C/C++. Here’s a CLI tarball utility and a silly procedural macro that enforces coding deadlines.

Vancouver Rezoning Scraper (GitHub)

This little thing scrapes the City of Vancouver’s rezoning application page then notifies of any changes via Slack. It’s an .NET Core Azure Function written in C# using Azure Table+Blob storage.

Everything Else

Drop by GitHub to see what else I’ve been up to lately.


Cities & Code

Things that don't quite fit in 280 characters.

Top Categories

View all categories


I'm a software engineer in Vancouver, Canada. I'm interested in databases, urban planning, computing history, and whatever else catches my fancy.

Learn More / Contact me