Yesterday I had a phone interview with two computer scientists at GrammaTech. To prepare for the interview, I spent some time beforehand thinking about what kinds of questions I'd like to be asked, such as "What was the research you did over the summer?", and what I would say in response. While I was thinking about the answer to that particular question, it occurred to me that at some point -- not necessarily during this interview, but someday -- I was going to have to talk about monads with non-Schemers, and I was going to have to speak their language, which was problematic because
"return a >>= f ≡ f a" looks to me like the cat stepped on the keyboard while I was trying to write C. So I made three yellow sticky notes and put them on the wall over my desk to serve as a sort of Rosetta Stone for the monad laws: first in math, then in Scheme, then in Haskell, and finally in English. Thus satisfied, I went back to thinking about things that might actually come up during the interview.
Five minutes into the interview, I was reading off of those sticky notes. I guess they were a good idea.
We talked about all kinds of things: teaching, miniKanren stuff, even my GPS follower. I had mentioned a few specific projects I'd worked on in my letter, so it's not as though they had to go out of their way to find things to ask me about, but I was pretty excited that they were interested in my projects at all. In the latter part of the interview, they asked me to solve a programming problem, but they didn't ask me to actually write code, just to describe what tools I would use, how I would do it, and how long it would take (both how long it would take the computer, and how long it would take me). It was a straightforward problem, but seriously, guys, I'm going to take the graduate algorithms course in the spring, because 2003 just isn't getting any less long ago.
Anyway, I think the interview went reasonably well. They've asked for references, so we'll see what happens next.