Experience & Amazing Feats
At MobileCause, I worked with a team to build a fundraising platform that helps nonprofit organizations increase donations & donor engagement. I was one of the senior members of this team & I spent time working on all parts of the stack which included Rails, MySQL, & RabbitMQ.
- Led the effort to upgrade the Rails stack from Rails 3.2 to Rails 4. This included upgrading the test framework (RSpec 2.x to 3.x) & organizing the upgrade changes so that they could be made incrementally to avoid merging & regression issues that accompany long running branches.
- Transitioned the CI system from a single node Jenkins CI to Travis CI. This improved build speed & visibility for the team because we were able to introduce Pull Request builds & concurrent builds into our workflow.
- Diagnosed & solved performance issues that allowed the application to properly handle increased load during periods of heavy traffic. This included improving performance in every part of the stack, from view rendering, to offloading tasks to workers, to database query optimization.
- Upgraded the UI in the Rails application from custom CSS to Bootstrap which increased the maintainability of the site as well as reduced time & effort needed to build new pages.
- Implemented a RabbitMQ based message queue to handle certain jobs asynchronously (sending emails, processing file uploads) to improve the performance of the system.
- Wrote & open-sourced an API integration wrapper for the CardConnect API in Ruby. See Projects section below for more details.
At Tendril, I worked on a Rails application that enables energy providers to engage their customers by encouraging them to save more energy & providing actionable feedback on how to accomplish that goal.
- Reduced technical debt within the web portal's code base. This included increasing test coverage, improving error handling, & improving performance.
- Led the effort to build automated configuration & deploy scripts for the web portal via Ansible.
- Primary developer on the Ruby based API client that interacts with the Java microservices back end of the system via a REST API.
- Member of the Site Reliability Guild which was formed to address stability & scaling issues across the whole system.
At Avaya, I worked on a sales tool that provided configuration details, price estimation, & design assurance for large scale telecommunications systems.
- Developer for the Product Model Wrapper. This involved working on an MFC based application written in C++, & working on the interface between the product model API & the application.
- Lead developer on 4 product models & developer on 20 product models. This involved estimating level of effort for development work, managing & maintaining separate code bases throughout multiple release cycles, working with Systems Engineers & other developers to ensure the successful deployment of models, & managing regression test suites for each model.
- Onboarded new developers by mentoring them on processes, code architecture, & understanding functional specifications, as well as managing computer environment setup & installation.
- Maintained a homegrown suite of development tools used by a team of 11 developers. This suite included a UI rendering engine for product model UIs, integration between a COM based engine wrapper & the .NET UI & testing tools. This was written in VB.Net using Visual Studio 2008.
Open Source Projects
CardConnect API Ruby Client -- A client-side interface to the CardConnect payment gateway API that makes integration with a Ruby or Rails project much simpler.Code on GitHub Install Gem
Parse NFL data like a boss -- A library for finding information like weekly player statistics, team schedules, & more from NFL.com.Code on GitHub Install Gem
My World Wide Website
Learn more about what it takes to make all the brilliance happen with Jekyll & GitHub Pages. ;)Code on GitHub
Bachelor of Science in Electrical & Computer Engineering
Graduated in December 2005 from:
Skills To Pay The Bills
- REST APIs
- AWS S3
- Travis CI
- Pair Programming
- Digital Ocean