First, I logged into their server, set my window to full screen, and verified that the interviewer could see what I was typing, and vice versa. Then came some Q&A:
"What types of projects did you work on at your last job?"
I gave a brief description of EDRS, the proprietary route server, including the language and platform it was implemented on. I was about to describe MLPE but he asked me another question:
"Were all of the route servers you worked on proprietary?"
I said no, the other was OpenBGPd, which is part of OpenBSD, and that I developed provisioning code that took customer supplied information and produced configuration files.
"We do a lot of C++ and Python work here. From your resume, I can't really tell what your area of focus is. Are you more interested in programming, or network administration?"
I hesitated before answering this. I wanted to be truthful, while at the same time not wanting to blow the interview by giving the "wrong" answer. So I told the guy I was interested in both (which is true, but it has caused me problems, because time spent on one is time not spent on the other, which means I might not be able to answer some questions on interviews that interviewers feel prospective hires must know).
So we moved on to the programming part of the interview. He showed me a screen with a binary search tree on it and asked me some questions about it. I had to stop and think about some of the questions, because it had been some time since I'd worked with binary search trees (more on that later). I finally remembered enough to give the answer he was looking for. Then he gave me some sample code and asked me to use it to find the minimum element in the tree. I got stuck, and couldn't seem to sort out my thoughts. I started writing some code, hoping that doing so would get me out of my mental block, but the guy said that he was out of time, and that since I hadn't really gotten very far, that I probably wouldn't be a good fit. Just for my own information, I asked if this was generally part of the company's culture – that the software engineers focused on this aspect of software more so than any other. He said that he couldn't really go into the details, but that most people would expect candidates to be able to do this sort of thing quickly. I told him that I had had similar experiences interviewing candidates, where I had posed questions that I didn't think were difficult, but the candidates had a lot of trouble with, so I couldn't really be sure if it was just not having done something in a long time that was causing them problems, or if they really lacked the background.
After looking at the wikipedia page for the binary search tree I realized what I was supposed to do. I just hadn't done it in a long time – it's not as if I'd never done it, or didn't understand once having reviewed it. I have been thinking that part of my problem with these types of interviews is that even when I have had to do software engineering in a job, most of the time is spent debugging existing code and adding new features to it, as opposed to writing things from scratch, so I would not necessarily have had to implement a binary search tree (or some other fundamental algorithm) because it was already implemented (and hopefully, tested). I could go into more detail about this, but in general, it is not clear to me how much time I should spend on this sort of thing, since I have no way of predicting what types of questions I'll be asked, so anything I might possibly be able to do is fair game. I just hope I didn't blow what could have been a great opportunity, because there are people at the company whose work I've respected over the years and I would like to work with them.