And finally, StyleWare – Winter 1987

On Monday, December 14, 1987, I got up and got dressed. Had some cereal. Gathered up my two open-book, open-note, take-home final exams that I had completed over the weekend, and set out.


It was a cloudy-but-not-cold winter morning in Houston. As I drove to the campus of Rice University, where I spent four and a half years in college (and four summers in summer school growing up), I became a little wistful. I was still going to participate in the Spring semester in Rice Concert Band and Rice Jazz Ensemble, and I was going to be there for graduation in May (Rice did not do winter graduation), it was not going to be the same (although one day when I did need to go to campus, I saw the statue that had been turned).

I dropped off my exams at the correct offices on campus, drove around the loop once, and drove out to Southwest Houston, just outside of Bellaire, to the office complex that housed StyleWare, Inc.

I went into the office. My boss had me sign a W2, and gave me an insurance packet, and told me to get to work.

I was now a full-time exempt software professional.


StyleWare, Inc. – November 1987

The president of StyleWare made a formal offer for permanent employment after I spent a summer full-time, and most of the Fall semester part-time.

“The pay’s not much salary, but we will give you a 10% raise after two years. The developers will share royalties for the software sold. You will have a health plan.

“Right now, we have no vacation or holidays. We expect that once you start, you will work until we are done with the first version. We expect that to be finished in June.

“You will be working on the infrastructure of the product, taking that task over from me, as I am finishing the word processor. The others are working on their modules.

“When do you finish school?”

I gave him a date.

“Could you start the following Monday?”

I said, “Sure.”

I think that despite the fact that this was a startup, and it being obvious that long hours were expected, I did pretty well for somebody who almost failed out of college, in the Oil-Glut economy of mid-80’s Houston, and who took forever to graduate.

Besides, there was still time for something else to come along…

Digital Equipment Corporation, 1986

I was excited about this one; it was posted by the compiler group at Digital.

A compiler, for those who aren’t as technically minded as others, is a computer program which turns human-generated code in languages like C, Fortran, C++, or Java, into machine-readable code (applications). Compiler design, theory, and implementation is an entire specialty in the field of computer science.

One of the best courses I took at Rice was the Compiler Construction course I took in Spring of 1986. I will use a real name here: the professor was Hans Boehm, one of the authors of the Boehm-Deemer’s-Weiser garbage collector. The course was absolutely outstanding, and Dr. Boehm was one of my favorite professors at Rice.

We started the class waiting for the textbook, which arrived the second week of the semester. Boehm taught us about parsing, recursive-descent parsers, and LA and LALR(1) grammars. We had one homework assignment, and a trivial lab, and a midterm right before spring break. I was holding on, but theory work in computer science was a big weakness of mine until very late in my Rice career.

After spring break, Boehm assigned us the big lab. Due the last day of classes 8 weeks later. We were to write a compiler that generated VAX assembly code from programs written in Weird Programming Language (WPL), a toy language created for the course. This language had variables with scope, arithmetic and logical operators, and that kind of thing, but the hardest thing about it was that function types were part of the language, and variables of function types could be passed around, assigned, and actually called. Additionally, we had to do a couple of compiler optimizations, one of which was non-trivial.

If you attended class (or got the notes from somebody who did), and read the book, you could do the compiler. Just took time.

The Computer Science department had made some changes. We now had accounts on all 3 of the VAXes, and could work on whichever one was not too crowded. The terminals were kicked out of the Mudd Building to make room for lots and lots of Macs; we were kicked out to rooms in the side halls of Ryon Engineering Labs. This building is famous for a big pit in the middle of it; the three rooms that had the terminals were in a hallway off to the side of that.

There were about 25 students in the class (by FAR the smallest major requirement class I took at Rice). Of those, only 10 were undergraduates. The graduate students all work on their own machines, which left the 10 of us in Ryon. The very first weekend of the project, one of my classmates (let’s call him “Wiley”) suddenly stopped working, and yelled, “I can’t take it anymore! You! Come with me!”. He had pointed to one of the other classmates, and they disappeared.

They reappeared a couple of hours later, carrying in one of two four-foot stereo speakers. Wiley and his friend then proceeded to bring in Wiley’s high-end stereo and set it up. They had brought a cassette deck, and Wiley’s shiny new CD player. We had never seen one before; Wiley was on the bleeding edge. The music immediately started up. A sign-up list went up for the playlist. Everybody else brought in all of their tapes, and the music basically played for eight weeks continuously.

Throughout junior high, high school, and my first year of college, I thought I was going to be a jazz musician, and I had ignored pop music to listen to jazz and classical. This eight weeks, I was exposed to a bunch of really good music from the late 70s and early 80s. I discovered The Police, Peter Gabriel, Suzanne Vega, Queen, Pink Floyd, Jethro Tull, Emerson, Lake and Palmer, Yes… I wrote them down in my little notebook as they came across the stereo. They also let me play my jazz and classical some.

We, um, also decorated the room.

(Picture courtesy of a friend)

There was also an inflatable Godzilla, pizza boxes on the wall with dead terminals plugged into them, etc.

It was awesome.

I am not sure that the students who were sharing these terminals with us from Advanced Programming (otherwise known as “Team Programming”; think “Group Night” on American Idol, but for an entire semester) enjoyed it as much as we did. At least there were multiple rooms; we only took over one. Oh, well.

I did well on the lab, and made a “B” in the course. One of the best courses I took.

As far as I know, 10 people finished the lab. 9 of them were undergraduates. I don’t have proof of this; I do know of at least seven people who finished, and I heard those stats through the one graduate student I know who finished it.

That leads me back to interview with DEC.

I was SO sick. I had contracted the flu a few days early, and just felt awful. The interview was in the afternoon, and all day leading up to it, it rained and rained and rained in that Houston way of just dumping water from the sky. And I had no car… so I got to the interview in my suit, but pretty soaked and sick and miserable.

It was fabulous. The woman conducting the interview picked up on the compiler course in my resume right away, and we launched into a fabulous discussion about compilers and assembly and lex and yacc and all kind of crazy things, with 8″ x 10″ color glossy photos with descriptions on the back detailing was each one was. The interview flew by, we talked about interesting things, and we laughed a lot.

It was about a good an interview as you could have in a college placement office.

I then crawled back home in the rain, shivering, took a hot shower, and crawled back in bed for a couple of days.

Now I just had to wait and see.

Rice University Department of Electrical Engineering, 1985

The ad on the bulletin board was a typical ad for positions at this time, something like:

“The Department of Electrical Engineering is looking for lab assistants for the course COMP/ELEC 320, Introduction to Computer Architecture. Candidates should have a thorough knowledge of the material. They will be helping students, and grading homework and computer labs. Please call this number and leave a message if you are interested.”

So I did, and once again, they called me back with the meeting to parcel out the work with other labbies.

I got the job. Hurray!

That is how I got a job as a labbie for a course I made a D- in.


Oh, yes, there’s a story, all right. I’ll try to keep it short… (yeah, right). This is the story of

The Worst Course Ever Taught in the History of Academics

or, at least at Rice.

To start, it’s useful to understand a couple of things.

  1. This course was a shared course between Electrical Engineering and Computer Science.
  2. The Computer Science Department was less than one year old.
  3. When I took the course, EE was responsible for it.

There were a lot of computer science majors in the 80s, and somewhere around 150 of us signed up for this course.

The instructor, let’s call him Mr. Big, was not from the United States, and expressed in class that American students were too coddled. He lectured from his own notes. There was no book. There were no copies of the notes available. He assured us that the computer programming part of the course would be somewhere around 65% of the grade, with written homework, the midterm, and the final making up the rest.

He then proceeded to lecture on the written part of the course. The theory behind how computers are built and work. How assembly language works. How programs are loaded and executed.

Meanwhile, we had three big labs that were going to be assigned for that 65% of the grade, just as soon as the minicomputer that was assigned to the class was up and running. Nobody had PCs; this was normal.

What was not normal is that the Computer Science department had all of the good machines; the EE Department was stuck with a 10 year old PDP 11-44 (named phobos, which is the Greek God of Fear). One of my friends was the systems administrator for the course. He spent every waking hour trying to get this beast to boot, much less work.

It dragged on and on. We had maybe two homework assignments, and then the midterm hit. We had three hours to do it, but there were coding assignments on the test that had to be completed by hand, and there was much more than 3 hours of work. Plus, this was the first place we had done any assembly language at all. Nothing in the homework. And no machine. The grades were a disaster, and at least half of the class dropped the course after that.

The machine still wasn’t ready at the drop deadline. I was already dropping a course, and dropping this one would have put me below 12 hours, which would have caused major problems. I chose the wrong course to drop.

The machine was finally ready to go two weeks after drop deadline, which meant we had four weeks to do 3 major computer projects. The first lab took maybe 45 minutes to do, so that was no problem. It was the second lab that was a dumpster fire.

The terminal room for this computer had 8-10 terminals, but only six worked. The printer only worked sporadically. And the lab was instantly full.

The CS department in other courses had terminal sign-up sheets. You signed up in 3 hour blocks; you could only sign up for six hours/day and 15 hours/week, or something like that. The EE department did not do that. So we created some, signed ourselves up, and left them out. I signed up for time after a big test in another class, eight days later.

Eight days later, I showed up, and somebody had thrown away our original sign-up sheets, and printed their own, and those did not have our (me and my two best friends) names on them. This particular project was due the day before Thanksgiving, and the slots were full until the deadline of when the projects were due.

The only thing we could do is try to fix the broken terminals, and wait for people to leave and vulture the remaining time on their slots. I did this all weekend before Thanksgiving, and got 2-3 hours of time on the computer. Of course, the lab was ridiculously difficult, and there was no help in the lecture notes. The poor labbies had to give us the methodology on how to do it verbally when they were there.

For the technically minded, the gist was: The terminals each had a box with an embedded 68000 processor attached to the computer with a serial cable. It also had a spinning plastic disk with two colors, a motor, and an optical sensor. You had to write a program which would track the interrupts generated by the optical sensor as the little plastic disk spun, as well as the keyboard of the terminal. You had to cue up the events, and do something intelligent with them. He had not talked about interrupts or event-handling in class, so I was lost.

The deadline came, and I was nowhere near done. The night before, my buddies and I staked out all night in the Abercrombie Engineering Building, and we did this while we waited:

1984 Lab Stool Sculpture

The undergraduate circuit lab was near the terminal room, and we discovered 48 stools. We start messing around. The bottom stool that holds the whole thing up was upside down, and then we symmetrically added stools two at a time. We had three left at the end, we each carefully and simultaneously added them. When we got done, you could rotate the entire thing, although you would run up against the benches. Still, the caretaker for the lab took a picture, and put it on the inside cover of the very first Rice Engineer magazine.

Anyway, I worked through Thanksgiving weekend and got the lab almost working, and then accidentally removed all of my source code from the computer. No printouts (no printer). No backups (no network, floppy disks, paper tape, much less USB sticks). I had to do the work again. When school opened again on Monday, I went to Mr. Big’s office, explained what had happened, and he said it was cool, just turn it in. I turned it in another week later, and turned in an incomplete 3rd lab the last day of classes.

When I got the big 2nd lab back, I had 3 points taken off for various little nitpicky things, but 65 points taken off for being late, 5 points/day. I went back to Mr. Big, and he would not change the grade.

So I got a D- in the course.

Turns out, a LOT of people made D- or F in that course. On the last day of the course, there were student evaluations. The room was crammed with almost everybody who had originally signed up for it, furiously scribbling in anger.

The next fall, The Rice Thresher published results of student evaluations. With 150+ people responding, on a scale from 1-5, where 1 is the best, and 5 the worse, the course scored a 4.8 for “Overall Course Effectiveness”. I am still bewildered than anybody gave it a score other than “5”.

I learned the material, though, so I did not have any trouble trying to labbie the thoroughly-overhauled-by-the-totally-embarrased-Computer-Science-department’s version of the course a year later.

I retook the course later, and made a B+, and I know why I did not get an A, and it was OK. Having that B+ instead of a D- in my major GPA was a big reason I actually graduated.

As for Mr. Big, he taught one more course at Rice. He required a $60+ book, which he cowrote, and then only used one chapter out of. It was still a really bad course. He left Rice, and went to work for a well-known, giant Silicon Valley company, and I haven’t heard anything about him since.

Coming up: Much shorter stories about interviews and the like. I promise.