‎ > ‎

My Career

"My Career." Sounds pretty snazzy, eh? Well, the truth is that I've been remarkably lucky. In my freshman year of college I stumbled onto computers, discovered I liked them and understood them, and the rest is history. For the past 30 years or so I've been privileged to have work that I usually, more-or-less, really enjoy doing.

My current work

I'm now working for expressor software, a young software company in Burlington, MA. We specialize in data integration, with an emphasis on ease-of-use and what we call smart semantics. I can't really say much more than that at this time, but I'm excited about what we're doing.

I spent the previous 5 years working for IBM, including a year at the recently-opened Littleton software campus. I did primarily Unix/C++ development and maintenance on the parallel execution engine used by the Information Server suite. I worked on this code base since I helped create it in 1995, when I was a founding engineer of Applied Parallel Technologies (APT). While I'd really like to start fresh on the code itself, the concept at the heart of this engine - flow-based programming - remains a passion for me; I want to see flow-based programming become the dominant paradigm for business data processing.

My path to IBM was convoluted. After four incredibly happy and exciting years at APT (renamed Torrent Systems in 1997) I took four years off to work for a small academic research group (more on that later...), then returned to the parallel engine world in 2004 at Ascential Software, which had acquired Torrent in 2001. Ascential was itself acquired by IBM in May 2005, and that's how I went from a 12-person startup to a 330,000-person multinational. Whee-ha.

This was actually the second time in my life I've worked for IBM; the first was in the summer of 1974, when I did PL/I programming for the Federal Systems Division at Cape Canaveral, Florida. So in a way I'd come full circle.

Life at IBM was, well, "interesting." On the one hand, it's incredible to work for a company with essentially unlimited resources. When IBM decides to make something happen, a lot of very smart people can be engaged in short order, with great intensity. I've been given some fabulous travel opportunites; I''ve been to Hyderabad, India four times in four years to provide training and mentoring to an engineering group there. IBM has been an enthusiastic adopter of social networking and Web 2.0 knowledge management; it has a vibrant internal blogging community and some terrific directory services. This is actually in keeping with IBM's history; the VM community in the 1970's pioneered a lot of mailing list and forum technologies.

On the other hand, it can be very hard, at least for those of us who entered the company via acquisition, to connect with what I think of as "the real IBM." I saw a lot of good ideas that weren't acted on because, in spite of IBM's size and resources, on a day-to-day basis we were all pretty much working flat-out on bug fixes and customer support. And the bureaucracy can be maddening.

The recent past

From January 2000 through June 2004 I worked for the Boston Collaborative Drug Surveillance Program (BCDSP). No, they're not narcs; it's a small research group affiliated with the Boston University School of Medicine. In a nutshell, they study prescription drug side effects.

My role at BCDSP was twofold:
  • The research staff provided me with "data requests", which asked me to identify the patients in the database who meet certain selection criteria regarding medical history (diagnoses, drug use), age, sex, etc. Once these patients have been identified, they are often "matched" to patients with similar histories, who act as controls for the study. Then I would produce a file that provided detailed attributes for all of the patients: drug use, age, sex, height, weight, smoking history, etc. This work is BCDSP's bread and butter. 

    The database is actually a collection of flat files implementing a hierarchical data structure with patients as its focus; each patient has an associated set of prescriptions, diagnoses, test results, vaccinations, etc. The flat file structure is very dense; I did some experiments with loading this data into a relational database, and the files grew in size by about an order of magnitude. BCDSP "queries" this database with custom programs (I used C++). It all sounds rather barbaric, but it's amazingly efficient, both in terms of computer resources and programmer time.

  • I also did all of the routine maintenance that any small network of PCs requires: installation of software and patches, fixing things that break (such as printing, a perennial favorite...), dealing with network issues (such as our DSL connection, Samba servers, etc.), backup and the like. 

Where I've been

I try to keep my resume reasonably current; that will give you more detail, if you want it. Generally, though, I divide my career (so far) into five phases:

Business data processing

When I first left college in 1975 I went to work for Orange County Public Schools in Orlando, Florida. Initially I worked for the school board's research department, doing work amazingly similar to what I did later at BCDSP, but with student records, not medical data. I moved from there into the application programming department  (think COBOL...), and eventually wound up doing what was then termed "systems programming" for the school board's IBM mainframe system,  running OS/VS1. Basically, it was system administration: installing software and patches, defining backup/restore procedures, performance tuning, capacity planning, etc.

I stayed with this for the next ten years, working at a variety of organizations in Orlando, New York City and Chicago. Eventually I wound up in Cambridge, Massachusetts, at a small compiler company called Intermetrics. I was hired to do systems programming for the IBM 4341 they had, but I eventually wound up working with the compiler group, and thus began the next phase...

Software development

At Intermetrics I found myself at the heart of the company's business - writing software for sale to customers. This changed the entire nature of my work; instead of being part of an unavoidable, if critical, cost center, just a part of the overhead, I was now working on the company's product. I imagine it's not unlike the difference between being an anaesthesiologist and a surgeon. In any case, I loved it.

I've worked for a number of interesting and, for the most part,  ephemeral companies in the Boston area: Intermetrics (now a small part of The Titan Corporation), Encore (essentially dead),  Thinking Machines (really dead) and Torrent Systems (eaten by Ascential Software, then IBM). I learned Unix, C++, networking and all sorts of other neat stuff. I worked my butt off; mostly it  was fun, but the long hours eventually got to me (and my family...).


In late 1998 I left Torrent; I spent the next two years trying to make my way as a consultant. My only major client was Torrent; I taught training classes to their customers (which I discovered I was good at, and really enjoyed) and did special projects that they didn't have the staff to do internally (including a port of the 32-bit Orchestrate system to a 64-bit Unix). I also spent a  lot of time with my family.

By late 1999 it was clear that, financially, this wasn't a viable long-term option. I just wasn't up to marketing myself. At this point my long-time friend, Sue Jick, suggested I come and work at BCDSP.

Chief cook and bottle washer

This was my role at BCDSP, where I did a little bit of everything. In some ways was remarkably like my first post-college job at the Orange Country research department: I got data for the research staff, and I did whatever other random computer work needed done.

Back to software development

This is where I am now.

Historically, I've tended to change jobs just about every three to four years; I get bored and stale and move on to something new. Last summer, as I reached the 5 year point at IBM, this dynamic struck again, and now I'm back at a small company. It was hard leaving IBM; part me was really happy and, well, proud to work there, given IBM's history in computing. But I faced some serious roadblocks to advancement at IBM (notably, the lack of a college degree), and I just wasn't having much fun.

What's next?

Good question. It depends a lot on what happens at expressor. I'm really excited about some of the work I'm doing, but small companies are, statistically, a bit of a crap shoot in terms of long-term viability. I'd like to travel; my trips to India have been eye-opening, and I love hiking and skiing.

Watch this space.