Recent Projects

Medium MegaClapper

2018 | Solo Project

A little hack and button that let’s you automatically give 50 claps to an article that you mega like! :-)

Made with: Javascript + Chrome extension APIs

MakeSoil (Coming soon)

2018 | Team of Two

Commissioned by founder of Trans-loc, ecopreneur Josh Whiton. Worked with a designer to do a complete zero-to-one full stack build of a social network to connect avid Soil Makers (people who convert food scraps to compost/soil). Debuted at multiple Climate Change and environmentally-focused events throughout second half of 2018. Built the entire application.

Built with: Node, React, Postgres, AWS

Amazon Analytics Internal Tool

2018 | Solo Project

Multiple microservices designed for data gathering on Amazon merchants. Used as part of marketing automation pipeline for enterprise clients.

Built with: NodeJS, Postgres, AWS Lambda

Shopify Analytics Data Pipeline

2018 | Solo Project

Convert a year-old web scraper and CRM into a data pipeline for marketing, analytics on Shopify sites. This project was an interesting challenge because some steps in the data processing were fully automated, while others had a Human-API-like integration where data was managed and changed by humans before being passed on to the next step in the pipeline.

This project included: 1) Internet sleuthing how to find good data about Shopify sites 2) Scraping at large scale, parsing, gathering, and integrating that data with multiple 3rd party services for lead prospecting and website analysis 3) Rebuilding a UI that brings data on demand to contractors so they can quickly edit and create custom content for leads 4) Integrating multiple services across AWS to manage a workload with CSVs with hundreds of thousands of rows

Built with: NodeJs, React, MongoDB (Atlas), AWS

2018 | Solo Project

Chrome extension developed for a client to allow data prospectors like recruiters to peek at a page before it’s clicked and easily pull out structured data just by hovering over a link. The extension takes in a url and runs a series of Lambda functions on the returned data. Since these functions all run in parallel, the user receives a rich variety of data like emails, images, social accounts, and meta data about the page usually in about one second.

Built with: Javascript, Chrome, Clay Base + AWS Lambda

Taipei Home

2018 | Collaboration with Sara Sánchez

taipei home short demo video

TAIPEI HOME – Search Mandarin Real Estate Listings in English

Finding good apartments in Taipei is tough! The best listings are all in Mandarin and, even if you can read it, the websites are hilariously difficult to use. (Google translate fails, and breaks the interfaces!)

Recently designer Sara Sanchez and I were trapped inside by a typhoon, so we made a little tool that lets you search Mandarin real estate listings using English.

Fun stuff: 1. Search by proximity to any station in the Taipei MRT/Subway system 2. Search by proximity to universities and schools 3. Search the most common room configurations, including private suites or rooms subleased in people’s houses

The interesting (if a little tedious) part was reverse engineering the APIs for the source data, to figure out how we could map English queries onto the various Mandarin categories. Every search permutation was represented by a number and a cryptic category name, so there was a lot of trial and error with spreadsheet in hand.

Tool hosted on Glitch

Built with: Client is a super-simple React app. Back-end is a single, 1000-line serverless function (AWS Lambda) built with Clay Base.

MealPal Automator

2018 | Solo Project

Chrome extension + automation service for my MealPal account. Select a pick-up time and your three favorite restaurants. As soon as the kitchen opens it schedules your meal, so you always get something you want!

mealpal automator

Paperspace Monitor

2018 | Solo Project

Chrome Webstore

Built while working on Fast.ai, Paperspace Monitor is a tiny Chrome extension that checks if you have Jupyter notebooks or compute instances running on Paperspace. It reminds you each hour, so you don’t accidentally leave instances on and accumulate big monthly bills.

Revelry

2018 | Solo Project

Revelry – turn your sound files into an Express server! I built this to prank my colleagues. I connected a hidden Express server to an unused bluetooth speaker in our office and mapped webhooks form our customer journey to various alert sounds.

Built with: Express, NodeJS

One-Click Dev Mode Chrome Extension

2018 | Solo Project

Available in the Chrome Store

dev mode extension gif

When testing an extension in development, it’s useful not to have any other extensions running in your browser.

One Click Dev Mode is a simple utility to disable and restore all your Chrome extensions with one click. No more incognito window for testing. And no more conflicts between your favorite extensions and the extension you’re building.

Built with: Javascript

Extension Helpers

2018 | Solo Project

Available on NPM

Promisified, cross-browser wrappers and helpers for extension APIs.

  • Normalized & Promisified: no more fussing with Chrome’s irregular callbacks, all functions returns a promise
  • Simple: hide the browser.api.action boilerplate behind function calls
  • Cross-Browser: use the same functions on Chrome, Firefox, or Edge

What the Sum?

2017 | Team of Three

First Prize Winner of Google Developer Group’s DevFestNYC Firebase Hackathon 2017!

devfestNYC winner ceremony

Finance trading simulation game made for Google Developer Group’s Firebase Hackathon.

Built with: Vue.js and Firebase.

PlataformaGt.com

2017 | Solo Project

Freelance project built for a private client with a large distribution business. Automates order and order management processes. Customer and management facing UI using Vue.js. Uses Geolocation data to determine customer location in poorly-mapped areas in Guatemala.

Built with: Node, Express, Vue.js, and Firebase.

JSON Sorter

2017 | Team of Two

Quick UI prototype that takes in arbitrarily nested JSON. On each keypress, quickly sorts and displays the JSON that contains the value of the input.

Excel UTF8 CSV Converter

2017 | Solo Project

Tiny script that adds the Byte Order Marker (BOM) for UTF-8 at the start of a CSV. Excel will read the BOM and correctly interpret UTF-8 characters when when opening the CSV.

Losing Power

2017 | Team of Three

losing power screenshot

Made for Ludum Dare Game Jam in 36 hours in July 2017. LD Theme: ‘Losing Power’. In a blacked out city with flickering street lights, players must find batteries to keep their flashlight shining – or else.

Built with: Unity, C#

Capio Speech Recognition API

2017 | Solo Project

A 24 hour coding challenge to build a back-end API that uses Capio.ai’s speech recognition technology. Exposes a single API route that can receive audio files, pass them to the Capio back-end for automatic transcription, and returns that transcription as JSON to the user. It also allows persistent storage of transcriptions with a PostgreSQL database.

Built with: Node, Express, PostgreSQL, Capio API

IBM Watson Search and Rescue

2017 | Team of Two

Made in 36 hours, IBM Watson Search and Rescue models a coordinated drone swarm with IBM Watson Visual Recognition API. Shows how machine learning could aid large-scale search & rescue at sea. The drone swarm searches and finds an overturned boat in 1km^2 to-scale model of open ocean. A trained custom classifier from the Watson API detects anomalies in the water and filters signal from noise using real-time drone images.

Built with: Unity, C#

Ground Control VR

2017 | Team of Four

ground control screenshot

An interstellar virtual reality simulation about clear communication and pair programming. Uses Firebase and WebAudio API to mimic Apollo-style radio transmissions. Asymmetric simulation where Ground Control sees a browser dashboard and pilot is immersed in VR.

Built with: AFrame/Aframe-React, Firebase, React/Redux, and WebAudio for the Google Daydream.

Mention by the Aframe development team here

Learn how to make immersive Apollo-style VR audio using nothing but the browser

Quick Draw Coding – Unity3D/C# (Coming to Steam July 2017)

2017 | Solo Project

quick draw coding

A Wild West adventure about typing code quickly and accurately. Converts code blocks into a shooting gallery throughout a western town. Tongue-in-cheek streak system rewards accurate and fast typing! Supports typing in C, C++, Ruby, Python, HTML, Javascript, and Go.

Built with: C#, Unity3D

Wisefridge – React/Redux/Node/Express/Sequelize

2017 | Team of Four

Full featured e-commerce website selling quotable fridge magnets.

Built with: React/Redux, Node, Express, and Sequelize

Escape Dead Earth

2017 | Team of Two

A casual, retro strategy game about hacking robots and escaping Earth. Game was designed to use only right and left click of mouse for gameplay. I was lead designer, but not lead developer on this project.

Built with: C#, Unity3D

Cartel (Defunct)

2016 | Team of Two

A large-scale simulation of entrepreneurship in cities. Multi-month prototype that simulated supply and demand market competition, externalities, crime, infrastructure, and an elaborate construction system.

Built with: C#, Unity3D

Python-a-thon Projects

In November 2016, I spent a few weeks in a cabin in Culpeper, VA. I spent my time reading and writing little programs to improve at Python. These apps are prototypes and were made to learn, not for production.

Academia.edu CV Scraper and Generator – Python

2016 | Solo Project

Generate a PDF CV from any Academia.edu profile

Built with: Python, BeautifulSoup, Pyramid

Theme and Variations – Python

2016 | Solo Project

Generate a musical composition in the theme-and-variations style through math

Built with: Python, Pyramid, NumPy, DataSounds

TwoHundredVideos – Python

2016 | Solo Project

Find 200 YouTube videos from any search query. Get a CSV ready for embedding!

Built with Python, BeautifulSoup, Pyramid

The Happiest Philosopher

2016 | Solo Project

NLP sentiment analysis and data visualization of famous works in philosophy. Auto-generates a graph with Plot.ly

Built with Python, TextBlob, Plot.ly, Pyramid

The Bargain Bin – Python

2016 | Solo Project

Recreates the experience of the bargain bin at a used book store. Click a button, get a weird book from Abebooks.com

Built with Python, Requests, BeautifulSoup, Pyramid, Bootstrap

More Reading
Newer// Now