April 20, 2003 Interviewing

Interview Synopsis

From Fred (not his real name):

So the interview was rough, as to be expected. Here is a synopsis:

10:15-10:45 - Met with my recruiter. Discussed what day would be like and talked about the two teams I would be interviewing with: the CLR team and the Enterprise Services team.

11:00-12:00 - Enterprise Services Interview: Discussed High Performance systems and Enterprise Service standards. Programming problem: Design and Implement a self-managing Thread Pool class.

12:00-1:30 - CLR team Lunch interview: Discussed Security in the CLR and PKI. Programming problem: two fixed length buffers padded with nulls. Swap and reverse them, not swapping and reversing nulls.

2:00-3:00 - Enterprise Services interview: Discussed VS.NET. Design a function to select the six strongest stations for a car stereo.

3:30-4:30 - CLR team interview: Implement strpbak. Common Parent for two nodes BTree problem.

April 20, 2003 Interviewing

If Richard Feynman applied for a job at Microsoft

Interviewer: Now comes the part of the interview where we ask a question to test your creative thinking ability. Don’t think too hard about it, just apply everyday common sense, and describe your reasoning process.

Here’s the question: Why are manhole covers round?

Feynman: They’re not. Some manhole covers are square. It’s true that there are SOME round ones, but I’ve seen square ones, and rectangular ones.

Interviewer: But just considering the round ones, why are they round?

Feynman: If we are just considering the round ones, then they are round by definition. That statement is a tautology.

Interviewer: I mean, why are there round ones at all? Is there some particular value to having round ones?

Feynman: Yes. Round covers are used when the hole they are covering up is also round. It’s simplest to cover a round hole with a round cover.

Interviewer: Can you think of a property of round covers that gives them an advantage over square ones?

Feynman: We have to look at what is under the cover to answer that question. The hole below the cover is round because a cylinder is the strongest shape against the compression of the earth around it. Also, the term “manhole” implies a passage big enough for a man, and a human being climbing down a ladder is roughly circular in cross-section. So a cylindrical pipe is the natural shape for manholes. The covers are simply the shape needed to cover up a cylinder.

Interviewer: Do you believe there is a safety issue? I mean, couldn’t square covers fall into the hole and hurt someone?

Feynman: Not likely. Square covers are sometimes used on prefabricated vaults where the access passage is also square. The cover is larger than the passage, and sits on a ledge that supports it along the entire perimeter. The covers are usually made of solid metal and are very heavy. Let’s assume a two-foot square opening and a ledge width of 1-1/2 inches. In order to get it to fall in, you would have to lift one side of the cover, then rotate it 30 degrees so that the cover would clear the ledge, and then tilt the cover up nearly 45 degrees from horizontal before the center of gravity would shift enough for it to fall in. Yes, it’s possible, but very unlikely. The people authorized to open manhole covers could easily be trained to do it safely. Applying common engineering sense, the shape of a manhole cover is entirely determined by the shape of the opening it is intended to cover.

Interviewer (troubled): Excuse me a moment; I have to discuss something with my management team. (Leaves room.)

(Interviewer returns after 10 minutes)

Interviewer: We are going to recommend you for immediate hiring into the marketing department.

Keith Michaels
krm@sdc.cs.boeing.com

April 19, 2003 .NET

New OpenGL binding for .NET

From Randy Ridge: New OpenGL binding for .NET from the CsGL people, supporting GL 1.1, GLU 1.3, and GLUT 3.7.6. CLS-compliant, cross-platform, yada, yada.
April 19, 2003 Interviewing

My Interview At Microsoft

I had an interesting two days interviewing at Microsoft. Bottom line: I didn't say whether I accepted their offer.
April 18, 2003

Blog Entries as “Flair”

April 18, 2003

Brian Valentine talks Windows Server 2003

From Keith Wedinger: Interview with Brian Valentine, Senior Vice President of the Windows team at Microsoft regarding the development of Windows Server 2003. What's interesting is Brian's comment about the possible use of managed code within Windows itself.
April 18, 2003 Interviewing

My Interview

Fri, Apr 18, 2003

After never thinking that I would, I had two days of interviews at Microsoft in the middle of March, 2003. The first day was with the MSDN content group. They’re the folks responsible for all of the technical articles at http://msdn.microsoft.com and the ones at Microsoft with the job most closely related to what I already do. It’s their job to tell developers how Microsoft technologies really work through articles, talks, samples, online chats and whatever other means they think will be effective.

My first interview of day #1 sticks freshly in my mind even two weeks later. It was a guy that I’d most closely describe as a human molecule. I’ve been told that he’s big into coffee and it’s not hard to see the effects the guy never stops moving! Likewise, his brain was constantly moving. He had all kinds of interesting questions about how I would turn my product ideas (created on the spot) into compelling educational materials of Microsoft technologies. Very fun.

I had several other fun interviews that day, all with smart people asking really great questions. However, after a few interviews, I was disappointed that nobody was asking me to write any code on the board. Apparently I had enough street cred that this wasn’t necessary for me, but one interviewer laughed and said I could write whatever code I wanted on his board if it would make me happy. Another had a strongly negative reaction to the idea that anyone would be asked to write code on a whiteboard, which he considered a supremely unnatural act. In fact, all day long, I had questions that dove into my motivations and my ideas, but none of them tested my technical knowledge at all until the very last interview w/ my potential boss’s boss (or my boss’s boss’s boss I lost track). She asked me to solve one thought question, one visual riddle and to write some code on the board. The thought question we talked through, but she threw out leading questions faster than I could come up with my own conclusions (although it was a very interesting discussion). The visual riddle seemed impossible at first, but I solved it in a few minutes. When I showed it to Don Box, he also declared it impossible, then solved it faster than I did (bastard). The coding question showed me just how unnatural it is to write code on a write board (even my simple linked list code had three bugs in it doh!). I am *totally* addicted to incremental code-compile-test and at one point even suggested using a goto to avoid erasing half of my code to insert a loop (truly the low point of the day).

Even so, at the end of day #1, I was energized. I’m one of those sick people that loves to be tested, especially if I’m confident that I know the answers. My last interviewer told me that I had done well and we talked about what would happen if I was offered both jobs from the two teams that I was interviewing with. She needn’t have worried day #2 did not go nearly as well.

The day #1 position was a highly technical position, which I’ve trained for since I was 12. The day #2 position was a <gasp> marketing position. But is was *so* cool. The job is to take whatever technology MS comes up with that day and make a business out of it. It was so diverse and so different than things I’d done before that I was drawn to it like a moth to a flame. Unfortunately, my answers made it clear that I didn’t have anywhere near the background needed for the job. I felt like a new college graduate, trying desperately to match something from my background to what they were asking.

As a measure of the kinds of questions I got on day #2, at one point, I was asked to develop a marketing plan for packaged ice to native Alaskans. “Did you just ask me to sell ice cubes to Eskimos?” I asked. “Uh, yeah,” he agreed. This was during lunch. And it wasn’t the hardest question I got! By my last interview, I was so scared that they might actually offer me the job and that my brain would explode trying to do it that I confessed that I was definitely not the man for the job. However, that didn’t stop my potential boss from drilling me on how to make a business on one of my sons’ hobbies (about which I know almost nothing).

Of course, I never clicked with anyone on the team from day #2 (you can’t click with someone that thinks you’re ignorant). However, the experience was amazing. One of the interviewers had a fabulous technique that I just had to appreciate — he had me role-playing in various real-world Microsoft-related situations over and over again til I swear my ears were bleeding. I’m a big fan of behavioral interviewing instead of role-playing as an indicator of someone’s real skills, but watching him put me through the ringer was a thing of beauty.

Speaking now from experience, I’d have to say that the Microsoft interview process is all about finding the right fit. That’s the case with all interviews, of course, but Microsoft seems to be very good at it. The fit includes both technical savvy (which they seemed to assume in me) and personality relative to the team. I fit very well into one group and not at all well into another. Working with the day #1 group would make me a successful part of the Microsoft machine, whereas if I had mistakenly gotten the job associated with day #2, I would have been set up to fail. So, if you are turned away from Microsoft, it means that you wouldn’t do well there. That’s a good thing to know; you certainly don’t want to take a job at which can’t possibly be successful. I know I don’t.

April 17, 2003 .NET

WinForms Design-Time Integration, Part 2

"This is the second of two articles discussing the extremely rich design-time features of the .NET Framework. Part 2 continues the journey by concentrating on design-time functionality that you can implement beyond your components and controls, including TypeConverters, UITypeEditors, and Designers."

← Newer Entries Older Entries →