Experience
Software Engineer
Blurb
Feburary 2014 - Present | San Francisco, CA
- ✓ Wrote yaml parsing and writing for an automated translation app.
- ✓ Moved deprecated Test::Unit tests into either RSpec and Cucumber.
- ✓ Replaced the remnants of Classic Pagination (a deprecated, inefficient Rails pagination plugin) with references to Will Paginate.
- ✓ Created Blurb's conventions for the Ember-QUnit tests in Blurb's Ember repository.
- ✓ Learned the more complicated parts of Blurb's code-base through documenting them in RDoc.
- ✓ Helped train less experienced employees in learning Blurb's main repository and Ruby on Rails conventions.
Projects
Markovosophers [Github]
Markovosophers is a 3-gram text generator Sinatra and Redis app deployed on AWS. This is the first application I have deployed that uses either Sinatra or Redis and it is the first application I have deployed on AWS.
Favorite bit: 2gram_word_table.rb, the initial version of Markovosophers's WordTable, a concise (43 lines) Markov chain model.
Hack Underflow [Github]
Hack Underflow is a Stack Overflow clone that implements the questions, answers, comments, and editing features of SO. It also has an SO-inspired points system that awards privileges (such as voting and editing) at certain point levels. Hack Underflow started life as a Ruby on Rails app, but I have since converted it into a single-page Backbone.js app.
In order to seed the database of Hack Overflow with some existing questions and answers, I used nokogiri to scrape and parse a few hundred questions from Stack Overflow, for which I had to learn how XPath works.
This project also uses Foundation stylesheets, kaminari, friendly_id, underscore.inflector, and serializeJSON.
Favorite bit: seeds.rb, where I scrape Stack Overflow and use the resulting data to seed my DB.
crud_generator
A week of creating almost identical Rails controllers for multiple projects inspired me to write crud_generator, a rubygem that automatically creates default CRUD actions for your Rails controllers.
Favorite bit: the generate_crud_actions method, which can properly handle three powerful use cases in only 10 lines of code.
Active-Record-Lite
Active-Record-Lite is a reverse-engineered version of the find, where, has_many, belongs_to, has_one_through, and has_many_through methods of ActiveRecord::Base.
Favorite bit: the has_many_through method, which was a particularly tricky series of joins to get right.
Rails-Lite
Rails-Lite is a recreation of Rails's ActionController::Base and Application.routes using WEBrick.
Favorite bit: router.rb, a concise implementation of Rails's router.
Bio
I work at Pivotal as a Software Engineer. I have been a developer for the past 4 years. I have worked with Backbone, Ember, Angular and React on EcmaScript 5 and 6 and CoffeeScript. I have also developed an expertise in Ruby on Rails. Within a few months, I went from attending my first Railsbridge and writing my first line of code to teaching at Railsbridge and helping others have their first Ruby and Rails experiences. I am leading a team of developers on creating a test driven Ruby CLI for provisioning infrastructure on and deploying to Microsoft Azure. In the past, I have led efforts to standardize usage of testing frameworks and testing conventions. I obsess over writing clean code and test driving as much of my code as possible, especially in ways that I have not often seen test driven development. I have often used side-projects as a way of solving problems and annoyances I have experienced in my professional career and testing out new ideas about writing even cleaner better tested code. Recently, I have become interested in understanding how and why people feel excluded in teams and am working to make my current team as inclusive as possible.