November 11, 2005

Why this week was crappy for me, personally

Reason 1: Arrested Development was cancelled today. Nobody watched it like I told you to. Taste the sad.

Reason 2: Microsoft doesn't want to hire me. Damn you Billy Gates!

Yes, I had an interview out there in Redmond, Wash. a couple weeks ago.

I knew it wasn't going to be easy. And, in the past, I've sometimes felt unprepared for the pop-quiz portion of software engineering interviews. This time, I was determined to be prepared.

Microsoft's interviews are notoriously difficult; they fly an army of people into Seattle every day, but make offers to only a small fraction of those people. A day of interviews at Microsoft is like running the gauntlet. They schedule you to talk to three or four different people, and if those people all like you enough, you eventually get passed on to the hiring manager... the big boss. (Come to think of it, it's kind of like a video game.)

Microsoft's philosophy is to look at as many people as possible, and try to find the ones who have the best potential, and they would much rather score someone as a false negative than a false positive. As a result, you can get weeded out in a hurry; if they send you home after only a couple interviews, that's a bad sign. So my mission was to do my best to stay alive and not get voted off the proverbial island. (Has Survivor been turned into a proverb yet?)

Before I left, I prepared myself as best I possibly could. I researched the coding questions I was most likely to be asked, and practiced them in C. I brushed up on C++ and object-oriented programming, and did my best to study up on testing procedures. I even picked up a copy of How Would You Move Mount Fuji?, which is full of famous logic questions (even though Microsoft has moved away from such questions).

I was nervous the day of the interview, as usual. This would be an even longer and arduous process than normal interviews, but it would also be a good test of how well I had prepared. One by one, I talked to members of the Office Business Application team, who were looking for a "Software Development Engineer in Test" (that's a diplomatic way of making "software tester" sound almost as cool as "software developer", even though it's clearly not).

My first interview was with "Altaf", who asked me a question I had prepared for: reverse a string (of words) in place. Mysteriously, I knew how to code it up quickly on the whiteboard. Later, when "Hamesh" asked me to eliminate the duplicate elements of an array, and "Brett" asked me to find missing element in an (n-1)-element array of distinct integers from 1 to n, I was again mysteriously able to come up with solutions (ahem... had some practice on those too). After answering some hypothetical questions from "Clodagh", I made it to the Big Boss... "Anu". I was excited about getting that far... I made it all the way to the end!

It felt like a miracle. Altaf, Hamesh, Brett, Clodagh and Anu. (Heh... "Brett.") I felt like I had set them up and knocked them down. Getting past the technical quizzes is the tough part; I can talk about myself in an interesting and engaging fashion for hours if I can just get past the damn tests.

Sadly, it wasn't meant to be. Getting turned down for a job is tough in any case, but this one really hurt because the degree of difficulty was so high, and I really thought I had nailed it. Microsoft told me they would "move quickly" on a decision, but wound up taking two weeks before giving me the bad news. Maybe that means I was close to landing it; I really have no idea why, in the end, they didn't want me. And that's the most frustrating thing of all; I'd really like to know whether I did some to screw it up in the end, or if there were just other candidates who were better qualified.

Not that it's all bad that I won't be working there. The primary benefits were obvious; they would cover relocation, and I would gain experience in Windows programming and testing, two areas where I really haven't had much experience at all (which also could have been a factor). There were some major red flags going up as I researched employment at Microsoft. Most troubling is the stack-ranking system they have for employee reviews; they grade on a curve, which means somebody always has to get the shaft (and it's usually the new guy). It makes for a less-than-comfortable work environment. Plus, lately, a lot of their smartest employees have jumped ship, worried that the software behemoth is focusing too much of "defense" (i.e. protecting its monopolies) and not enough on "offense" (i.e. innovation and promoting new ideas). Not that I think I would have been one of their smartest people if they had hired me, but I still found it interesting that former long-time employees feel like Microsoft's best (and most interesting) days are behind it.

So anyway, I'm disappointed that it's back to the drawing board on the job search. That's the other reason getting an offer would have rocked... because looking for a job SUPER-SUCKS. It's especially hard in my field, because it's not enough that you have x years of experience or attended y university... you're expected to prove yourself anew to each potential employer. Over the past several weeks I've worked on practice problems, programming quizzes, sample projects, and even an I.Q. test (really!) to prove my worth to various hiring managers. I've done nearly as much coding over the past month as I did all year while having a programming job (sadly, they didn't really give me a whole lot of work to do).

For example: this was a project I did while applying for this job. They said it should take two-three hours; it took me about 10 hours to get it right. After sending it to them, they almost immediately rejected me. Here's another piece of code I worked on for another company's programming test; it was so difficult I wasn't even able to finish in time. This is annoying, not only because it reinforces my low self-esteem, but because doing this work eats up a lot of time, and it's just demoralizing when all that work turns out to have been fruitless. My latest opus is this tic-tac-toe program, which I can only hope will impress the company I wrote it for: "Tic Tac Toe Industries." Hopefully they'll be impressed that my computer player always tries to select the center square first; Andrew calls that the "James gambit."

(OK, that last part was a lie; he actually called it the "Picard manuever." Damn you, Jean-Luc! Always outshining me!)

At any rate, it was great hanging out with Andrew, and it was great being in Seattle. It really reiterated to me how much I love it there... I would love, love, love to move there. Here's hoping somebody will be willing to hire me long-distance.

James - 1:02 AM
Comments

I will be especially sad at the cutting back of Arrested Development. I'm told that I can watch Soap to ease the pain though.

Lee - Nov 11, 2005 - 11:53 AM

Please send me a copy of your resume. I might have a position for you.

Dale Shirley

Dale Shirley - Nov 17, 2005 - 5:37 PM