Job Search 2009

2009-11-30

I recently started a new full-time job writing software.  Here is how that came about:

Further factoids

I like to think that I’m at least somewhat aware of how lucky and how privileged I am, and I might editorialize about that or some other aspect of this experience another time.  For now, I thought it might be interesting just to list some of the questions I was asked.  As far as I know, nothing written here is a direct quote from anybody.  Any lack of specificity means that my notes or recollections are vague, or that I’m being lazy, or that I think the specifics are none of your business.

Preliminary questions

Here are some of the non-technical initial questions the HR people asked me.

I spent most of my time on this type of call repeating and expanding on the contents of my resume.  For example:

Technical phone screens

4 out of 4 HR people mentioned my interviewer’s name when scheduling the technical phone screen.  In 3 of the 4 cases, I elected to webstalk my interviewer beforehand.  I was moderately entertained in 2 cases, regretted it in 0 cases, and decided it had been useful in 0 cases.  In the 4th case, I got a first name only (or forgot the last name, perhaps), did no “research,” and ended up getting a call from someone with a different first name.  Go figure.

One engineer did ask me what language I wanted to use for the coding question (2 companies used web-based shared whiteboards to ask coding questions during the phone screen), and several spent a few minutes up front asking me to discuss specific projects I’d listed on my resume.  All four spent the majority of the call asking me technical questions.  At least one launched into a somewhat involved technical question before I’d uttered more than a few words; I had to ask for some details to be repeated so I could write them down.  In 1 case I had no time to ask any questions whatsoever; the other 3 interviewers gave me a few minutes at the very end of the call.  Several people implied that they thought I would be invited for an on-site interview, but 0 promised this, and some didn’t mention the topic at all.

Telephone interviewers from 2 different companies asked superficially similar questions about what happens when you invoke wget or curl on a URL.  I believe both used http://www.google.com/ as their example.  One interviewer seemed to be more interested in network and system level stuff, such as the sequence of calls to routines in the BSD socket API, e.g. gethostbyname(), socket(), connect(), and a few high-level details of DNS, HTTP, and TCP.  The follow-up question in that case was a seemingly open-ended question about making a large download go faster; the specific answer desired apparently involved fetching ranges using multiple HTTP connections.  The other cast a wider net, reflected in the original question’s phrasing: I was to describe what happens upon entering the command into bash running in an xterm on a Linux machine, which (once I’d summarized my previous spiel and realized I wasn’t done) gave me an excuse to talk about USB HID, Unix domain sockets, ptys, fork and exec… we ran out of time before I got started about ld-linux.so.2, which was probably just as well.

A few more discussion questions I was asked at this stage:

2 different companies used a shared web-based whiteboard [my term] to ask me a coding question over the phone.  I was warned about this ahead of time in both cases, so as to ensure that I’d be near an Internet-connected computer.  Each web-based whiteboard was developed in house; neither was entirely glitch-free, but both were more than adequate.  The 2 questions were as follows:

[I managed to flummox both interviewers by stumbling upon novel and unexpectedly inefficient initial solutions, thereby cutting off the usual avenues for incremental improvement.]

On-site interviews

I was given a start and end time for all 9 on-site interviews (as well as a location, for the 6 first-time visits at least).  I was never given a more detailed schedule ahead of time, though several of the interviews started with a meeting with a hiring manager or someone in HR who gave me the day’s schedule.  Each company divided the interview into uniform 30, 45, or 60-minute slots.  The only non-uniformities I can recall were either for lunch or (in 2 cases) to wait for an opening in a busy executive’s schedule.  There was one interviewer per slot in all but 2 or 3 cases with 2 or 3 simultaneous interviewers, one of whom invariably did most of the talking.

The on-site questions didn’t really differ much from the telephone questions.  There were fewer of the easy preliminary questions, but still quite a lot of questions about things I’d done in the past or might be interested in doing in the future.  In fact, I’d guess that I spent more time overall talking about past projects than answering technical questions, though the proportion varied wildly between companies.  Many of my on-site interviewers, even if they were engineers, asked only non-technical questions.  Some, especially higher-ups, spent the whole time selling me on the company.  Many, if not most, started by describing the company and their particular product or role.  These descriptions didn’t usually overlap as much as they seemed to fear.  Some of my interviewers were in a different department or group than what I was interviewing for; these tended to pre-emptively justify their presence.  Almost all sacrificed at least a few minutes of their precious time slots for me to ask further questions.  I mostly stuck with variations on “What do you, personally, do here?” and “What’s your typical day like?”  In a couple of cases I asked somebody to sketch a partial org chart.  Once I asked somebody to show me some code.  [They did.]

On-site non-technical questions

On-site technical discussions

On-site coding questions

Some of these were prefaced by a question about what programming language I’d prefer to use.  Some were not.

Homework

One company contacted me after an on-site interview to schedule a time to email me a coding question.  I was given 2.5 hours to complete the task, or as much of it as I could.  The task involved implementing a data structure (in C, using only the standard library, or in Java, using the standard library minus java.util).  The detailed instructions included a list of operations, arranged in order of priority, that the data structure should support.  [I didn’t get to them all, or even close.  My submission was written in C and contained 4471 bytes in total.  It was quite a stressful experience, in part due to my own foolish overscheduling, and I had mixed feelings about it.  I later heard that it had passed “with flying colors,” which was nice to hear.]

Taboo questions

In about 2 instances, I elected not to answer a specific question about some aspect of something I did for a previous employer that I felt was proprietary.  In those cases, I said that I’d rather not go into so much detail about X, offered an extremely vague answer, and tried to suggest a related area where I felt that I could go into more detail.  So that’s been pretty rare for me.  It may help that many of the projects I’ve worked on no longer exist, although I’ve been known to refuse to comment even in that case.

In California (and in the USA generally), certain interview questions are considered illegal.  I got a few questions that brushed on these topics.  A recruiter asked about my work authorization; I stumbled a bit and admitted that I was a U.S. citizen.  Over lunch, somebody asked me whether I’d grown up in California; I mentioned Ottawa.  As I understand it, employers are forbidden from using a few specific types of information to make discriminatory hiring decisions, even though I’m still technically allowed to provide such information.  Even so, I wish I’d answered those questions in the spirit in which they were asked (“Yes, I am indeed prepared provide evidence of my U.S. work authorization if and when you employ me” and “Gosh, I don’t know if that’s really such a good topic for us to chat about in the context of a job interview here in these United States”), rather than accidentally putting a prospective employer in a situation that might cause unnecessary worry about legal issues.

Just as in every other job search I’ve done, all 7 companies asked at some point about my compensation requirements, my salary history, or both.  In fact, at least 3 of the companies I interviewed with had a formal job application form (paper or electronic) including both questions, to be completed before receiving an offer, with some redundant but intimidating boilerplate at the bottom about how failure to answer any question on the form is grounds for rejection and/or future dismissal (usually right next to the “at-will” bit about how either party will be able to terminate the employment agreement without notice or justification).  Totally normal stuff.  However, as it happens, I can’t recall ever having disclosed my salary history or specific requirements to any potential employer, during this or any other job search.  As far as I am aware, this has never been a significant problem for anyone, though folks do often seem to push back quite hard, for perfectly understandable reasons.  While some companies played it cool this time around, I feel like at least 3 of the 7 acted sort of surprised about it, which was too bad.

Some of the same companies (and more besides) seemed to react somewhat negatively when I accepted Blekko’s offer without soliciting a formal offer from everyone else (or, rather, from the negatively-reacting company in particular), which also seems like kind of a shame.  I suppose I could have gone to the other extreme and tried to spark some sort of bidding war.  Imagine the flak I could have drawn by blogging about that!