I went to Union College in Schenectady, New York, to become an electical / electronic engineer. Freshman year, all engineers were required to take a non-credit course to learn how to program in FORTRAN. I was hooked in the first week, taught myself assembler and machine language at the same time, and went on from there. After graduating and spending a year doing grunt work at an engineering company in Seattle, I went back to graduate school at the University of Virginia to get my Phd. After about 18 months, I took my masters and quit. I was longing to get back to the west, I was fed up with petty university politics and one uninspiring department head, and I couldn't come up with what I felt was a worthy research topic. In subsequent years, I have had a boatload of great projects, but no real reason to pursue them in the context of a Phd.
While I enjoy teaching and have taught at the college level, I have never pursued it because it means living close to town. One of my desires in life is to live closer to wilderness and wild things, and that has always meant far enough from town that it would mean a long commute. Life is too short to waste much of it in a motorized vehicle. So I have more than once chosen place over job, although sometimes they have coincided wonderfully.
I've written compilers and interpreters; relational databases; dynamic, real-time configurable, system performance monitoring tools; and real-time operating systems. I wrote an early word processor, and general-purpose spreadsheet before Lotus 1-2-3. While I saw the utility of it, like many young people of the time I didn't understand the potential for making it an actual product.
I spent close to a decade working on user interface toolkits. As evidenced by this website, that does not mean I consider myself a user interface designer. I was the chief architect of the Object Interface ("OI") Library, a C++ based toolkit for writing user iterfaces for the X window system. The OI library allowed one to create an application in C++ independent of the underlying operating system and its native toolkit, greatly reducing implementation time and product hassles. This was just as the PC was emerging as a useable platform for real applications; at that time most serious UI work involved Sun Microsystem, HP, Silicon Graphics, or other graphics workstations. A program written using the OI library could run as a Sun Microsystem type interface, using either a 2-d model or a 3-d model; or a Motif interface. It involved more than changing the look of the interface; the behavior was in some cases significantly different as well. We also developed one of the first graphical user interface designers, which included the ability to create C++ subclasses of the actual UI objects. The team which worked on these products was amazing; it was a very tight group, more cohesive than many families, with an incredible lack of selfishness in spite of being composed of very bright people. I have not worked with another group of people who even came close to working together as well as this group did, before or since.
I spent a number of years working on one of today's most prominent Java web servers.
A small group of people of whom I am a part has basically solved most of the "diverse medical records across widely dispersed and differing platforms" problem. Written in java, this system or a similar one would go a long way toward solving one of the United States of America's most important medical computing problems. It is a non-proprietary approach, and allows all entities holding medical record information to continue to completely control the information they hold. If you happen to have an interest in this, contact me, garya at this domain.
I've spent much of my professional life working for start-up companies, so I have lots of worthless stock. But I was also fortunate enough to have a little that amounted to a little as well. Not enough, but the trip has been worth it and I would do it again in a heartbeat.
I still have a number of interesting research or useful-to-society projects in my head or scratched out on paper. Unfortunately, life is getting shorter and there are a lot of things besides computing still on my bucket list. I would like to see several of these ideas come to fruition, but it is going to have to be in concert with some other entity, as I don't think I have another start-up in me.
In case you're wondering, I don't "do" Facebook, Twitter, or Linkedin. I don't have a cell phone. I figure Facebook and Twitter are pretty much useless unless you like being tied to a chain that gets jerked every half-hour or so. If you're interested in finding me professionally, you should be able to do that by any normal method. I don't have a cell phone because when I'm not by a real phone, I really don't want to be bothered for any reason. I find conversation quality on even the most up-to-date cell phones pretty disgusting, and the fact that they are only half-duplex is an insult to anyone who has used a telephone since the days of Alexander Graham Bell. That fact alone screams of the incredible greed of the telecommunications carriers.
Gary's home page