I have been programming to support companies I have owned or worked with for over seventeen years. In that time, I have learned the practices that can only be learned through experience. I have learned how to write code that is modular, extendable, maintainable, and readable. I understand the difference between code that will get the job done fast and code that will get the job done well, and when to use each. I know how a little good planning can save a project countless man-hours. And, most importantly, I know the limits of my knowledge and when to ask questions of those who know more than me.
I prefer to work with people who are smarter than me, care passionately about the quality of their work, and make software that people actually want to use. Making the world a better place would be a pretty nice bonus.
If you'd like to know more there's plenty of info available at masukomi.org
I've spent the majority of my time at RBM merging the functionality of a Rails 1.x app into a similar but separate Rails 3.x app. This includes: refactoring all aspects of the app, generating custom migration scripts to bring over, and modify, the data from the older app's structure into one that works for the newer app.
Rode a BMW F650 GS motorcycle 17,972 miles from Boston, Massachusetts, USA to Ushuaia, Tierra Del Fuego, Argentina (the southernmost city in the world), and on to Buenos Aires. Based on my experiences from this trip and prior research, I am putting together a book of tips and tricks to help future adventurers plan their journeys.
As the first web developer in a new business unit, I was responsible for putting together the first customer-facing graphs and information pages, as well as tools to provision internal systems. As the team grew and we acquired Acerno, I helped improve and expand the primary internal provisioning system that came along with the acquisition.
My various projects involved the use of Java with Struts, Perl, and Python.
I spent the majority of my time at International Strategies working on a web based system that combined Customer Relationship Management, Sales Force Automation, and Content Management tools. It was specifically tailored to the needs of global logistics service providers. ForwarderEdge was written in Java and based on the ofBiz framework. I was tasked with adding a variety of new functionality to the application's back end. This involved the development of a separate (and extremely modular) integration server. It leveraged Java Message Service (JMS) technology to ingest shipment, rate, and account data in whatever format our customers had available, convert it to a standard XML schema, and send it to the appropriate installation.
A number of scripts were also written in Ruby and Perl to provide fast examples of importing potential customer's data into ForwarderEdge. The rapid development cycles of Ruby and Perl allowed us to easily deal with the frequently changing customer data schemas. It also provided a means to generate scripts that could act as functional templates for the more formal Java code that would later be installed in the Integration server.
I've been working professionally (as a web developer) since 1996. I spent the first eight years working for myself. Before that, I spent a number of years doing Graphic Design, Prepress, and Web Design work.
I have contributed to a number of open source, and private, projects in various ways over the years. The following is a sampling of projects in which I was either the sole developer or played a significant role. For a list of the open source work I've been doing lately check out my repositories on GitHub
Written in Ruby on Rails, and utilizing MongoDB, MObtvse aims to be the best Markdown specific blogging platform you can use.
acl_plus_rbac brings together the power of Role-Based Access Control and Access Control Lists in a simple, open source, Ruby on Rails plugin; allowing you to use RBAC to control access to record types and ACL to exclude specific records.
Ruby on Rails plugin that makes managing a table of global and grouped key, value pairs easy. Use it to easily manage global app settings, user specific preferences, and more. This builds on the original Settings plugin by adding support for groups of settings.
An embeddable, or standalone open source SMTP server written in Java. Useful when your application needs to send mail but you don't want to require users to configure the app to know about a server, or, if one isn't available.
An open source news aggregator that supports RSS, RDF, and ATOM feeds. Downloaded entries are stored in an embedded SQL database and are completely searchable using simple or complex query semantics. Caterpillar strives to be an extremely simple and easy to use news aggregator with a small visual footprint and powerful features. The latest, not currently public, version of Caterpillar helps deal with information overload by adding Bayesian filtering to find and highlight “interesting” articles in your subscribed feeds.
Added file level statistics and debugging features to iBatis Breakdown. Rewrote the majority of the code to support comment detection in any programming or markup language and allow for the quick development of classes to support new languages.
iBatis Breakdown is unrelated to the iBatis Apache project except for the fact that it was created by the same person.