By the time I was 23, I was a veteran software developer and the father of two adorable girls. I had designed, written, and managed other developers through the creation of a medical practice management system written in little known, now forgotten, 4GL. What I learned in that process was not to get yourself locked into a product that cannot be run on any operating system (OS)/hardware combination that might become popular.
QPro4 saved me from that after the demise of the Z86 CP/M, MP/M-based PC when IBM released the 8086 class and took over the market. I sold the original practice management system written in Qpro4, and myself, to a startup that promptly folded, leaving me to take a role as a software engineer on a COBOL-based practice management system. I wasn’t hired for my COBOL skills, which were zero, but because I knew intimately how to operate and configure micro Unix-based systems, and the company was moving from proprietary hardware/OS to Xenix.
The stage is now set.
In 1990 I needed a tool to create a product release process, and CSH was not cutting it. I had been playing with the Slackware version of Linux, and I had heard of Perl. At this time, that stuff was called “shareware.” So, from the back of Computer Software magazine (if I recall correctly), I ordered a shareware CD from Walnut Creek that contained Perl and lots of other *nix tools. Download, compile, futz around, and voilà! Real tools to solve real problems for the cost of a CD-ROM (about $30, as I recall).
Hooked I was, well and truly.
Flash forward five years. Big Fortune 500 buys little company from retired owners. Senior systems analyst (me) gets job described as “field technician” because I was, in fact, in the field bringing up a brand-spanking-new, out-of-the-box HP/UX system for the first time. So I quit, and Dilbert-like, came back the next day as a contractor, where I deployed my now-advanced Perl skills (and newfound love of Randal Schwartz and karaoke) to creating a full, automated configuration and release management system, which I had been trying to talk my now-former boss into for a year.
Good times roll as an independent contractor, I’m doing well. Then, have a relapse. I buy hundreds of dollars of proprietary tools for development such as Watcom C/C++, Raima Velocis DB, and Zinc Application Framework. All fine and good tools. Not many months pass, Symantec buys Watcom and kills it, Raima gets absorbed by Centura Software (formerly Gupta), and ZAF goes out of business.
Lesson learned, again.
Slip-stream a few more years, and I’m working at a large, international, hardware-focused manufacturer in the high tech world. They need their build system to work, it doesn’t, and it is all based on proprietary and expensive compilers. Seven of them. Me and my fellow FOSS-enthusiastic coworker, essentially, without any real permission from on-high, port everything possible to GCC/g++, Flex, and Bison running under Sun’s Code Manager. So, three out of four is not bad. Management wants to have a cow, but we have created a system that can build the product in four to six hours, down from 14 days (no kidding), and it’s repeatable. They say, “But what about support?” I say, “Buy a contract from Cygnus.”
Problem solved and FOSS wins again. Years later we port the whole thing to Red Hat Linux from Solaris, but that’s another story.
It’s 2003 and the bubble has burst, or is leaking badly in any case. My dad wants me to resurrect the old MPMS system for a charity clinic he has started, and I say, “Not on your life, but I’ll find something in the FOSS world. There’s bound to be a medical EMR [electronic medical record] and practice management system by now.” And so there is. Enter stage right OpenEMR, an already four year old LAMP stack project, mature with a good, if small, support community. I dabble in this and the community for a few years, and when the high-tech world I’m in finally deflates completely, I find myself anxious to spend the rest of my technical career in open source, not as a consumer but as a full-fledged contributor to a worthwhile project.
These days I am one of a small handful of core committers to OpenEMR, but more importantly I am the visible face of the project through my role as the current president of the OEMR.org 501(c)(3), standing on the contributions of a respectable, worldwide, community of active users, contributing developers, and vendors.
We have done some seemingly impossible things, like get the OpenEMR project through the ONC’s “Meaningful Use” Certification, without which it would have all but died out in the United States. Now, with the project 14 years old and about to be recertified under Meaningful Use Stage 2, it’s time to reimagine and reengineer the core without losing the goodness we have and the good will of the community.
I am prepared and excited to take on that challenge, and to make sure my chosen FOSS project, with the wind of open source as a dominate model in the world to drive us, tries to change the world of healthcare IT for the better.
Viva la FOSS!