I’ve had a surprisingly good run working independently, dabbling in my own projects and paying the bills with consulting and contract development work. There’s always the possibility I’ll have to get a regular job again (I’ve had some long dry spells), but as I mentioned in an earlier article, one reason I’m not anxious to get back in to the 9–5 (or 12–9, as my schedule tended to be), is that office space has gotten worse. I’ve seen the industry transition from giving programmers plenty of space or even their own offices to cubicles euphemistically termed “open offices” to the really open offices where we’re all sitting at the same table wearing headphones and avoiding eye contact with the people sitting around us, like New Yorkers on a subway.

The other aspect of the industry that’s gotten worse is the job interview. During the on-campus interviews at MIT in my senior year, there was one puzzle question from Xerox PARC (I blame Microsoft for popularizing the practice), and one quiz from an IT consulting firm whose rep looked embarrassed at handing it out. All the other interviews were conversations. My favorite was BBN, whose rep asked about my interests and advised me that at least one of them warranted going to grad school. When I mentioned that I thought I remembered him speaking at the BBN open house, he said “yeah, they make me do everything there”, and later I found he was a VP at the company! From then on, I really wanted to work there.

However, my first job was at Texas Instruments, and during that interview they put me up in a nice hotel (high floor of a Sheraton), took me to a nice lunch, listened to a presentation of my bachelor thesis, showed me a demo of their project which I slept through, and then hired me while the manager who didn’t like my low grades was away on travel.

In contrast, at a Bay Area job interview twenty years later, I flew to San Francisco on my own dime because I didn’t want to do a three-hour skype interview, the first interviewer hadn’t read my resume, asked me about object-oriented programming because he didn’t see what the point was, then asked me to write some code on a whiteboard. I said I didn’t work that way. He said that’s how they worked. I thought that was a terrible way to work (we actually did that at one company and then threw away the design once we started coding), and said I expected to be asked questions like how I implemented HTTP when I developed a WAP gateway instead of a quiz question like “explain what HTTP is”. Whereupon he informed me the next interviewer was planning to ask me to explain what HTTP is. So I thanked them for their time, apologized for terminating the interview, and said since I’d flown up at my own expense I was going to enjoy the afternoon and go to the Asian museum (which I highly recommend, by the way).

It shouldn’t be surprising that my favorite interviews resulted in my favorite jobs, like both parties of a first date hitting it off. For example, probably my briefest interview was for an MIT research position involving C programming, and the professor just asked if I was comfortable picking up a new language, and I said sure, it’s no big deal. That was good enough for him (and I got the hang of C after about a month).

After that, I finally got to work at BBN, and the interview was like a bunch of nerds exchanging interests (one kept talking about wavelets). That’s also where I finally got my own office. They did ask if I was comfortable taking over code instead of writing stuff from scratch, and I said of course, that’s reality, man.

At Nichimen Graphics, full of ex Lisp machine programmers and surfers, people would just wander into the room while I explained my background and projects and what I found interesting in their company and product. I liked the informality and casual atmosphere, even though I had to start my spiel from the beginning several times over.

But like dark clouds on the horizon, I could see the trend. When I interviewed with three groups at one research institute, two of them gave me quiz questions. One was such a simple question (how to traverse a linked list), I finished writing the code before the interviewer finished turning around after saying “take as much time as you need.” The other question was something about garbage collection which I thought the interviewer got wrong. So I opted to work in the third group because they didn’t ask me any silly questions. Which is probably not the most pragmatic approach to career decisions, but hey, principles. And at least I didn’t just toss the quiz into the trash like another applicant did (he later wrote a popular programming book).

At least those interviews still had an interview part. My first introduction to the all-quiz format was a phone interview with Google. The guy said he was going to ask me some Java questions, I said I haven’t used Java in a couple of years but OK, then he apparently thought that meant I’d forgotten all of Java so he would try C. Whatever. After an uninteresting session of how-would-you-implement-this over the phone, he asked if I had any questions for him, and all I could think of was, what kind of stupid interview is this where you show no interest in anything I’ve done, and should I take his invitation literally and start quizzing him? But I just said no, and the lack of interest was mutual. When I told a Google recruiter years later that I’m not going through that again, he assured me they vastly improved their process by cutting down the number of quizzes.

As with Microsoft and puzzles, Google popularized the quiz-first interview, but the game industry is hard-core about it. Members of one game studio cautioned me not to get too upset at the upcoming questioning. My favorite question was non-technical: “Why do you want to work here?” “I haven’t decided, yet.” The quizzer was actually a cool guy and apologized for the quiz a few years later after going through a guantlet of them himself. I was baffled at another interview because the quizzer was someone I worked with before. I was thinking, don’t you remember working with me for a year?

A lot of this quizzing business is just lazy bureacratic screening (after a phone quiz with Amazon, they got back to me and said a different position opened up, I just had to answer all the same questions I answered last time), but some of it is showing off. A virtual world startup (back when virtual worlds were hot) required me to take an online quiz, then a bonus question over the phone, and then a talk with the CTO, who quizzed me step by step over the construction of a hypothetical compiler, and at one point said let’s assume you answered this part incorrectly, so he could go through an explanation. After that, they said they’d fly me up for an on-site interview, but changed their minds and wanted one more phone interview with a team lead. I said OK, thought about adding “as long as there or no more quiz questions”, but thought that was snarky and unnecessary. I was at least half wrong. The lead started off by asking me to come up with a classic circle-drawing trick (I think you can find it on folklore.org), I decided that was a quiz too far and I was getting hungry, so I terminated the interview.

The quizzing can also backfire if the interviewer is wrong. At one startup, I had an overall nice interview because I insisted on meeting everyone and making sure I got a good vibe (after being at a stressfully political place), but one lead did ask me some quiz questions and he thought that grabbing a lock in Java prevented any other methods from being called on that object, whether or not they also tried to grab the lock. I got the job, anyway, and he was a good programmer, just confused on that topic (just about every programmer I know is confused about something – often it’s Unicode), but it does beg the question: if the interviewer is asking an important question and doesn’t know the answer himself, should he quit? Get a job in Customs?

Another time when the quiz answers don’t seem to be important is when I mention I was invited to apply by the founder. That’s happened a couple of times and in both cases the quizzing stopped, and the interviewer said “Oh, never mind this, then.” That’s almost worse than being quizzed. Then I think, “So it’s that kind of place.” And in each case, it was.

I’m not saying don’t ask any questions, of course, but instead of handing out quizzes like a teaching assistant or expecting candidates to perform like monkeys at a whiteboard, you should be asking good, useful questions that reflect well on you and your company like the ones you should be asking as part of your work. Questions that have a point and are based on research. Read the resume, look at the github repos everyone’s asking for these days. I got in a tiff on Quora with a recruiter who insisted that “Why should I hire you?” is a necessary interview question. I assure you I have been on both sides of a lot of interviews, and no one has been crass enough to ask that (or said, “Why should I work here?”).

It’s not hard to weed out candidates with conversational questions, like “What classes did you use in your Java project” (that was a softball thrown to a junior-level developer and drew a blank), “Why did you use XML instead of …?” (again, couldn’t answer…), and often, maybe I’ve watched too many police dramas, if you let them talk they’ll do themselves in. Like that candidate who kept evading my questions about his work and talking about how he liked Asian women. Now, that wouldn’t have come out in a quiz.