On Friday I had my all-day final round interview at Microsoft for their Program Manager Intern position. It was a long day and I had a lot of fun answering the problems and meeting the Program Managers I met with so I thought I would document my experiences. Adding to the excitement of the day, I received an offer following my interviews! Surely a great end to a long week.
The Start
My day started in the recruiting building (111) at 9:00 but I didn’t see my recruiter until around 9:45. This gave me enough time to fill a water bottle, check out their modern furniture and play some Kinect. The recruit candidates all wait in this lobby until a recruiter calls each recruit’s name. We went into a small conference room for around 10 minutes where we talked about the general interview process. It was then that I learned I was interviewing for the Office group, which means I would be on an “Office Loop”. At Microsoft, recruits interview with employees who have worked at Microsoft for a while (my four interviewers had been at Microsoft a minimum of seven years). The interviewers always work together on the same interview team, such that the same set of employees interview candidates together. This gives them a general sense of what the other interviewers have asked or will ask so there is not much overalp in the questions they ask. Each interviewer had one or two interview questions for me, after which I was asked if I had any questions. The biggest question I had in terms of my curiosity was since Microsoft Office has a seeming monopoly on productivity software, how do they continue to push themselves to be better, and what are the overarching goals and aims of the Office suite for the long term? I learned they are pushing Office to be more collaborative and to increase the communication capabilities (logical), and their strongest competitor is previous versions of Office because many organnizations do not immediately upgrade to the newest versions as they are released (I had not thought about this before- interesting).
Getting Around
The most impressive system at Microsoft that I saw was the transportation on campus. Microsoft has a fleet of Prius hybrids with drivers who have memorized the location of every building- and that’s a lot. When I needed to move between buildings, I would tell the receptionist where I needed to go and within three minutes a driver would come get me. It is my understanding that I had priority access to the cars because I was a recruit, but I believe all employees can use the service.
Interview Questions
I had a lot of fun answering the interview questions that were presented to me. They were certainly unique to the Program Manager position. I was expecting (as per Microsoft’s website) to be asked to code solutions to some questions but this was not the case for me. I had one data structure/algorithm question where my interviewer asked me to simply talk about my solution. Generally, I would pre presented with a skeleton of a problem and I was required to ask more questions to flesh out the details and gain more understanding of the problem I was asked to solve. The following are the questions I was asked in the order they were asked:
Convict’s Ransom Note
A convict needs to write ransom notes using letters out of newspaper clippings. He wants to know if a given magazine contains the letters he needs to write a certain note. Given the inputs of the note and magazine in text form, what is the best way to return whether or not the magazine contains the necessary letters and what is the algorithm’s runtime?
Variation A: The convict wants to use words out of the magazine instead of letters to write the note.
Variation B: The convict is okay using homophones in the note. You are allowed to design the API of the object that knows the homophones of words in the dictionary.
Design a Movie Theater Kiosk
Then I was asked to design the UI one of those electronic kiosks at movie theaters that allow you to purchase movie tickets without interacting with the human at the ticket window.
Remote Control for Children
After lunch in one of the Microsoft cafeterias, my next design question was to design a remote control that would allow a 3-8 year olds to watch their favorite TV channels with no help from a parent.
Talk About a Technology System
My next question was the most open ended of them all. My interviewer asked me to begin talking about any technology I wanted, and then we have a conversation about the technology behind it. She told me I could talk about a well known system such as how a search engine works, or I could tell her about the details of a project I have worked on in the past.
Learning Game for Kids
To end my third interview, I was asked to design a game that would be a smashing hit to 5 year olds with the goal of teaching them how to order a set of four double digit numbers. Thus far, this was the most difficult question for me because I do not play computer or video games. This forced me to really be creative, as I could not borrow many elements from other games as I imagine other candidates would be able to do. I started with some simple counting lessons to improve game players’s “number sense” and allow them to be able to compare two numbers and determine with is larger. Then I moved into a sorting algorithm in which I designed the game to teach kids bubble sort.
Japanese Characters
This question started my fourth and final interview. In Japan, there are two character sets- Kanji and Hiragana. Hiragana characters represent sounds and there are 46 characters in the alphabet, so they are represented by one byte. Kanji characters, on the other hand, represent an entire word and are intermingled with the Hiragana characters in documents. There are many Kanjis, such that they require 2 bytes to represent each character. To distinguish between these characters electronically, the most significant bit of a Hiragana character is a 0 and the most significant bit of the first byte of a Kanji character is a 1 (the second byte can start with either a 1 or 0). The challenge with this scheme is that it is not trivial to distinguish the bytes when not starting at the beginning of the document. The question presented to me was how do you optimally delete the last character of a document. I needed some help with this problem, as my brain was tired by this time and I did not immediately recognize the pattern.
Describe an Interesting Project
To wrap up my final interview, my interviewer asked me to describe an interesting project I have worked on. After I described the project, he asked me if I utilized any frameworks and I explained that no framework I was aware of was appropriate to what I was doing.
Wrapping Up
After my fourth interview was complete, I caught a Prius back to the recruiting building where I played some more Kinect and then met my recruiter. He told me that a hiring manager wanted to have a quick phone call with me. After finding a conference room with a phone, we got the manager on the line and he informed me that he was from the Office.com group and that I was being offered the position! By this time I was exhausted and certainly relieved and ecstatic that the day had been a success. Finally, my recruiter gave me a sweet t-shirt and I headed home. The end.