Matt Goyer Logo

 

nav
Home
About
Contact
MediaCenter
Resume
Photos
Stories
Movies
Books
Wiki
FAQ

fav sites
Gizmodo
Engadget
Slashdot
News
CNET
Wired
DazeReader

friends
Adam
Andrea*
Angie
Benny
Brad
Chris
Christine*
Craig*
Curt
David*
Donny*
Emily*
Gary
Gords*
Jacks*
Jam*
Jesse
Jessica
John
Jon*
Kevin
Lauren
Maeve
Mark*
Ming
Nat
Nick
Nicole*
Orr
Paul
Rafi*
Rannie
Tracy

UW WebBloggers
join
random
prev
next

 
 

Executive Summary

Interviewing is time consuming, tiring, and a lot of work. But the reward for doing well is a full time job. Treat the whole process as a game and have a good time.

And don't give up. It took me a long time to get an interview with Amazon and I have failed at the Microsoft interview process before so keep at it.

What else?

  • Be well prepared, study hard. Buy books. Talk to friends.
  • Aggressively pursue interview opportunities. They rarely come to you.
  • Make sure you can perform well with little to no sleep.
  • Know what they want. Ensure that's what you want. Then show you have that.
  • Enjoy the game/process.
  • Contact HR if you haven't heard from them (see JC Oct 6).
  • Be enthusiastic.
  • No two interview experiences are alike. Prepare for anything and everything.
  • Research shows that the interviewer makes up their mind in the first thirty seconds that they meet you. See Malcom Gladwell, What do job interviews really tell us?
  • Don't have a cover letter.
  • Be honest with yourself and your interviewers.

You can find more interview stuff on my interviewing wiki.

Finding a full time job in Seattle

How did I get two full time job offers from two great companies? The answer is: a lot of hard work and preparation.

Disclaimer: The opinions expressed here are my own and not those of any past, present, or future employers. Also, your interview experience mileage may vary.

Getting the interviews

I started the full time job hunt before school started in September. The list of companies I was targetting was short; Microsoft & Amazon.

Seeing as my girlfriend, Natalie, had a full time unaccepted offer from Amazon it was not hard for her to get me into the process there. Unfortunately it took a while to get the ball rolling but I did eventually get my first phone interview. Now keep in mind, that prior to Natalie receiving her offer and getting me into their system and I had worked hard to be interviewed by Amazon. I had submitted my resume online and had friends working there refer me, but it was because of Natalie's inside connections and unaccepted offer that I got the interview. Of course, I am not in Waterloo's co-op system which makes it very hard to get co-op or full time offers from companies who use the co-op system.

I never blogged about it, but I have hinted about it, but I interviewed with Microsoft in the Spring of 2003 for a program manager position. The reason I never blogged about it was because I never got past the phone screen. It was a very depressing experience. Regardless, I had several in's at Microsoft and I got them all to either put my resume into their resume system or to personally refer my resume to the Waterloo recruiter. I also submitted my resume in the bins at the co-op building in response to the full time posting on the just graduated version of Access. But what I really think secured my first interview at Microsoft was that I attended their info session here on campus and waited till everyone had harassed the recruiter and I then moved in. To make my resume stand out I had circled all the relevant bits. (Though she did make fun of me for circling them, but since it was the resume that all my interviewers later had in front of them, I consider the exercise to have been a successful one). I thought it might get the conversation rolling and it did. The conversation lasted about five minutes and felt quite gruelling. She even asked me to give her a 30 second pitch as to why Microsoft should hire me.

Moral of the story: You need a personal in or some sort of human contact. We're convinced those resume@ or online resume things are blackholes.

Preparation

In addition to aggressively pursuing job interviews I also aggressively prepared for the job interviews I hoped I was going to get. I prepared because I know other people prepare and I expected that employers likely expected candidates to be prepared. To prepare I bought Programming Interviews Exposed (PIE) because a new hire at Amazon told me most of her questions were straight from the book. PIE is also the number six book on the Amazon Purchase Circle. Now, why would someone who has a job at Amazon buy a book on interviews unless they were using it as a guide for conducting interviews? Note, the book contains errors. I found at least one, and some of their solutions are not as elegant as they could be. So, do not memorize the answers.

I also bought a copy of How Would You Move Mount Fuji? because I was convinced that the reason I failed at the Microsoft interview game in the spring of 2003 was because I choked on an easy brain teaser. While you do not want to regurgitate answers you've memorized you do want to be familiar with the different classes of problems and the corresponding frameworks for solving them. If you do get a question you know, tell the interviewer.

So, I read both books cover to cover and did all the proposed exercises. I also visited a lot of interviewing websites. One I spent a lot of time at was Techinterview.org where I worked through all 71 brain teasers.

In addition to this preparation I wrote my own 20 page study guide which covered C, C++, Java, computer architecture and object oriented design. It was also helpful that I was taking both CS 454, Distributed Systems and CS 456, Networks.

For the two months leading up to my interviews every spare moment during the day and on the weekends was spent preparing. I read a lot and I did a lot of problems. In fact during one power outage we got out the Mount Fuji book and we all worked through a couple problems by candle light.

Initial interview screens

But you can only prepare so long before you have to show that you have what it takes.

At Amazon I was interviewing for a Software Design Engineer position. While what I really wanted to do was be a Program Manager, Amazon does not recruit technical candidates into that position straight out of college.

On my interview wiki you can read all about my first Amazon phone interview which I felt went really well. My second one did not go so well. I felt I really choked on some of the questions. Of course everyone tells you that the process of how you answer a question is more important than the answer but you can't help but feel dumb for not getting questions that as a Computer Science grad you should get. But after a sufficiently long delay I got the good news that they would be flying me down.

At Microsoft I was interviewing for a Program Manager position. My initial screen was a thirty minute on campus interview. It went really well. He even had a copy of the same resume that I had circled up. This lead him to ask questions about stuff that wasn't circled which was fun.

After finding out Amazon was ready to fly me down I got in contact with Microsoft and got the good news that they too wanted me to fly down to Seattle. I arranged to fly down Thursday, October 30th with Microsoft and Amazon sharing the expense of getting me down there and taking care of my hotel. They put me up at the swanky, and very noir, Hotel W.

In Seattle

Now on the flight down I made the mistake of sleeping. Once I got to Seattle I could not sleep. So I spent the night tossing, turning, and continually calling the front desk to get my wake up call changed. Moral of the story: don't sleep on the flight down.

I got up around 6am even though my interview was at 10:30. I had breakfast and spent the morning chilling on the sofa listening to my iPod trying to relax. I eventually got in a cab and made the trip up to the Pac Med building. I was early so I spent ten minutes outside enjoying the sun and listening to music.

Interviewing at Amazon

My interview process at Amazon was six and a half hours. I was met by HR and she took me to the meeting room where I'd spend my day. At Amazon the interviewers come to you. She also gave me a schedule of my interviewers. Here were my questions:

This is by no means an extensive list of the questions I was asked.. It is just the ones I could remember.

  • 10:30 - 11:00 - Technical Recruiter
    • Usual HR questions
  • 11:00 - 12:00 - Web Developer
    • Discuss the UI problems of a previous project, how would you resolve them now?
    • Why is it easy to collaborate on a document in person but hard on the web?
    • How are requests handled in Resin (or a Java servlet container in general)
    • How does dynamic recompilation work in Resin (or any other Java servlet container)
  • 12:00 - 1:00 - Technical Program Manager
    • Lunch
    • How would you improve Amazon?
  • 1:00 - 2:00 - Team Lead
    • How much would you charge to wash all the windows in Seattle?
    • What was your worst group experience?
    • What is one good thing your last manager would say about you?
    • What is one bad thing your last manager would say about you?
    • Talk about tablet PCs and Amazon. What does Amazon need to be aware of?
  • 2:00 - 3:000 - Team Lead
    • Reverse a linked list
    • Write a function that returns a node in a tree given two parameters: pointer to the root node and the inorder traversal number of the node we want to return. The only information stored in the tree is the number of children for each node.
  • 3:00 - 4:00 - Software Development Engineer
    • Calculate an infix expression. This question later evolved into calculate a postfix expression
    • What objects are required in a restaurant reservation system
  • 4:00 - 4:50 - Senior Developer (Bar Raiser)
    • Given a distributed system with many clients and many servers where the servers each export a different set of services and each have a different amount of computing power discuss the data structures used in a router to perform load balancing.
    • Write a function that given a list of items and weights return a random item in the list taking the weights into account.
    • Now write a O(log(n)) function

Many of them, while not straight from PIE, were similar and I was thankful I had prepared for linked lists and trees. I was however, thrown by a question on evaluating infix and postfix expressions. Of course after the interview I remembered that I had seen postfix in first year and then remembered how to solve them. What triggered this memory was a second year was in one of the labs loudily talking to her friends about trying to find an algorithm to solve postfix questions. I told her I had only had thirty minutes to answer the question and so she had better remember the answer once she Google'd for it because it might come back to haunt her in a full time job interview like it did with me.

Something that makes Amazon's interviews unique is that they have you interview with a 'bar raiser' whose job it is to ensure that you are better than the average Amazon employee so that the talent bar is continually being raised. It was clear from my schedule who my bar raiser was though I felt I had a bad experience with my bar raiser. I just didn't feel like we had much of a rapport.

Hanging out in Seattle

I was thoroughly exhausted and wiped out after my Amazon experience so my friend Ming who was interning with Amazon drove me back to my hotel and I crashed. Two hours later I met him for dinner. It was Halloween and we were way under dressed but after dinner we ran into a bunch of other Waterloo kids who gave us Mardi Gras beads. Not much of a costume, but better than nothing. We then drank and partied the night away.

Saturday Ming and I went to see the play 21 Dog Years: Doing Time at Amazon.com. A very fitting play. After the play we went to U-Dubs university plaza to gawk at all the high end big box malls. The highlight was visiting the Apple Store.

Later on, we tracked down a sushi dinner, and then another Waterloo intern, Francis, and we went to the U-District but it just wasn't happening. Oh well.

Sunday I spent the day trying to do a programming assignment for Networks. Unfortunately I chose the wrong language, didn't have the text, and I had no idea what was going on.. It did not go well. But I ended up taking a late, getting it mostly done, and got 70% so it turned out okay.

Again, I couldn't sleep Sunday before my big day at Microsoft. At 6:30 I woke up, showered, ironned, ate, and at 7:15 got in a town car headed to Redmond.

Interviewing at Microsoft

I arrived early to the Microsoft interviewing building, filled out my forms, and sat and watched all the other nervous candidates trickle in for their 8:30 appointments. A number of other students were called up before me, but then it was my chance. The day started with HR.

This is by no means a comprehensive list but it highlights some of the bigger questions. I got a lot of repeats of the usual questions like:

  • Where do you want to be in 2-5+ years?
  • Why Microsoft?
  • Why PM?
  • Talk about past experiences, what would you do differently?

The day started at 8:30.

  • HR
    • Introduction to how the day will work
    • General HR type questions
  • PM - Windows Media Player
    • How would we design Windows Media Player to run on a TV
    • Talk about putting a 1.5 mile runway on a 1 mile by 1 mile plot of land
    • What are the differences between C and C++
    • Explain Object Oriented programming to your grandmother
    • You have 6 months to do a 9 month project. What do you do?
  • PM - Windows Media Player
    • Why don't you use Windows Media Player?
    • What are 4 improvements you would make to Windows Media Player 9?
      • Prioritize them
      • You do not have enough time to do them all, now what?
    • I now cut all those improvements and ask you to do something you do not want to do, how do you react?
    • Talk about Windows Media Guide, how do we make it more relevant?
    • Talked about a lesson learned from a past experience, how do you apply that lesson today?
  • PM (lunch) - eHome
    • Design a 1m x 1m bathroom
    • Teach me how to sail
    • What was your most difficult project?
    • How have you demonstrated leadership at a previous company?
  • PM - eHome
    • Demo'd the technology of one of the teams I was interviewing with
    • Talked about a problem with a Microsoft product and brainstormed ways of resolving it
    • We talked about the future of the technology and some of the problems they currently have
  • Head PM - Windows Media Player

    • What haven't you been asked?
    • Asked a brainteaser about tribes and people being marked and having to jump to their deaths. It's a logic puzzle. I might have only been asked this because I answered that I had not been asked any brain teasers for the above question.
    • How do you motivate developers?
    • Urged me to ask *any* questions about Microsoft (salary,...)
  • 'As appropriate' - Executive for Outlook
    • We are a car company and want to make our key fobs our competitive advantage / the reason why people buy our cars. Talk about a framework for evaluating ideas and then generate some.
    • Where do you want to be in five years?
    • If you were an absentee landlord how would you take care of your house?
    • How do you handle renting to friends?
    • What advances are we going to see ten years from now? What are the impacts?
    • Talked a lot about my goals and future. Lots of drilling deep down into them.
  • HR
    • Recap of how the day went
    • What would lead me to choose Amazon over Microsoft? Microsoft over Amazon?
    • Talked about what happens next
  • Dinner w/Microsoft employee of my choice (Robert Scoble)
    • Dinner person was not in on the 'interview loop'

What makes the Microsoft interview process unique is that as the candidate you do not know your interview schedule beforehand and that at each step of the way the interviewers are communicating with each other. This means that if you have a few bad interviews in a row your day could end very early. Conversely, if your interviews go well then at the end of the day you will get an 'as appropriate' interview which is typically with a general manager or executive. So at the end of each interview the interviewer will send you back to the building's lobby for ten to twenty minutes while they go talk to the next interviewer. Each interview was in the office of the person interviewing me except for the lunch interview. All my interviews were in the same building except for my last. I knew it was the as appropriate because my interviewer told me my day was done and then double checked this but exclaimed that I had another interview. He wrote down the details and I went back to the lobby and got on a bus. At the new building the front desk people called up to tell them I was there and it was clear that they were talking to an executive assistant. But it went well and I really enjoyed the opportunity to be grilled by the general manager of Outlook.

I think that Microsoft's Program Manager interviews are difficult to prepare for so I think what you should do to prepare is know what to expect, that way there are at least fewer surprises.

What also made this interview experience unique is that before I got to Seattle they asked if there was anyone I wanted to have dinner with. Wanting to take advantage of this I chose Robert Scoble as my dinner date. I met him at Anthony's in Kirkland and had a nice dinner with him and his wife. In hindsight, I was a little too tired to do dinner but whatever.

I got back to my hotel around 9:00pm, met Ming, had a drink, and then packed while watching a bad movie.

Final word of advice.. During my last HR interview I was asked why I would choose Amazon over Microsoft and I was quite honest. Later on Microsoft went out of their way to ensure that the reasons I listed would no longer be valid. So be honest and tell them what you want.

What are they looking for?

I'll disclaim that I do not know what they are looking for. This is just what I think they are looking for.

  • Programming questions
    • Asks clarifying questions
    • Doesn't start coding immediately
    • Rejects bad input
    • Checks boundary cases
    • Efficiency
    • Cleverness
  • Design questions
    • Asks: Who, what, why, where, when, how
    • Thinks outside the box
    • Tests the design
    • Sells the design
  • Brain teasers
    • Doesn't back down
    • Explores all avenues
    • Challenges assumptions
  • In general
    • The best. These companies interview a lot of really good people. You need to stand out as the best. If your work or school experience doesn't make you stand out then pursue something in your spare time that will.
    • Persuasive. If you can't sell yourself and your ideas how will you then sell the companies products?
    • Well spoken.
    • Confident.
    • Relaxed.
    • Can work on a whiteboard in front of an audience.
    • Verbalizes thought processes while working through problems.
    • Can I put this candidate in front of a customer? A partner? an executive?

Differences between Microsoft and Amazon

  • At Amazon you get a fixed interview schedule. At Microsoft you don't which means they can cut you at any time.
  • At Amazon interviewers do not talk about you until after your interview day, while at Microsoft they communicate either in person or via email after each of your interviews. One of my friends describes it like this:
    At Amazon, interviewer feedback is getting inputted into an application and will be discussed by the interviewers individually and is not read by the others until a later date (at least that's what they told me) BUT Microsoft, each person scheduled for your loop (they have a schedule while you don't..) is emailed feedback as the day progresses (thus the 10-15 minute breaks between interviews) and are liable to discuss previous interview[er]s and with you. From what I understand, this is especially used if they think they find a weakness -- subsequent interviews will drill down to confirm/deny it's existence. It also makes you think that there really is no "fist impression" other than you very first interview of the day...
    So the Microsoft interview is similar to the adaptive testing used in GMAT/GRE tests. Meaning, first impressions are crucial.
  • At Amazon you stay put in one meeting room all day. At Microsoft you interview in each interviewer's offices.
  • At Amazon you don't get a break between interviews. At Microsoft I got 10-20 minute breaks between some.
  • At Microsoft you'll interview with two specific groups. At Amazon it's less clear.
  • Microsoft is known to ask brain teasers

Similarities

  • Both companies do a great job of making the process of interviewing painless. When I went to check out of the Hotel W I was all ready for them to charge hundreds of dollars (food there was not cheap) of room charges to my card but 'Microsoft has taken care of all that sir'.
  • Both companies want you to succeed. I used to have the impression that the Microsoft interview was all about tearing apart the interviewee but HR at both companies made it clear that they want the interview process to highlight the interviewee's strengths not magnify their weaknesses.
  • Both companies are looking for similar things.
  • Both companies will test you.

Conclusion

Interviewing is time consuming, tiring, and a lot of work. But the reward for doing well is a full time job. Treat the whole process as a game and have a good time.

And don't give up. It took me a long time to get an interview with Amazon and I have failed at the Microsoft interview process before so keep at it.

...I accepted the offer from Microsoft. I start February 2004 working as a 'program manager' in their Media Center division. Yay!

What else?

  • Be well prepared, study hard. Buy books. Talk to friends.
  • Aggressively pursue interview opportunities. They rarely come to you.
  • Make sure you can perform well with little to no sleep.
  • Know what they want. Then show you have that.
  • Enjoy the game.
  • Contact HR if you haven't heard from them (see JC Oct 6).
  • Be enthusiastic.
  • No two interview experiences are alike. Prepare for anything and everything.
  • Research shows that the interviewer makes up their mind in the first thirty seconds that they meet you.
  • Don't have a cover letter.
  • Be honest with yourself and your interviewers.

You can find more interview stuff on my interviewing wiki.

DO NOT EMAIL ME ASKING FOR ANSWERS, REFERRALS, ADVICE,... unless I personally know you :).

© Copyright 2005 Matt Goyer.

My Found Links view RSS
 The Star.

My Media Center Blog view RSS
 Work on Windows Media Center
 Can anyone help out Mike?
 Gyration sucks
 Ben has some complaints about MCE
 How to put MCE/DVR-MS content on your PSP
 New Expert Zone article on burning and archiving
 Why I don't have Comcast
 Cool looking small MCE
 MCE needs a better name
 I cancelled our cable subscription today

April 2005
Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Mar   May

On this day in
2001 2002 2003

mail *at* mattgoyer.com

And who are you?

Disclaimer: The posts on this weblog are provided "AS IS" with no warranties, and confer no rights. The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Canadian Flag eh!

Click here to visit the Radio UserLand website.

Click to see the XML version of this web page.



Search blog.mattgoyer.com
Search www.mattgoyer.com

University of Waterloo alumni
Updated: 4/11/2005; 11:12:30 PM.