One of my friends that had been at Claris contacted me about a position at his company, Connectix. They needed Mac engineers to work on Virtual PC, an application that pretended to be PC hardware so Windows could run. At this time, the Mac processor was on Power PC, but Windows was running Intel. So, Virtual PC provided an emulator that took Intel-compiled problems and ran them on the Power PC.
At the interview, we talked a lot about my assembly language experience, and my API experience in Mac and Windows. I thought it went well.
Not well enough. I was informed that they liked my experience, but really needed somebody with more low-levels Windows experience, like device drivers. They would keep my resume on file in case something came up.
I was a contractor when I started in the Sun Microsystems Laboratories, and as a result, my security in the job was suspect. Oh, I think I was doing fine working on Tcl/Tk. I was learning something about X Windows, and I learned Test-Driven Development. Learning Tcl/Tk taught me an entire new paradigm of programming, that of scripting languages. Learning Test-Driven Development has been amazingly useful for the rest of my career. And befriending an industry pundit like the head of the Tcl/Tk team was exciting. In more mundane concerns, it was one of the best commutes I have ever had, 12 minutes from Menlo Park to Mountain View. The campus was next to a small lake, and adjacent to the Bay, and the walk I took everyday through that park was good for me.
But being a contractor bothered me. I had to go through hoops to get my badge to work (Sun reset them every six months). I did not get paid vacation, had any holidays forced upon me (and they weren’t paid either), and the medical benefits were non-existant at first, and then later, they were poor. And expensive. I was not treated the same by other personnel in the labs as everybody else was. And, as a contractor, I would have been first on the chopping block if there had been problems.
And there were problems. Our team was in a political competition for resources. We had a lot of people on our team compared to all of the other groups in the labs. We supported platforms other than Solaris (which is why they hired me).
Java 1.0 had been released a few months earlier by developers in the Labs who had worked on it for 5+ years. It was the Labs’ biggest success story. Java 1.0 spread like wildfire throughout the industry, as it was much easier to develop websites with it than with C and C++, popular at the time. Sun Labs was pushing it for use everywhere, going so far as to develope a computer with everything written in Java. (Customers never saw this one. It was SLOW!) Java had all of the political clout and money, and Tcl/Tk was a weird little corner of the labs that was NOT Java.
Sun spun Java into another division called Java Soft. Late in 1996, Java Soft had an opening for an engineer to work on Java for the Mac. I interviewed for the position, not knowing anything about Java.
I honestly don’t remember much about the interview. They asked some technical questions, and gabbed with me about culture fit.
I still have two emails from that period. The first is a “well, we aren’t saying yes; we aren’t saying no”:
Sorry it has taken so long to get back to you. The team thought you
would fit in here, but wants to interview some more people to see if we
can get someone with a bit more relevant experience. So you are still
under consideration, but it is going to take some time for us to make a
decision. Please feel free to ping me for an update on the situation
Note that there are hard carriage returns in that text; that was what email was in 1996, folks!
And then later:
Things have changed, and we’re not actively looking for a Mac person
at the moment, pending discussions with Apple on how we can work more
closely with them.
I worked on FileMaker Pro a long time – 6+ years. I worked on the lowest level code on the Mac version. I helped implement libraries to encapsulate and emulate the Mac system calls for Windows. I ported FileMaker to Power PC, away from 68K. I developed the first Developer Edition. And I was on the team that finally brought relational power to FileMaker. I did a prelimary investigation of moving the FileMaker code base away from Pascal, and into C++. I brought version control to FileMaker, and I worked with IT to figure out why the Ethernet network they provided was not working for the FileMaker team. I wrote the internationalization test plan for all of the new FileMaker 2.0 features, and for all of the Windows-specific features.
The team was awesome, and it was stable. It was well-run; management shipped FileMaker 3.0 on schedule with a 3-year release cycle. There was a blend of manual QA and automated QA. And it sold like hotcakes.
After 5 years, however, I felt pidgeon-holed into my area of the code. I was bored. I was not spending much time developing core features.
I was also stagnating. During my time on FileMaker:
Windows 95 shipped and started hammering what little market share the Mac had, despite not having TCP/IP support in its initial version (which made it hard to get on the World Wide Web!)
Apple was gasping and dying. The stock price was low, what options I had were underwater, and sales were falling.
I was restless.
At the beginning of 1996, I was at a hot-tub party with some of my friends, when one of them started talking with me about work. I didn’t think much of it. The next time I saw him, he and his wife hosted a movie night. At the end of the movie, he said to me:
“You program both Mac and Windows, correct?”
“And you know C?”
“Could I get your resume?”
I interviewed at Sun Labs a couple of weeks later. I did not know anything about what my friend had been working on going in. Turns out, it was a scripting language called Tool Command Language, with a corresponding graphics environment called ToolKit, otherwise known as Tcl/Tk.
I was ignorant about scripting languages going in. The only one I was really familiar with was the built-in language of Macintosh Programmer’s Workshop (MPW) from Apple. So I was pretty ignorant on what I was getting into.
I don’t remember much remarkable about the interview process, other than the resident Mac guy asking me about a field in the TextEdit data structure. I replied,
“Well, I don’t know that field specifically, but if you hand me that Inside Mac Volume V on your shelf there, I can look it up.”
He laughed, and handed me to book. I turned to the TextEdit chapter and read to him out loud what the field was for, and APIs related to it. Remember when programmers were judged by the size of their libraries of technical books, pre-Google, pre-Stack Overflow?
He laughed some more.
The head of the Tcl/Tk team was John Ousterhout. He had been a professor at Cal Berkeley, where he had developed Tcl/Tk. He had then brought it to Sun Labs, and had been hiring people to improve and expand on it.
John was up front with me. He could not hire a permanent engineer; I would have to be a contractor. However, they worked with a firm that I would actually be working for as a salaried employee. That firm did not have a health plan (or retirement plan). I was getting a raise, but not a huge one, and it would have been mostly absorbed by health costs had not I been on my wife’s plan. He hoped that we could convert my position to permanent later.
I took the job. It was an easy decision to make. After 8 years at StyleWare/Claris, I was spreading my wings.
On the one hand, being a contractor had other drawbacks, like being let go earlier in down times. I had to fight with Sun about my badge often. Outside of my team, I was ignored by other teams in the Labs.
But I made some good friends. I learned new technology. I taught people some of what I knew.
But the biggest takeaway from the Tcl/Tk team I got was Test Driven Development. Every line of code we wrote had automated tests written for it, if at all possible. Often, we wrote the tests first. It was eye-opening, and even when I don’t or can’t use it now, it made me a much better developer.
After we shipped AppleWorks GS 1.0, we dispersed to various teams within Claris. I ended up on the FileMaker team, got called back to do the last versions of AppleWorks GS, and then rejoined the team. We were a great team, but I was a latecomer, and was finding difficulty having any positive impact on the team other than fixing really, really hard memory bugs (a skill that I just don’t need much anymore. Modern environments are SO much better).
At some point in late 1990, the team was ushered into a room, where the director of our division (my grand-boss) and the CTO gave a presentation on this new threat to Mac OS. It was the first time I saw Windows 3.0. It was in beta.
It was good enough. You could do any basic thing in Windows that you could do on the Mac. One could imagine that if the big Mac apps, like Framemaker, Photoshop, Quark Express, etc., made a Windows version, it could be viable. And it ran on cheaper hardware than a Mac.
Management was telling us that they were going to start work on porting FileMaker to Windows. To be fair, when Claris purchased FileMaker from Nashoba, there was already a skunkworks project to do just that (based on Windows 2). And one of my StyleWare colleagues had been working in what amounted to an internal lab to help that process out. The plan was to take the former Nashoba manager who had kept the project alive for years, the StyleWare guy, and hire a couple more programmers to make this real.
As the meeting ended, I went up to the assembled FileMaker managers. There was the aforementioned director, the CTO, my boss, and the Nashoba manager.
“I want to work on the Windows port.”
They looked stunned. They looked back and forth to each other.
“I am not yet contributing features to FileMaker on the Mac; I am doing bug-fixing and tools work. While I have no Windows or DOS experience, I do have experience with low-level logic, compilers, and assembly. I would love the opportunity to get in on the ground floor on this project. I don’t see that opportunity on the Mac.”
My manager spoke up and said, “Let us talk about it. Give us a couple of days?”
They took me up on it. So, I got a Dell PC, and started work (I got the first 486 at Claris… It was sweet…) I won’t go into the details much, but I did manage to get in on the beta of Borland Pascal…
Things looked good.
Meanwhile, Claris was ramping up to go public. While Apple owned the company at this point, the plan all along was to spin it out so Apple would have a good stories when its developers claimed that Apple’s software was competing with theirs. And they were looking into doing that. The executives had a traveling road show that they were showing investors, and some people in suits would be shown around the building.
One Monday morning, that abruptly changed. We were called into an all-hands meeting, where it was announced that Apple was not going to spin us out. All outstanding Claris stock was going to be converted to cash, and the IPO was cancelled.
The FileMaker teams were then immediately called to another meeting. It was announced that we were cancelling plans for all Windows products that we had been working on (FileMaker, though first, was not the only one). I asked what was going to happen to the three of us who had been working on it, and was told to sit tight. Document everything we can; get all of our code checked in, but hold tight…
I started working on a resume for the first time since college. I also scheduled meetings with the directors in software engineering, and eventually, the VP of Engineering. All of the directors told me that hiring was frozen until things shook out with the Apple buyback.
It took several days to work through all of them. On Friday, when I met with the VP, he told me to “hold off on floating my resume”, and to “go home early today and enjoy the weekend”, and that “I think Monday will bring about some big changes.”
I went to work on Monday, and we had yet another all FileMaker meeting. We were told that when the Claris management had told the Apple Board of Directors that all of the Windows products had been canned, the Board told them that they had missed the point, and that one of the reasons that they had spun us back in was so that Apple had something generating revenue from Windows. The long-term strategy had FileMaker Pro for Windows as a key piece.
So. I got to keep my job. And we had positions open up. And we hired a team. And I eventually got a modest cash payout for my Claris stock options. And an Apple stock grant (which was worthless for 10+ years but would have been worth a boatload today). And they level-adjusted our salaries, which meant that most of us got a significant raise.
We shipped FileMaker Pro for Windows in October, 1992. It turned out to be a good thing, but it was sure scary there for a while.
When Claris bought StyleWare, they told us the plan was for us to do something for the Mac that was like AppleWorks GS for the Apple IIGS. All we had to do was finish AWGS, and we would then start that work.
It did not work out that way.
AppleWorks GS shipped in October, 1988. It was not a commercial success. First, it was still buggy and slow. Second, the sales of the Apple IIGS itself were disappointing. And third, Claris needed engineering help on other teams.
After AWGS shipped, we were assigned to various teams in the company. I was assigned to work on FileMaker, which had been purchased by Claris a while earlier. They had an existing engineering team, and I joined them for a while.
Others on the team were assigned to other projects within Claris, such as MacWrite, and MacDraw. Two of those engineers were not at all happy about this, and they decided to head out on their own. Their story is captured well in this writeup: History of ClarisWorks, so I won’t recap the story here.
Soon after they left, Claris decided to do one last push for AppleWorks GS. The goals was to fix bugs and performance, add one or two glaring missing features, update it to the new much more stable version of GS/OS, and to not ship anymore versions.
I was not terribly happy with having to work on the Apple IIGS again, but I really had no choice. Right about this time, one of the ClarisWorks guys approached me, just like he had approached me at Rice about working at StyleWare.
“We would really like you to work with us at Spartacus,” he said, over lunch at Dela Cruz Deli, in Sunnyvale.
“I am interested. Can you pay me?”
“We don’t have any cash. We are working without salary. My wife is making some money, so the rent on the house is mostly being paid. We hope to have a nice payout, and you would be part of that.”
“Do you have a Mac for me to use? I don’t own one.”
“No, you’d have to provide one.”
I gathered my thoughts.
“I was not one of the principal developers at StyleWare. While I got some payout for our royalties, I had to buy a car with that money. I am making less take home pay in California working for Claris than I was making in Houston working for StyleWare. I have student loans to deal with.
“I just can’t work without pay, even if I moved into the house with y’all. I’m going to have to pass.”
He was disappointed, but he understood. His partner also talked to me, but basically just asked me to confirm what I had already said.
There was no way I could have done it. It was at least 12 months before Claris officially bought ClarisWorks from Spartacus. I am happy for the guys who founded it; they did well. Quite well.
They also invited me to work on ClarisWorks after the sale, but they decided to have the team in the Portland, Oregon area, and I was not interested in living there, and by the time they asked, I was working on cool stuff on FileMaker.
I did not receive a big payout, but I am very happy with the rest of my career at Claris.