topics ] [ services ] [ online commerce ] [ products ] [ free stuff! ] [ us ]

Michael Roberts


Elegant, reusable design of complex systems. I most enjoy those jobs which are vaguely defined and where I can cut through a great deal of troublesome detail to find the elegant core (such as my workflow project and all the areas it's expanded into). I enjoy (in a somewhat masochistic way) taking a poorly documented yet powerful system (such as Zope) and making it do what I want. I positively dote on technical translation, because no geek is geekier than the foreign language geek. And I'm rather unusual in that I like maintenance coding -- understanding somebody else's mess can be really informative.

I've been an independent consultant for nine years now, more than half my entire career. I still have trouble believing that people pay me to mess around with computers.

Significant accomplishments: Technical keywords (the laundry list)
A complete list of my technical experience is at the end of this résumé.
Areas of expertise:: workflow, open-source software engineering, email handling, online searchable databases, personalization, portal design, general active database-backed website design.
Programming languages: C/C++, Java, Javascript even, Tcl, Perl, Python, Visual Basic, and Scheme/LISP. No, really. I swear.
Databases: MySQL, Oracle, PostgreSQL, Access, SQL Server.
Web servers: AOLserver, Apache, IIS, Zope, Medusa.
GUI frameworks: POW (plain ol Windows), wxWindows/wxPython, some Tk.

I've got a couple of publications to my name, dating back to when money flowed freely in the good old days (2001, that is). They're pretty decent articles. I still get the occasional question or comment.
March 2001 - IBM developerWorks site. Workflow toolkit: Case study of an open source project
The first article I wrote for pay, this was about my experiences in the original wftk project. I don't care for the article much, as I couldn't really figure out what the heck it was I was writing about, but I recently discovered it's been translated into Chinese, so that more than makes up for its original shortcomings. Cooool. Oh, and Japanese.
March 2001 - IBM developerWorks site. wxPython for newbies
A short article about using wxPython for cross-platform GUI development.
May 2001 - IBM developerWorks site. Zope for the Perl/CGI programmer
I really like this article. It's about Zope; you probably already figured that out, though. It's all part of my let-IBM-pay-for-learning-new-tech strategy. So far this strategy is working out pretty well.
June 2001 - IBM developerWorks site. Extending Python and Zope in C
Another one I like.

Speak: English, German, Hungarian.
Read: French, Spanish, Italian.
I do a lot of technical translation nowadays, but I consider it a separate business. For details, you can see my translation résumé.

Affiliated with Douglas Hofstadter's Fluid Analogies Research Group (FARG) and conspicuously no longer pursuing my doctorate there. Couldn't stand the paperwork.
Master of Science, Computer Science, Indiana University, December 1996.
Bachelor of Science, Computer Science / Electrical Engineering, Rose-Hulman Institute of Technology, May 1988.
Technical Translator certification for German language, Rose-Hulman Institute of Technology, May 1988.

Technical experience in detail
December 1999 - present:
Project lead for wftk.
The wftk (workflow toolkit) is an open-source workflow management engine. The goal is a drop-in engine that is useful in a number of different software environments. The current version is a linkable library; I'm working on front ends for AOLserver and Zope and a little wxWindows-based standalone front end as well. I've got backend integration modules for ODBC and Oracle native OCI, and I'm working on MySQL, PostgreSQL, and Sybase. It's a neat, neat project.
Technologies: Workflow. Platform is ... eclectic. Almost random. AOLserver/Tcl, C/CGI, XML for data (expat parser).

June 1999 - present:

Technical lead for Nextek Innovations.
Started work on, an email filtration service. It's in production, even won the USA Today Hot Site of the Week back in January 2001. We've got some other products planned as well. I'm not going to get very specific.
Technologies: C, SMTP/sendmail, arcane email secrets, PostgreSQL, MySQL, AOLserver, Java.

September 1997 - present:

Sole proprietor of Vivtek. (
Hosting several database-backed websites for which I perform development work. I also do general scripting, consult on Analog web log analysis software integration, design workflow systems, whatever comes along. Mostly Vivtek is there to provide some interesting (and, I've been told, entertaining) summaries of technical fields I've had the privilege of getting a clue in.
Technologies: AOLserver, Illustra, PostgreSQL, MySQL, merchant support systems, Perl, Python, ImageMagick.

November 1996 - present:

Programmer and sysadmin,
Implementation and maintenance of database functionality and Web pages. Unix sysadmin tasks. Serious database. Finally moved the database onto something written this century: MySQL, about a year ago.
Technologies: AOLserver, Access & Illustra databases, MySQL, Tcl, Perl, wftk repository manager.

March 2002 - March 2003:
Zope consultant for an academic collaborative data management project
The IPBIR (Integrated Primate Biological Information Resource) is an ambitious collaboration involving several academic and zoo organizations; the software lead is at San Diego Supercomputer Center. I consulted on some sticky and vaguely documented points of Zope.
Technologies: Zope, Oracle.

May 2000 - Jan 2001:

Developer with HotDispatch.
HotDispatch paid me for 4 hours of every day. I did general utility development, consulted on usability, helped analyze traffic, and did other stuff that fit around the edges of their full-time development staff. I liked it, they liked it -- it's amazing how well it worked out, really. Then they grew from 22 to 45 people in six weeks, and decided to concentrate management on the local staff. Made sense to me, although I miss it.
Technologies: Perl/DBI, LISP (if you can imagine that), Java, XML, lots of other laundry-list keywords.

July 1997 - December 1999:

Multiple subcontracted jobs from a development house in Indianapolis.
Specialization in Mezzanine and Panagon. Contracts involved the design and implementation of simplifying APIs, a COM server for integration between a legacy application and a VB application, three times teaching the Mezzanine programming API, a lot of VB user interface development and some Panagon/Web towards the end. I was their only part-time employee, though, and we all found it simply too difficult to plan around that. So we parted ways. It wasn't an easy decision.
Technologies: Mezzanine/Panagon, COM internals, Visual Basic, IIS, ASP, DHTML.

July - December 1998:

Independent contract with Kinesiology Department, U. of Michigan.
Rewrite of ELMIRA data-acquisition package (see below) into 32-bit VB 5.0 using a different A/D and D/A board. Used in this research. Neat gadgets and babies, too, this project has everything! In their departmental resources list this package appears in point #3.
Technologies: Win32, VB5.0, realtime processing techniques.

October 1996 - January 1997:

Independent contract with Infant Motor Skill Development lab, Indiana U.
Implementation of the ELMIRA data-acquisition and analysis package for various experimental purposes.
Technologies: C/Windows, Visual Basic, realtime processing techniques.

September - December 1996:

Independent contract with an insurance company in New York.
Implementation of a domain-specific API for the Mezzanine document-control system, including training of programmers on site.
Technologies: C/Windows, Mezzanine, Word/WordBASIC, Excel and VB, DDE, SQLWindows.

July - August 1996:

Independent contract with the Psychology Department, Indiana University.
Implementation of a presentation system for an experiment in psychology.
Technologies: Visual Basic.

May - August 1996:

Independent contract with a small software firm in Indianapolis.
Implementation of an API for the Mezzanine document-control system in PowerBuilder, along with training materials and sample code.
Technologies: Mezzanine, PowerBuilder.

September 1992 - September 1996:

Contract work with a major pharmaceutical company in Indianapolis. OK, it was Eli Lilly.
Implementation of a client-server oriented document control system, along with design, development, and implementation of non-document functionality embedded in the system. Design, development, and use of various utility programs which found extensive use during the project as well as by our clients. Troubleshooting and help-desk activity of new functionality, along with some training of the users. Subsequently solely responsible for maintenance of the system.
Technologies: C/Windows, Word/WordBASIC, DDE, MS SQL Server on OS/2 and later NT, Mezzanine.

June - September 1992:

Independent contract with a county office.
Conversion of multi-user database developed earlier (see below) from C under Unix operating system to a single-user system running in dBase III under MS-DOS. Learned a lot about how not to estimate a job.
Technologies: dBaseIII, C for utilities.

February 1991 - June 1992:

Systems programmer for the warehouse operations division of Dana.
Provided SNA network support and assisted with systems programming of large IBM 3090 system, running MVS, VSE, and VM. Also developed support utilities in TSO/ISPF for the total quality effort of operations.
Technologies: mostly MVS on the mainframe, SNA, some Unix, LAN, TSO/ISPF.

January - December 1990:

Programmer/Analyst for a small software development firm in Indiana.
Developed the aforementioned multi-user database in C under Unix, from re-analyzing user requirements (an initial analysis was found to be incomplete) through development to final testing and training of the end users. Also responsible for small-scale functionality development under MS-DOS and Unix, including parallel development under both of a platform for geographical databasing.
Technologies: C under DOS and Unix, dbVista for database application, Vermont Views.

July 1988 - December 1989:

Programmer/Analyst for a large software development firm in Germany.
Analysis, development, and implementation of the user interface of an automated warehouse. My functionality was developed in C under MS/DOS on PC's which were attached via APPC to a fault-tolerant database server.
Technologies: C under DOS, APPC, IBM S/88, client-server orientation before the word became so popular.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.