Coda Music – 1997

I separated from my first wife in December of 1996. My first order of business was figuring out where to live, what stuff was mine, what stuff was hers, etc. But after that, I had to figure out what I wanted to be when I grew up.

I had the opportunity to start over if I wanted. Did I want to do music full time, and maybe go back to music school? Did I want to try to break into major league baseball as an analyst? (Although MLB still did not have people who did that at this point.)

I was not particularly happy at Sun, although it was fine. But I thought maybe I wanted to work on software that really captured my imagination.

I applied and got turned down to positions on productivity applications team like Adobe Photoshop. I talked to some friends who were in the video game industry, and the stories they told had all of the things I hated about StyleWare.

I knew nothing of web programming. I took at class (on Sun’s dime) at University of California Berkeley Extension on Java programming. That was my first introduction to object-oriented programming (and the only A I ever made in a computer science course), so many of the internet startups that were starting to spring up seemed out of reach.

There was, however, one piece of software I used all of the time for my music hobby projects. It was software I had envisioned writing myself the first time I saw a Mac in 1984, but I knew I would have trouble getting funding for and making money off of.

It was Finale. Finale was to music publishing what PageMaker was for traditional print media. It had everything a composer/arranger needed to write down music, play it back trhough the computer, and produce professional looking copy.

Screen Shot 2018-06-27 at 22.23.15
One of my arranging projects. It actually got played!

Finale was a Mac and Windows app. √

Finale leveraged my knowledge of music theory and preparation. √

And, in Spring of 1997, Coda Music had an opening for a programmer on the Finale team pm their website. √

So I applied. I put together a custom resume with all of my music preparation and theory experience, along with my Mac and Windows programming experience, printed it, and the first page of the above arrangement to show I knew something about the product, and mailed it away to Minnesota. In an envelope. With a stamp.

Was not surprised that I did not hear from them for the rest of 1997.

Sun Microsystems Laboratories – 1997

I started at Sun in March of 1996 as a contractor. I did not really like being a contractor, even if a 3rd party company was actually paying me. I had no health plan. The 401K was very limited. I had no vacation or sick days, and I was hourly. And had no job security. There was almost no paperwork to get rid of me.

I was particularly worried about the health plan. I have always had some chronic health concerns. At the time I started, my then-wife just put me on our plan. However, we separated near the beginning of the year in 1997, and I planned for the divorce to be final by the end of the year, and at that point, I needed a health plan. It’s one of the major reasons I was interviewing around in 1997.

After I had been there 6-9 months, I asked my manager about possibly getting a permanent position. He said, “We’ll see”. Finally, after about a year, I got an offer for a permanent position at Sun Labs. It was actually kind of an ultimatum. I was also told my contract was ending the Friday before the first day in the offer.

The pay was actually a little less than I got as a contractor. The assumption was that I was paying more for benefits as a contractor, which wasn’t true as long as I was covered by my wife’s plan. But given that this was the choice I had in front of me if I wanted to stay employed, I accepted the offer. And then I had insurance, a 401K plan, an Employee Stock Options Purchase plan, use of the onsite fitness center, etc.

The only downside: I had to get a new badge at Sun. This was a nightmare.

When I first joined Sun as a contractor, I did not initially get a badge. I had to sign in at the front desk to go to work, sign out when I left for the day, and had to have coworkers hold the door for me to get into the cafeteria (called “Sparcy’s”; Sun’s most successful product at that time were SPARC-based computers). I was told I was going to need to go to the badge offer to take care of this.

There were two badge offices in the Bay Area; one was in Mountain View, on the same campus as where I worked. However, it was only open 9-12 Monday, Wednesday, and Friday. There was a another office in Milpitas 20 miles away open 9-5 5 days/week. On Tuesday, I drove out there. I then found out that personnel records were uploaded and downloaded across Sun offices via satellite on Wednesdays, and I could not possibly get a badge until Friday.

Friday, I got a badge. Hooray. It opened the door to the employee area when I tried it. Hooray.

It did not, however, open Sparcy’s. Boo. I was then told I had to launch a piece of software called “BadgeTool” from a Solaris box to fill out a request for access to Sparcy’s. Well, I was hired to do Mac and Windows, and did not yet have a SPARC box to work with. I was then told that my boss had to launch “IT Support Tool”, and request a SPARC box for me.

So, the following Wednesday, I got a SPARC machine, which, actually, it turns out I needed for work anyway. I launched “BadgeTool”, this hideous X-Windows confusing app, and request access to Sparcy’s.

Friday, I was informed that I then had it. Great.

The next week, I had to go get something in my car, and go back into the building after 5:00. No dice. I went home. The next day, I asked my boss, and he said I needed to launch “BadgeTool” again, and request after-hours access.

That took a couple of days. And I was set.

Until July 1. My badge stopped working. My boss told me that as a contractor, I had to renew my badge every six months, and he had to request it, and he would.

So I had to get another badge. At least by this time, the Mountain View badge office was open 9-5 5 days/week. Oh, and I had to request access to the cafeteria, and after-hours access to the building again.

And I had to do it all again six months later, in January.

So, when I became a full-time employee, I had to get yet another badge. This time, however, I did not have to request the additional access (all employees had it), and I would not have to renew it every six months.

Badges. We don’t need no stinkin’ badges.

Xinet – 1997

A friend of mine had a friend who had a tiny company in Berkeley looking for a Mac programmer. They were a Digital Asset Management company, which meant that they had a system for tracking documents, including licensing, indexing, etc.

Berkeley was a long drive, but I made my way up there.

There was no chemistry here. I was not really interested in the product/company, and the person I talked to was not particularly impressed by me.

Saved me a hard decision about moving to East Bay, so I got that out of it.

 

Intuit – 1996

Intuit had a job listing on a Usenet listing in ba.jobs for Software Engineer. (Think Facebook group without graphics and you get the idea). I applied.

A nice lady called and talked to me about my Mac and Windows experience, and about computer science in general. She told me that she would get back to me about scheduling an onsite interview.

About a week later, she called back, and said that they had decided not to pursue me any more.

When I started dating my now-wife, I mentioned this to her. One of her friends worked at Intuit, so she talked to him. According to her, an executive at Intuit who had worked at Claris told the team that I was not a good engineer, and they should find somebody else.

Thing is, I loved this executive. I would have done just about anything for him. I consider him a role model for leadership.

Even after he torpedoed my chances at a job at his new company.

Borland – 1992

I am trying to keep this blog chronological, but there is no guarantee…

I joined the FileMaker Pro team at Claris permanently in late 1989. However, most of the team had been put together before I joined the team by a couple of years. I had a learning curve; I had been working on the Apple IIGS in assembly language for two years. I had to learn Mac OS. I also had to reacquaint myself with my old friend, Pascal.

My first programming courses at Rice were taught in Pascal, but we were switched to C for the advanced courses. I like Pascal better, but Pascal had some major problems. The biggest problem is that the standard for Pascal did not have some basic things like strings, dynamic allocation of arbitrary memory and typecasting, and compilation in multiple files. It was fine for teaching, but really, it was a limiting language, and C was better.

FileMaker Pro was written using the Pascal compiler provided by MPW, the Macintosh Programmer’s Workshop. MPW Pascal was based on a standard of Pascal built by University of California at San Diego. This version of Pascal had the missing features I listed above. It also had some fun classic Pascal features like sets, arbitrary array indices, etc. I found the language much more readable than C simply because the keywords are based more on English. C is designed to minimize typing; it’s very terse.

program Hello;

begin
    writeln('Hello, World!');
end.

Isn’t that friendly?

Alas, the C syntax won. C, C++, Objective C, Objective C++, Java, JavaScript, Golang… these all have syntax derived from C. It takes work to actually distinguish generic code written in any of these languages from each other.

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Hello, World!\n");
    return 0;
}

Isn’t that ugly?

Anyway, FileMaker was written in Pascal (this is public knowledge now; this presentation at a FileMaker Pro Developer’s Conference talks about it). The original database for DOS that FileMaker was built in was written using Microsoft Pascal, which was not that similar to UCSD Pascal, the basis of MPW Pascal. The original FileMaker developers ported their code to MPW Pascal because that was the first supported compiler on the Mac, and FileMaker for Mac shipped in 1985.

There had been an effort to put FileMaker on Windows from that time, even though Windows 1 and 2 were not commercially viable to build apps for. When Claris decided to port FileMaker to Windows 3.0, I joined the team that did the port.

And we had to answer the Pascal question once and for all. Using the 1990 version of Microsoft Pascal would have been painful; we could not have kept a common codebase for the Mac and Windows versions. The Windows version would have always been one release behind the Mac as we transmogrified it to Microsoft Pascal.

I started looking around. The first thing I did was I bought a copy of Turbo Pascal for $99. This compiler was incredible. It was sooo fast. And, more importantly, it was based on UCSD Pascal. This meant the source code for both would be very similar, similar enough to use a couple of custom tools to turn the code from Mac to Windows and back again.

The problem was, Turbo Pascal was only for DOS. It could not yet be used to generate Windows applications. I don’t know how I did it, but I managed to contact the developers at Borland, and I got Claris onto the Borland Pascal for Windows beta program.

It was still a huge task to port FileMaker to Windows, and it was a huge task for Borland to port Turbo Pascal to Windows as well. But we shipped FileMaker Pro for Windows in October, 1992, and Borland Pascal shipped a couple of months before, after we were well on our way.

This was not the first compiler that shipped soon after we got FileMaker to work with it.

There was a Borland Developer Conference in Santa Clara about a mile from Claris that I went to, and I met the developers and the QA team from Borland Pascal. I had lunch with one them, the QA person I had worked the closest with.

“FileMaker is doing OK?”, he asked.

“Oh, yes. Your tools are working great.”

“You have reported a lot of bugs. They were very detailed. Have you worked on compilers before?”, he said, cutting up his entree.

I finished my bite of mediocre conference food. “At school. One of my favorite courses”.

“And you told me you have a lot of assembly language experience?”

“Shh! Don’t tell anybody! I don’t want to program in assembly any more!”

He laughed.

“We have openings in our compiler group. I think that you would be a good candidate for that team. Would you be interested in talking with us?”

I stopped.

“Where is your office?”, my mind whirling a mile-a-minute.

“Scotts Valley.”

“Eew. Highway 17?” I made a face.

“It’s great if you live in Santa Cruz.” He smiled.

“Well, either I do that death-commute, or my wife would have to do that death-commute. She used to live there before we got married, and moved into the valley to stop driving 17.”

“Well, think about it. Here’s my card. Send me your resume if you would like to talk.”

A couple of weeks later I send a Thanks; No Thanks mail. Borland was already starting to fall apart. They had a serious head start on everybody for Windows applications, but dropped the ball and let Microsoft’s apps blow them away. They did an ill-advised merger with Ashton-Tate. They shifted their focus from mass-market software to enterprise software. The reason they had openings in their compiler group is that they had lost some senior people.

I don’t regret turning them down.

Fun stats: It took about 35 minutes to build FileMaker Pro using MPW on a Macintosh IIfx. Using Borland Pascal, it took 4 minutes on a 33 MHz 386, and 2 minutes on a 50 MHz 486. Was incredible. And did not need a makefile (a difficult-to-maintain template for building). The only drawback is that it would only show you one error at a time. We got used to that!