Programming is hard work. For some of us — in the privacy of our own homes, of course, once Herb and Dee have gone to bed — it's also a passion. Of the innumerable ways to make a program work, only a few are elegant and concise and likely to age gracefully. A dedicated programmer looks for those ways.
I began programming at an extremely young age, developing a large portfolio of skills and a few interesting projects besides. I've written device drivers, game programming toolsets, a scripting language, web servers, embedded systems, GUIs, and more.
My weapons of choice include C, C++, Java, Javascript, PHP, and Perl, although I've tinkered with everything from REXX to Assembler. I'm well-acquainted with technologies like Enterprise Java Beans (EJB), Structured Query Language (SQL), Common Gateway Interface (CGI), Model-View-Controller (MVC), et cetera.
If these seem boring, go to the Invention --> section.
Samples of web development are available in the Web Design --> section.
Open Journal Systems 2.x (Ongoing)
It's a rare pleasure to be working on a project as exciting and challenging as Open Journal Systems -->. OJS is an open-source journal management system targeting academic users but it is proving useful in a much broader sphere. It's part of an impressive suite of tools under the umbrella of the Public Knowledge Project -->, which was created to support open access and standards-based interoperability.
Technology:
- PHP with Smarty templates
- MySQL and PostgreSQL via ADODB database abstraction
- Robust, layered code structure inspired by Enterprise Java Beans
PKP Harvester 2.x (Ongoing)
This OAI-PMH --> metadata harvester is based on the OJS 2.x codebase. (If that doesn't make any sense, don't worry.) It's used to collect, index, and search hundreds of thousands of records from libraries and repositories around the world, and like OJS, it's open source. This project was a challenge because of its emphasis on format neutrality and plug-ins -- while it's primarily an OAI-PMH harvester, it can support any harvesting protocol.
Technology:
- PHP with Smarty templates
- Heavy emphasis on plug-ins and modularity
- Balances flexibility and extensibility with considerable performance requirements
Integrated Vehicle Technologies People-Counter (1.5-Year Project)
I took on maintenance and development tasks for IVT's people-counter, which was developed for the Seattle Transit Authority's public buses. This project used Java on an embedded Linux platform; I built the operating system to suit the extreme conditions of the embedded platform and resumed Java tasks for the company's departed guru. This project used very complex and critical services such as remote update, an unsupported LonWorks network for which I ported a Linux driver, and heavy use of Java's characteristic introspection features for dynamic configuration and classloading.
Technology:
- Custom-built read-only embedded Linux distribution
- Flash storage device optimizations
- IBM's Java Virtual Machine repackaged for embedded systems
- Custom device driver for LonWorks network
...and many more, including a corporate time tracker, a comprehensive web-based polling application, EJB tools, an XML/XSL training delivery and testing system, an award-winning video game, and music management tools.
<-- Back