| That's me on the left after a long day of development. (Yeah, the
picture is fuzzy. It was taken with a cell phone camera, but I like it.) I'm
a hard-working, self-motivated software engineer. I have worked for
top-ranked Fortune 500 companies as well as little start-ups. This
section is more war stories than self-promotion, so if you're looking for my
stats, check out my resume. I was born in Boston,
raised in Revere, Mass 'til I was 12, then moved to Boscawen NH 'til I
joined the Army in 1971 -- you'd think that would mean some of my war
stories are War Stories, but it's not the case. In one of the cruelest bits
of irony, draftees ended up in Viet Nam about 90 days after they were pulled
off the streets, but volunteers had a three year waiting list. I spent my
entire hitch in the US. I do have some good stories, but no Apocalypse Now
stuff.
Toward the end of my service career, I was studying for my ham radio
license (I currently hold amateur radio station license W1WX,) when I
started seeing articles about building computers out of microprocessor
chips. One of my favorite quotes comes from the then-CEO of Intel who when
asked what he thought about people building general purpose computers out of
his microcontrollers replied, "They're doing what?"
So my history with PC's started back when they were called personal
computers because you personally soldered computer together.
I first started programming after getting discharged form the Army. I was attending the University of New
Hampshire as a theatre major. One of my friends in the math department
showed me how to play spacewar on the IBM-360 to keep me quiet while I
waited for him to finish up his work so we could go party. Yeah, it's
the typical old-guy story about programs written in BASIC on punched cards.
You've heard it; pretend I just told it, OK?
While I was at UNH, I took a course on computer design and learned to
program a PDP-8 (12 bit computer made by Digital Equipment Corp.) from the
switches on the front panel. Then a most wonderful thing happened: UNH got a
PDP-10 (36-bit computer also by DEC.) Compared to the IBM 360 it was like
democracy had suddenly flowered in Durham, NH. PDP-10's didn't lock the
keyboard on your terminal when it didn't want your input. I was overwhelmed
with love for this machine and its operating system that actually let people
make the decisions. I became obsessed with the idea that computers could be
used for useful purposes.
After I flunked out of UNH (too much partying and playing spacewar) I got
a job as a PDP-10 computer operator for a timesharing outfit in Waltham Mass
-- First Data Corp -- they were a great company and believed in training
employees to prepare them for their next job -- I've seen a lot of companies since then, I've never seen that
attitude again. (war story) I learned to program in Algol and wrote utility
applications that made operations easier. In the mean time, I soldered an
Altair 8800 together and happily programmed using the lights and switches on
the front panel.
First Data got sold to ADP and I ended up going to work running the
third shift operations for another timesharing company named Applied Logic
Corporation. They were in the Boston Stock
Exchange. I loved working nights in the city. There was something wonderful
about sitting in the dark, cool city with the wind blowing off the harbor
while I had my lunch at 3 AM -- it was the
best.
I remember there was a cop who knew how to play his siren like a blues
horn; he would come down into the (nearly) deserted financial district
to work on his chops as he drove the canyon-streets surrounded by tall
buildings. Talk about the music of the night.
However, the company didn't last and in 1978 I ended up working for
Digital Equipment Corp, the company that made the PDP-10. It was like being
admitted to heaven. I was working at
"the Mill," their corporate headquarters. They had a problem (I
tend to get hired when there are problems.) -- their
operations had gotten so complex that three shifts were no longer enough to
get their processing done. Third shift batch processing was bleeding into
their morning timeshare operations. I went in to take their third shift operations
and see if I could trim it down.
It turned out that they never trained their operators. The operators got
a quick introduction on how to do their job from the most junior operator
and then were expected to "pick it up." The whole operation was working on
superstition and luck. I trained the operators and put some utility programs
in place and soon they only needed one and a half shifts. Good for them. Bad
for me -- I was the third shift lead.
Because I had done a good job for him, my boss pulled some strings and
got me an entry-level COBOL job doing reports for corporate headquarters.
Because I did a good job at that, they gave me a project writing a system to
help the keypunch staff key in time cards directly to the database. Because
I did a good job at that, they gave me a job doing real-time programming
down in the Digital board shop.
And so it went. Each time I did something cool, I'd get to do something
cooler. I qualified as a systems programmer on TOPS-10, RSX-11M/S and Ultrix
(BSD Unix.) I wrote microcode for industrial networks (in the pre-Ethernet
days, we fit the network to the application) Eventually, I was writing software in a small hardware lab that
did a joint project with Sony and Philips to create the CD-ROM, which I
think was the coolest thing I ever did for Digital. (Wanna read a
war-story?)
But all things come to an end, and after 15 years at DEC they made a
series of unfortunate choices which ended my getting laid off and them going
out of business. Connected? You decide. My final few years had been spent
writing PC applications using Microsoft tools and I left feeling like the
market had come around to the point where it was possible to make a living
writing software for PC's. ;-)
Immediately after being laid-off at Digital (1993,) I created
Interlocking Applications as an excuse to take the summer off and develop software to control ham
radio stations. IA was an on-again, off-again operation for the next decade
because my heart wasn't in it. I was looking to re-live the Digital
experience; I wanted to be someone's valued employee. But the economy was
against it, and the more I worked for other companies, the more I realized I
wanted to be my own boss.
Digital Odd-Jobs ®
After Digital, I entered the phase of my career that I consider the
"digital odd-jobs" phase. I was hired by many companies to solve specific
problems. When the problems were solved, I was laid off. (And frequently,
the companies went out of business. Connected?) At first it got me
down, but now I realize that I'm really happiest when I have a job to do and
really bored when the job is done. And I'm kind of expensive to keep around
if I'm bored.
(So I've developed "digital odd-jobs" into a service and through
Interlocking Applications I provide that service. Got a problem? Hire me to
fix it on a short-term contract basis and we'll both be happy. )
Some stories are hard to tell without reflecting a little shame on the
companies I worked for. One, for example, had tried to build a Windows
application to replace their old application that ran on a mainframe with
terminals connected to it. The old system had literally thousands of
commands available. The Windows application had a menu bar with one, single
entry in it, but when you clicked on that menu what dropped down was a huge
sub menu with each of the thousands of commands represented with an item on
the one menu. They didn't understand why they ran out of Windows resources
when they opened the menu.
Later, the same company swung too far in the opposite direction creating
an object-oriented banking system where objects ran wild. There were date
objects that could render themselves in any format, money objects that could
render themselves in any currency and even number objects whose job was to
populate the other objects with numbers that could be read as integers of
any width, any of several different kind of floating point number and so on.
All very elegant, but the project just never managed to get to the point
where the objects stopped and you finally had data.
<more later.> |