Projects

*Has not been updated in a while

Lezer Playground Work in progress

A web UI for developing Lezer grammars with instant feedback. Lezer grammars are used by CodeMirror for language support (parsing, syntax highglighting etc.), the generated parser can also be used outside of CodeMirror to generate a syntax tree.

Lezer Playground


sHAR Work in progress

Share your HAR files — sHAR is a web service that lets you upload the JSON representation of network requests (HAR files). Similar to the Network panel in Chrome Dev Tools, but available as a URL that can be shared.

sHAR


Trendsy Work in progress

An iOS app that shows listings that are trending on Etsy. Wanted to try:

  • building a mobile app
  • understanding the mobile development cycle
  • Swift
  • building a webservice that powers a mobile app
  • checking out the mobile analytics landscape

Rejected from the App Store for not providing any unique functionality....


Image Resizing Service

An image resizing service built using nginx+lua for serving the right image size based on device pixels. Used by the Trendsy app – results in less bytes over the wire and avoids image resizing on the device.

Sample Resize URL


Daisy

A Chrome extension that shows one listing every day. Built during Hack Week 2014 at Etsy with designer Rachel Nash.

Claire

A Chrome extension that shows an orange icon if the website you are browing uses CloudFlare. The idea was born during a casual conversation with a co-worker at the kitchen counter, built during the early days of CloudFlare and is still used by employees and some 6k+ users... don't really know why ;)

Claire on the Chrome Web Store Claire Source


fstream

People are swearing on Twitter. A lot.

Streams tweets with the f-word in near real-time to the browser by consuming the Twitter firehose (filtered by search) and using WebSockets. node.js for processing the Twitter stream, socket.io for WebSocket server, Redis for pub-sub

Ended up having to write a node library for consuming the Twitter stream that processed the timeout and other error responses in the stream. It's called tstream and is available on npm as tstream

The UI possibilities for a stream like this are limitless. Currently this data is streamed as is to the browser, in additional 10 second counts are sent to StatHat (which is where the graph is from).

fstream


SingleCloud

Play a single SoundCloud song.

Was missing the ability to play/share just one SoundCloud song. Wrote about why/how I built it.

SingleCloud


Airport Codes

A JSON API that returns information about an airport when queried by airport code. Date is sourced from the csv provided by OpenFlights. Used by Claire.

Airport Codes

Airport JSON for LHR


Temporary Redirect

One fine day bought the domain temporaryredirect.com and set it up to send a 307 Temporary Redirect response to redirect to 307.temporaryredirect.com. Super meta.

Temporary Redirect


TextToCall

Wanted to build something with Twilio back when it was the new hawtness. Created a web app that takes a text input and turns that into a phone call by combining Twilio's telephoy services and text to speech.

Built using Rails (picked it mostly for the sake of omniauth) on Heroku's now decomissioned Bamboo stack... needs to be ported to their newer infrastructure.

TextToCall