Here are a few of the larger projects and jobs I have worked on. Click on a header to view!

August 2012 - Present

Various web applications supporting educational research conducted by WestEd. A challenging mix of new projects and maintenance of old projects keeps this job interesting.

  • Google maps API and Geocoding
  • LTI modules for online learning software
  • Large online student information systems
  • Collaborative tools for educational research
  • Rapid diagnosis of existing rails applications, and bug hunting without prior knowledge of the application.
  • Rapid Application Design with tools such as HAML, Bootstrap

September 2009 – October 2012, (and ongoing part-time volunteer)

Built a Rails application for City Union Mission in Kansas City, which manages information pertaining to their summer camp and volunteer opportunities. The application manages volunteer contact information, credentials, applications, as well as event scheduling, camp role placement, and training. It also keeps track of camper registration, statistics, and followup contacts. Information security is maintained by a role based system that only allows the appropriate view to the logged in user.

Since late 2011, the application has also been expanding to include donation tracking and receiving to streamline the process of receiving donations and hopefully retaining future contacts. Looking to the future, we plan to expand it to assist other volunteer departments within the mission.

This application currently requires over 70 tables, all normalized efficiently. I work closely with the people who use this application on a daily basis, tweaking the work flow and the presentation of data to maximize their productivity. All source code is maintained in a git repository, tracked via redmine, and staged on a staging server for testing and review before being placed into production. My time on this project is partially contracted but largely volunteer – I'd do it full time if I had no financial needs. :D

Foundation Auction
2011 – 2013

This application is a volunteer project I created to assist the local technical college with their annual foundation auction which is a major source of scholarships for the students of the tech college. The application keeps track of the auction items, donors, and attendees to the auction, and generates reports and forms they need to run the event. The final auction amounts can be entered into the application, and recently, a credit card system was added to streamline their payment process. As a result, the checkout time at the end of the auction dropped dramatically despite record attendance.

Rails really shines for this application - at one auction a feature was requested just one hour from the start of the auction. It was easy to create, test, refine, and deploy all within half an hour.

Compared to the mission project, this is a relatively simple project, but one to which I can show source code.

Maia Mailguard

Maia Mailguard is a server side, open source mail filter built on top of spamassassin and amavisd-new. Originally written in perl and php, the codebase predates many modern design and architecture standards. My first foray into the project involved integrating it with LDAP, and then separating the html into Smarty templates, a process that appears now to be a desire for MVC. While MVC may have been known before then, it was not a common framework in the web application world at the time.

I have tinkered with the idea of rewriting it from scratch with more modern methods. A stunning example of the improvement that can be made with modern methodology can be found in a blog post I wrote.

The project is stable – maybe too stable. It meets the needs to those using it, and as a result sees diminishing development time. Most users of Maia Mailguard have installed it and then mostly forgotten about it. The Maia website and the project source code can be found at http://www.maiamailguard.com

Osprey Network Technologies, Inc.

As co-founder and Vice President, I had the opportunity to experience starting and running an ISP, back in the days of 56K digital modems and before the phone and cable companies figured out what the Internet was. It's hard to summarize all of those experiences here. Here's a word jumble of memories:

Provisioning, system maintenance, system integration, routing, building maintenance, driving to remote installations, keeping roof leak off servers, managing office staff and tech support, firing employees :(, marketing at county fair in 100˚ heat wave, late night "system testing" (games), climbing towers for wireless installs, budgets ...

It was an incredible experience, but as the telcos and cable companies began to expand, they made life more and more difficult for the little ISP's. I left the company in order to preserve my friendship with my business partner and to save payroll costs. We are still close friends. :)

While running Osprey, I had need of a solution for ever increasing spam, and that led me to the Maia Mailguard project, which I ended up joining, as explained above.