The Sweet Spot
On software development, engineering leadership, machine learning and all things shiny.

The following are pointers to side projects and libraries that I've built over the years. Some are still running, and others are no longer maintained. All of them have been super fun to build and learn from.

Wejoinin

https://www.wejoinin.com

Wejoinin is an accidentally successful side project that creates and manages signup sheets. My co-founder and I launched over ten years ago as students, and it's slowly and steadily grown year over year. In peak months, it averages 75,000 MAU and supports businesses, non-profits and volunteer groups.

Rails, React, Elm

proxee

A zero-config HTTP reverse proxy for microservice local development

Rust

babyshusher3000

A CLI tool to play shushing noises. If you're, you know, coding when the baby's around.

Rust

babblefish

I built this TensorFlow-based baby cry detector to keep aggregate stats of how long it took the little one to cry himself to sleep. See my writeups about this project in the Articles section.

TensorFlow, Python, Arduino

Spendyvision

https://www.spendyvision.com

Finally, a budget view for your Amazon purchases. I built this (nearing release) because it's really hard to get visibility into Amazon spending in your Mint reports. Come to think about it, that's probably what they want... 🤔

Typescript, Ramda, React

Babygenius

Alexa-powered baby stats logging. If you're a parent, you know that it's a good idea to keep track of your newborn's diaper changes and feedings. You can say things like "Alexa, tell Babygenius to log a feeding at 9 PM yesterday" and Alexa dutifully records your baby lifelog.

Elixir, Phoenix

Zipgenius

API mapping time zones to zip codes. This was mainly a companion project to the Babygenius app above (I was curious how quickly one could build Phoenix APIs, and how performant they would be in The Real World)

Elixir, Phoenix

Sweetcadence

A running app on the Pebble Watch platform for tracking step cadences. Running cadence is important to keep track of so you know how you need to adjust your form for maximum running efficiency.

RxJS, Pebble.js SDK

Quickcadence

A npm package that takes accelerometer data and emits step events. Intended usage is for wearables. This project also includes a fun visualizer that allows the user to visualize realtime accelerometer data from the HTML5 devicemotion APIs, implemented in Cycle.js. This library was the basis for my talk "Reactive Programming for Couch Potatoes"

RxJS, Cycle.js, BaconJS

Stoplight

NPM package to detect pauses - stoplights - in GPX trackpoint streams.

RxJS

Cyclecity

A stoplight wait time map for your city, crowdsourced from bike commuter information from Strava. I was inspired on my bike commute to work one day, wondering if I could have a bike trip planner that took stoplight wait times under consideration. This project ingests bicycle commuter data from Strava into a PostGIS database and overlays it across a map in a heatmap-like visualization.

RxJS, PostGIS, Rails

Stressfactor

A Ruby gem calculating running training metrics from Strava GPS data. Training Stress Score and Grade Adjusted Pace are derived from reading a couple of papers and backing out an algorithm.

Ruby

Chordmeister

A parser for guitar tabs pulled off of online tablature sites.

Bookplanner

A web app for an education nonprofit that rotates books among classrooms. At its heart is a CSP solver.

Rails, Amb (CSP solver gem)

shmile

A DIY DSLR photobooth for weddings and events. A Node driver coordinates a Web UI and a gphoto bridge, and prints out a fun keepsake at the end.

Node, SVG

mmtss

A collaborative music looping station (art installation). Audience members "play" a sample over a four bar loop, layering over previous audience member recordings.

Node, SVG, Ableton Live/OSC