Log in

No account? Create an account

Previous Entry | Next Entry

Equinix phone screen

I had a phone screen with someone from Equinix, one of the big network exchanges/datacenters out here. I don't remember everything I was asked. The questions were given rather rapidly, so I didn't have a chance to write anything down. Almost all questions required a factual answer. The interviewer had an accent, so I couldn't understand him very well at times. Anyway, here goes:

"You are working as a QA Engineer now, correct?"

I said that was my title at Nominum, but I had not been working there since Feb 2006. (As an aside, this seems to be a fairly common mistake; almost everyone asks me if I am still at Nominum, even though I clearly delineate dates worked on the application forms, as required.)

"Which languages do you feel most comfortable with?"

Perl and C.

"What is a volatile variable (in C)?"

I didn't remember; said I'd have to consult the C programming language manual; he said it was ok.

"What is the order of system calls you have to make in Unix for a client to connect to a server?"

I had one of those "I got stuck" moments. I knew I had to use socket() and connect(), but was vague on bind() and setting the src and dst addresses. This is something I used to do all the time, but haven't done recently. Something to review for the future. I might not have gotten stuck if the Q&A wasn't so rapid.

"I see you've used the pcap library. What does the pcap_open_dead() routine do?"

Said I didn't remember and would have to consult the tcpdump online documentation. (Due to his accent, I actually thought he said "dev" instead of "dead". At any rate, I honestly don't know anyone who memorizes this level of detail.)

"What is the difference between big and little endian machine representations?"

(Fortunately, this is one of those things I go over mentally before an interview; first time it's been asked, however. +1 for me.) For LE, the address increases with the numeric significance of the quantity. For BE, as the address increases, the numeric significance decreases.

"Is (some OS – can't remember) big endian?"

Said I wasn't sure; should've asked which hardware it was running on.

"How would you make sure something like an IP address what correctly transmitted from different endian machines?"

Said to use ntohs (this was the first thing that came to mind); added ntohl for 32 bit IP addresses once I realized my mistake.

(Some generic question about networking projects I've worked on)

Talked about congestion avoidance using Cisco AGS.

What is a common word used to describe BGP?

Wasn't sure; said I didn't know much about it and would need to check references. (Admittedly, as part of the IPv6 stuff I'm going over, I'm learning about BGP; there is a lot of information. I gave a partial explanation of autonomous systems; don't remember what I said. My guess is he was looking for something like policy-based routing. As I am now studying from the Practical BGP book, some things about BGP that I actually knew are coming back to me.)

(At this point he made a side comment of how he didn't mind interviewing me, but in his group, there is a lot of material to cover, and that based on what I'd said so far, I'd have a steep learning curve. Wanted to know how I felt about that.)

I said I'd do whatever it takes to get up to speed.

"Which have you used more, RCS, CVS, or Subversion?"

In order of most to least: RCS, CVS, Subversion.

"How does Subversion differ from CVS?"

Said you can use the former to store nontextual objects (binaries, executables, etc.), but not the latter. Apparently, that's not true anymore. It was true when I last used Subversion at Nominum.

"What is a common complaint about RCS that doesn't happen in CVS?"

Said I couldn't remember offhand; was trying to think of something having to do with write conflicts; said something to that effect. Apparently only one person at a time can check out a file with locking with RCS. I'd forgotten that.

"What's your favorite editor?"

Said I use several depending on what I'm doing, e.g. using emacs when replying to a mutt email.

"In vi, what command do you use to replace some text with some other text throughout the file?"

I said :s/original text/replacement text/g. He asked if it would replace everything in the file, and I said yes, because the g stands for global. But after the interview was over, I started up vi, and immediately typed :1,$s/original text/replacement text/g, which is the correct answer. I don't understand why I did the right thing at the keyboard automatically, but did not say the right thing during the screen. (The g does replacements throughout the same line but not all lines; it's the 1,$ that constitutes all lines in the file.)

"What other routing software have you used, such as from open-source projects?"

Said I'd used gated in the past (that must sound antediluvian). He asked if I'd used Zebra; I said I'd looked at it but never used it. Mentioned that I'd used gated back in the late 1980s and early 1990s before BGP became widely used and that it featured other protocols such as RIP, EGP, and HELLO that were primarily used.

"On a scale of 1-10, how would you rate yourself as a Perl programmer?"

6, because I occasionally need to reference books or man pages. (Based on a Google screen some time ago, I have decided not to rate myself higher than 6 on anything that I don't have detailed recall of. Their interpretation of 7 or greater is "if you could write a book on it (or did)". (There are people who work there who author widely referenced books who can ask detailed questions.)

"Same for awk."


"When would you use awk instead of Perl?"

I wouldn't use awk if I could use Perl instead, because everything I can do in awk, I can do in Perl.

"SQL, on a basis of 1-10."

1, because I would use reference materials quite often. (I haven't worked on a project where I had to do a lot of relational database programming, so I've never needed to develop SQL skills or expertise.)

"Which OS do you like best?"

Said I was fairly agnostic, particularly w/regards to flavors of Unix and Linux.

"Which version of Unix do you feel most comfortable with?"

Said FreeBSD, because I use it regularly on my ISP account.

"What's the difference between FreeBSD, OpenBSD, and NetBSD?"

Said I didn't remember, or words to that effect.

"Do you have any questions for me?"

Asked him what "a day in the life" in his team is like. There are four people in his group – he is the primary software developer. Asked if he or members of his team participate in NANOG. He doesn't, but another guy does; others in groups that maintain the network configurations do also. Asked what their IPv6 plans are; they have some.

That concluded the screen. He said he'd talk to his manager and see if an on-site interview could be set up. So, we'll see what happens. In the meantime, I will continue to study IPv6, BGP, and related topics. At least this time, what I'm working on for my own sake is applicable to a possible f2f interview.


( 5 comments — Leave a comment )
Nov. 16th, 2007 03:07 am (UTC)
This sort of interview exchange amazes me.

Maybe it's a cultural thing, being in a different industry, but I don't think I've had anybody ask an equivalent sort of question. Why does it matter what your personal preference of operating systems is as long as you are willing to use the environment they use at their organization? Why should anybody have to be able to reel off things that are easily found in documentation?

And not noting the dates on your last job on your resume doesn't suggest managerial competence to me.

Nov. 16th, 2007 08:13 am (UTC)
There are all sorts of reasons given for this type of interview, such as it filters out unqualified people, and it shows what a candidate is passionate about. When some people (such as myself) argue that qualified people who don't commit details to memory are also filtered out, we get the response that it's better to reject a qualified candidate than to hire an unqualified one, because an unqualified candidate can do more harm than a qualified candidate can do good. It's also said that eventually, qualified people will be hired somewhere.

This type of interview has become quite common for software engineering jobs in the SFBA. Sometime back, I mused that software architecture is probably a better career path for me than the SFBA "idiom" of software engineering. Unfortunately, those types of jobs are hard to find. I have heard from one source that freelance sweng jobs don't have these types of requirements, but there is a lot of competition for those jobs also. There's also a tendency for companies to have very small dev teams working on projects that are hit-or-miss, even in large companies, so the projects might be abandoned long before freelance workers can come in to help out.

I hope other software folks reading this will comment.
Nov. 16th, 2007 01:58 pm (UTC)
I'm from the same industry (though a different subfield within it) and I find a lot of these questions strange for similar reasons. Maybe it's an East Coast vs. West Coast software engineering cultural difference, or maybe it really does depend on the company. Or maybe it's that when I applied for jobs last spring I was applying for new-college-graduate jobs and the sorts of questions are different, and if I end up switching in a few years I'll be asked similar questions.

But I can't imagine my company caring what anyone's personal preference in operating systems is, as long as they can use whatever they'll need to use. And the question about the different version control systems strikes me as really weird. I never got anything like that. I got asked Java questions, but they were largely about basic features of the language that come up frequently enough that it would be problematic not to have them memorized.
Nov. 16th, 2007 11:11 am (UTC)
In my experience, you can find out what a person is passionate about by asking about hobbies and interests, not just work. That's why we take candidates out to lunch - to see if they're more or less human. If an interviewer were to hear you talk about your chorus and your dance lessons, wouldn't he or she come away realizing something about your learning ability and your devotion to learning? Or does the software industry still think people should have no lives?

The last interview I had outside the company I've been with for over 22 years, involved my giving a technical presentation with some Q&A. But after that, the discussions with 2 of the 4 interviewers were more chit chatty life in general ones (along with talk about the work environment). Maybe not a fair example, since I was heavily recruited by two people already working there. But I had another interview some years ago, where the hiring manager and I discussed early music and travel as much as we did the job.

In my managerial days, I figured that I could tell from resumes, transcripts (for fresh outs), and references whether a person was technically qualified. The interview told me about their communication skills and how good a fit they'd be in our group.
Nov. 17th, 2007 07:19 am (UTC)
There are various opinions regarding how to assess passion in software engineers. However, at least in the SFBA, most of the assessment has to do with what types of software projects people like to work on, as opposed to other things they might like to do. Also, there is a trend towards the startup mentality. If you don't have a job, your motivation is questioned. People wonder why you're not part of a startup. Even in large companies, there is a trend towards small teams that are "startup-like" in nature. So passion tends to be valued in terms of what software someone either does currently, or has done in the past.

You may be interested in a past post in which I commented on someone else's post on passing Silicon Valley interviews.
( 5 comments — Leave a comment )