Projects

Projects

Software is most interesting when it turns a vague idea into something useful. Here are a few projects that have shaped how I think about useful, flexible systems.

Tangential Solutions

Family Sessions

Visit Family Sessions

A family activity tracker built for quickly logging how time is spent, whether an activity is happening now or was completed earlier.

  • Ruby on Rails
  • Hotwire
  • SQLite
  • Progressive web app

What makes it interesting

  • A session can include multiple children, while validation prevents overlapping timers for the same child.
  • Quick-start timers and manual entries support both real-time tracking and logging activities after the fact.
  • Custom activity categories make the tracker adaptable to each household instead of prescribing a single routine.
  • Daily and weekly rollups feed gentle goals for doing at least—or no more than—a chosen amount of an activity.

Tangential Solutions

Budget

Open Budget

A personal finance app for planning monthly income and category budgets, recording transactions, and seeing at a glance how much remains to spend.

  • Ruby on Rails
  • React
  • TypeScript
  • PostgreSQL

Tangential Solutions

WebScrape API

View on GitHub

An API for triggering customizable web scrapes, with an architecture designed to accommodate the changing shape of data on the web.

  • Ruby
  • MongoDB
  • Resque
  • Web scraping

What makes it interesting

  • MongoDB provides a flexible home for scrape results whose schema changes from one source to the next.
  • Scraping strategies are composable, making it straightforward to add specialized behavior for links, images, and other resources.
  • Ruby's >> operator composes Proc objects, passing the result of one operation into the next.
  • Background work runs through Resque so larger scrapes do not hold up API requests.

More experiments live in the Tangential Solutions organization.