After graduating from Rensselaer Polytechnic Institute (RPI), you then got your master’s degree from MIT in 1965. How did you go from that to working on ARPANET?

I’d continued at MIT, where I was working on my doctorate and not making a whole lot of progress. So my advisor, who consulted here at BBN [Bolt, Beranek and Newman, which later became Raytheon BBN Technologies] one day a week, advised me — as advisors are wont to do — ‘You should go talk with these guys at BBN, see if there’s anything that they’re doing that you’d be interested in.’ I started in June of 1967 and I’ve been here ever since. We’ve changed our name, but it’s been the same place.

I worked on a couple of projects in the computer center here, including applications for our time-sharing system. We started working on a replacement for our time-sharing system, which was a SDS-940, built by Sigma Data Systems, who are no longer around. We went with a Digital Equipment Corporation (DEC) machine, but we decided to write our own operating system. We didn’t like the available operating system, so we built up hardware and worked on that. That was working by 1969 or early 1970.

About that time the ARPANET came into existence. The first IMP [Interface Message Processor, essentially a router; pronounced "imp"] was delivered to UCLA in September 1969, right around Labor Day weekend. Just over a month later they delivered the second one to Stanford Research Institute. About a year later we got our connection, and once we did we starting writing software to do the Network Control Protocol (NCP), Telnet, and some other protocols that were becoming standard at the time.

At some point I read an RFC [Request for Comment, a memo detailing new concepts or protocols for the developing ARPANET ] that someone at SRI had written about a mail box protocol. I looked at it and thought probably we could do something better. What I thought would be better was a simpler protocol. As proposed the protocol had a lot to do with how to put ink onto paper — formatting issues, where the formfeeds went, what tab meant, all that sort of stuff. I said that’s too complicated: we just want to send messages to people.

Another problem I saw was that messages were sent to a numbered mailbox; there were 255 mailboxes, and you’d send it to one of those numbers and somebody would print it off on a line printer, take the paper and put it in a little cubbyhole someplace for somebody to pick up and read.

With time-sharing systems, and computers in general, what you really want to do is send messages to people, not numbered mailboxes. So I decided to modify a program. Remember, this notion of sending messages to other users on the computer had been around for at least six years by then, perhaps even more. All the applications I was aware of, though, involved a single computer. So time-sharing was the way to go in my mind.

"I didn’t want to wait for that, so I wrote a simple little one for my own use."

Computers were very expensive — I think one we had here, for example, was something on the order of two or three hundred thousand dollars. That’s 1970 dollars. They were a scarce resource. To get the best use out of them, they were shared by multiple users at the same time — that’s the concept of time-sharing, because the computer very quickly switches attention from one user’s job to the next user’s job. Since most of the time working on a computer you’re thinking rather than doing something, it works pretty well.

So this idea had been around for several years, of sending messages to other people on the same computer. I saw an opportunity to extend that to users on other computers, because now we had a network connection that we could use to transfer the mailbox information from one machine to the other. I put that together in late 1971. I combined the SNDMSG program we had, which was used within a single computer, and a little experimental file-transfer program I had made.

ARPANET was very young and looking for problems it could solve. I had an experimental file-transfer protocol, but the real one was still in the works. I didn’t want to wait for that, so I wrote a simple little one for my own use, and glued that onto the SNDMSG program so I could send the mailbox file to another computer, where the receiver’s mailbox was. That was the first networked email in some sense.