About

Fullstack web developer

As a software developer, I build web applications end to end with Ruby on Rails, JavaScript, PostgreSQL, Python, and MVC frameworks like Ember.js. I value test-driven development and enjoy pair programming. My background in mathematics has given me the skills for breaking down and tackling difficult problems. From podcasting to gSchool, I have a propensity to jumping into new challenges head first.

Resume here.

Projects

All code available on github.

Carfree

Carfree is an app for determining the distance traveled and emissions saved by traveling by bus, BART, bike, or on foot. The backend is an API built on Ruby on Rails that uses the 511.org, BART, and GoogleMaps APIs. 511.org data is stored in a Postgresql database, from which rake tasks querying the Google API were used to populate a redis database with the distances between each AC Transit bus stop on every route. The frontend is built in Ember.js. Chart.js was used for pie charts of miles traveled and emissions saved.

  • API code
  • Frontend code
  • MASH

    Mash is an app that replicates the children's paper and pencil game. It uses Javascript and jQuery. Design is still in the works, but it's a fun little game.

  • Code on Github
  • Twitter Heat Map

    Working with Max Gordon, this is a heatmap of tweets within 5 miles of San Francisco. Because of database and Twitter API limits, only 100 are pulled each hours and after 6 hours, they are removed from the database. This is also built with a Rails API backend and Ember.js frontend. Mapbox used.

  • API code
  • Frontend Code
  • Residenz Dungeon

    This app was an experiment in using GDAL2Tiles to overlay a hexagonal gameboard over an existing real world map, such as the Residenz at Wurzburg, Germany. I used the Google Maps API, GDAL2Tiles, and Infobox.js library. This was one of my first forays in javascript and uses pure javascipt, no jQuery.

  • Code
  • Blog post on Medium
  • Conway's Game of Life

    A Ruby implementation of Conway's Game of Life in the terminal. Each run is seeded randomly and player can choose the size of the board.

  • Code on Github