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.

Oops, Part 2

I ran out of copies of my resume. So I decided to go to Kinko’s and run off some more. When I got there, I read it over just to make sure. That was when I saw it.

The phone number on the resume was wrong.

I had put my mother’s number instead of my apartment number. This by itself was not a disaster; Mom was certainly happy to forward people to me or deliver messages.

But it was my mother’s OLD number. She had changed it four years earlier because some creep kept calling her phone and breathing heavily on the other end 3-4 times/night.

So, in the off-chance that somebody in these interviews wanted to talk to me, the phone was disconnected.

Somehow, the rejection letters still got sent to my apartment, so at least that was right.

How did I ever get a job again?

 

Oops

The phone rang and woke me up. It was mid-morning. On a weekday. Shouldn’t I have been in class? Why was I still in my apartment asleep?

“Hello?”

“Hello, Mr. ____? This is Mrs. Overbearing from the Rice Placement Office.”

“Yes?”

“Did you forget?”

I blinked a few times.

AW, HELL.

“Yes, yes, I did. I was supposed to interview with General Dynamics, wasn’t I?”

“Now, listen to me carefully, Young Man. You will do exactly as I say, or I will ban you from ever using the Placement Office again. Do you understand?”

I was awake now.

“Yes, ma’am.”

“You are to type a letter and address it to Mr. Johnson. In this letter, you will apologize for missing your appointment, and outline that you understand that his time is valuable, especially when travelling out of town. You are to wish him well, and good luck with his candidate search. You are to sign your name. And then, you are going to bring the letter with two copies to this office. And it has to be here by 3:00 this afternoon or I will have you banned from the Placement Office for good. Do you understand me?”

“Yes”

“Good morning, then. 3:00. Not a minute later.”

It was in the office by 12:30. I did not have to talk to her; she was at lunch. But she let me sign up for more interviews.

National Instruments, 1986

At least, I think it was National Instruments… It’s been a long time.

NI_HQ

My first year hanging out at the radio station, where I was a jazz DJ on Sundays, there was a fellow who was a KTRU veteran. He had gone to Rice for both undergraduate and graduate school, and had degrees in computer science. We talked a little here and there; he used to drop by during my show when the radio was in the basement of the Rice Memorial Center on his way to or from Willy’s Pub. After that year, he got a job and moved to Austin.

Fast forward a year or two. I walked into an interview at the Placement Office, and there he was, sitting on the company side of the table. He was my interviewer. He remembered me, but then the interview started.

He looked at my resume, asked for my transcript (which I had with me), and then asked me questions about programming.

At one point, he asked me how I would implement something or other, and I mentioned using recursion. He then asked, “So, what kind of assembly gets generated for recursive functions?”

I told him about pushing parameters and return addresses, and it depended on convention or language as to whether the calling routine fixed the stack or the caller.

“So, every recursive function adds to the stack?”

“Yes”

“What if your stack is 256 bytes?”

Umm.

“What kind of machine has a 256 byte stack?”

“Well, many devices that monitor things have that kind of stack. Medical devices, oil well control devices, etc.”

“I guess you shouldn’t use recursion then.” And I proceeded to write down a non-recursive solution to his problem. I had never done that, so it took me a few minutes.

At that point, he leaned back, and said, “Look, I’m going to be straight with you. You’re smart. You know some stuff. But your resume is bare. Your grades are bad. You are going to have a hard time. I think you have a lot to offer, but I am not in a position to recommend you right now.”

He paused.

“What courses do you have left for your degree?”

“Algorithms. A couple of non-major courses that are still required.”

“You need to nail Algorithms. If you do well in that course, you should land a good job somewhere.”

“Thanks for the advice.”

“I wish you well. Hope we can run into each other at Homecoming some time, and you can fill me in on how it worked out.”

This is the last time somebody who turned me down gave me constructive criticism about my interview. That was 32 years ago.