Computers have been part of my life off and on since I was a kid... and now I write code for a living. I first wrote code on a TRS-80 in the late seventies. Then I started a Computer Science degree in the early eighties, but ran out of money for school and wound up taking a twenty year detour through life, the music, and everything.

I finally finished up that degree in 2004, but you can read about that on my school page. Here, I want to talk about what I've been doing since then. (Note: not very good at keeping this site up to date; this is current as of May 2007.)

I was lucky enough to stumble onto a temp job at Beluga Software Cooperative in Olympia, WA barely a month out of school. They had gone over-budget on a Java app, and needed someone to work as cheaply as possible to finish. Well, that application (tracking fish genetics samples for the WA Dept. of Fish and Wildlife) wound up taking until the following spring to write. And, by then, the folks at Beluga were pleased enough with my ability solve my own problems and to crank out code. They voted to make me a member of the cooperative... less than a year out of school and I was part owner of a company!

I worked a Beluga through the summer of 2006, working on a loan processing web application, a timesheet system, a web site for tracking scientific collection permits, a hatchery management system (again for the Dept. of Fish and Wildlife), and various other things. This was all in Java, using, at various times, JSPs/JSTL, Servlets, Struts, Spring, Acegi, JBoss, Tomcat, Eclipse iBatis, Sybase, Sql Server, etc.

In the winter of 2006, while I was "on the bench" for a while, I decided to look into all the hype I kept hearing about Ruby on Rails. I was pretty impressed with during my dabblings then... it seemed that the creators of Rails had thought of everything. But soon, work came back again (with a vengeance) and I was doing 60+ hours a week of Java. A few months later, I was getting burned out and had promised my girlfriend (now my wife) that we would move back to Portland right after I got out of school.

I wrote to an acquaintance in Portland to see what the job market was like down there and it turned out that he had taken a contract job in Hawaii! One thing led to another and by Labor Day 2006 I was working for ChipIn Inc. in Honolulu, HI. ChipIn is a web start up, which had created a Flash widget for collecting donations online. They had written the first version of the site in PHP but had started rewriting it in Java using WebWork and iBatis.

Fairly soon after I got to ChipIn, their analysis of where they were going with this second version of the site brought them to the realization that they were throwing in a lot of features the users had never asked for. So, they threw that all out and started again, building a simpler version. We decided to switch to using AndroMDA, which allows one to generate code from domain models. This gave us Spring services, Hibernate DAOs and all the config files. AndroMDA was pretty cool, though there were some trying moments with it. We kept WebWork on the front end and I was pretty impressed with it. We also used lots of javascript, including the excellent jQuery library.

We got this version up and running in a couple months and then started working on adding some institutional features which would allow companies to deactivate widgets that were put on undesirable sites and to see which sites do better with their fundraising. We added these features in a hurry but didn't like what we came up with that much. So we rolled them back out, and decided to build a separate institutional version... which, we also decided was an excellent chance to try out Ruby on Rails (hooray).

So, we had a crash course in Rails and cranked out yet another version of the ChipIn application. Along the way we developed a very complex domain model and extensively used REST web services to have different pieces talk to each other. Rails has been trying at times, but in general, it deserves a lot of the hype visited upon it. Ruby is a wonderfully straight-forward language and it really does allow one to do things that would be hard or impossible in Java.

Well, this has gotten pretty long. If I move on again and do a bunch more exciting stuff, I'll have to trim some of this out! So, sometimes (like last weekend when my server's hard drive died!) computers can be quite exasperating. But, I really enjoy crafting helpful software out of pure brain stuff. I'm glad that I finally got around to getting back at it and have already seen and done lots of great stuff. Here's to many more years of it!

Here is my résumé.

Writing [Home] Music