There are a lot of behind the scene efforts put in by Microsoft for an on-site interview, but all you need to do is pick a date and the rest is all taken care of by the company. I wanted a later date so that I could have more time to prepare since this was my first time going through the internship hunting process. I gave myself a month. I asked for an early December interview even though I was invited to the final round in November. However, it was immature because the job market is just like the stock market and time is opportunity. The sooner the interview, the more openings, which means more choices and better success rate. As you will read later, the problem I encountered likely spring from this.

I caught a red-eye on Wednesday December 4th to Sea-Tac after my UPE (a computer science honor society) initiation ceremony. I chose the rental car option, so I picked up a Chrysler country & town from the airport and drove to Redmond. It was a huge minivan and way too chunky for me. I stayed at Marriott Residence Inn, super nice and cozy, loved it. It is also only one freeway exit away from Microsoft; won’t have to worry about caught up in traffic during rush hour. When I finally showered and settled, it was already 2:30 am, not exactly a good start to get ready for my interview at 10:00 am on Thursday. The next morning, I headed off to Microsoft without any breakfast. As you can tell, right now, I have made many mistakes against good interview preparation advice, but not having breakfast was definitely not a big one of them, because Microsoft offered warm breakfast and supplements in the waiting lounge together with a surface/kinect table and XBox.

The surface/kinect table
The surface/kinect table

A lot of candidates and recruiters were socializing in the room when I arrived. I talked to a guy from Northwestern, a guy from Olin College, and a couple of others. They were all third, four, or master students, so I felt real lucky to be there as a second year. Then, a recruiter gathered some of us to go over the agenda and some housekeeping information. Our first interviews were all scheduled for 11:00 am. He suggested we just play around with the cool toys and relax until our own recruiter come find us. One by one, all the other candidates have been called and sent off for their first interviews, still, no sign of my recruiter yet. I walked over to the computer station and pulled out Microsoft on Yahoo!Finance and read through related latest news, headlines, and press releases.

This is the waiting room. I really liked that artsy blackboard.
This is the waiting room. I really liked that artsy blackboard.
Tablet/Computer Station
Tablet/Computer Station

When we finally met, my recruiter turned out to be a nice Hispanic lady. She provided me with what I needed and called me a recruit shuttle to Building 35, my actual interview location. She encouraged me to talk to the Microsoft concierge and explore Seattle a little after I was done. The Microsoft taxi drivers were really friendly. They tried to have conversations with me and make me feel comfortable. They were also great sources for me to learn more about the company.

I should mention that two days before the interview, I got an email with a list of pre-interview questions, such as items you want to be asked about during your interview day, three most important factors in choosing a company, your hobbies, and why Microsoft. My first interviewer was a PM. He’d been part of the company for three years and he was an intern before. One fun fact about all my interviewers was that they all come from different parts of the world. Only one of them was American and he grew up in southern California; I think that was also my favorite interview of that day. I would say the first interview was for the most part behavioral. Since I am writing this three weeks after it happened, here is a rough recollection of the questions:

Past:

  • Tell me a little about your projects.

I gave both high level overview of what the programs did and significant details of the implementations for two projects. He had a lot of follow-ups like what was the most challenging part, what did I learn, how I dealt with the challenges, what I would have done differently or how I could improve the programs.

  • Leadership and team experiences that were special to you
  • Things you have learned inside or outside class

Forward looking:

  • Academic plan (short-term)
  • Plans for the next 3-5 years (long-term)
  • What do you hope to get out of an internship (not necessarily Microsoft)

How you think:

  • How would you test a website to make sure it will be up and running all the time
  • What sets a good developer apart?

Then I had lunch with another PM, who had been at the company for around 15 years. This was a great opportunity to learn—ask any questions and seek advice. Some of the highlights were he basically gave me a database 101 lecture, and we talked about grad school vs. work, latest trends of the industry, and some more about Microsoft. The cafeteria was also really nice. After lunch, we went back to him office for some questions. The problem he gave me was a design question. He was a horse jumping fan and judge. In a race, the judge would record performance of each horse on a stagger sheet as it passes the finishing gate and rank the results as the race proceeds. He allowed me to interview him first about how to understand the results chart and how the game is structure and then I had to come up with an interface design of the computerized process. I won’t bore you with the gory details, but the key was to see if I could realize that the horse whose jumping is being recorded is independent from the already recorded data. Luckily, by intuition, I answered exactly what he was hoping for. He actually wrote the software and had been using it for a few years, so he showed me the finished product and it was very cool to see that. At the end, he explicitly told me that I did really well answering the question and it made me feel more confident to handle the rest of my day.

The third interviewer just got back from a trip to San Francisco and he accepted the interview invitation two hours earlier. When we first started talking, he asked me if I was on any specific track and what my plan was about going to grad school. We also talked about my work right now on web content design. Along the same line with the web stuff, he asked me to design a restaurant reservation system. I was confused about what he was trying to get at and how much detail I should go into, so I talked as much as I could about all the details. Because I hadn’t learn databases yet, he then asked me how I would record reservation entries to an old-fashioned paper journal. I started to get a little nervous. As I was talking, I was trying to think what I would say next because I hadn’t come up with a good solution yet.

First, I told him my general approach and he said “OK” in a tone that I wasn’t sure if he agreed or not. Once I started going through examples, I decided to change my original algorithm and he responded, “I was hoping you would say that.”

However, his voice didn’t tell me if he liked this approach any better, but I felt it was better and I didn’t think of anything else, so I follow through with it. Then, I was asked to do object-oriented programming on an interview for the first time. I was pretty good at when I was doing a lot of projects involving classes about a year ago, but I haven’t actually coded any objected-oriented stuff for a while now. Even though I did review that a little bit before hand, I wasn’t sharp on all the details. The question he gave me was about displaying shapes on a screen. I sweated over the abstract base class, but I believe I got the main points right.

After talking to some older students and looking back now, the fourth interview was probably the most crucial. I would guess he was the hiring manager for my position. Someone told me that getting to the fourth interview itself is already a good sign. My interviewer started off with the type of self-reflecting questions that I am not particularly a big fan of. “Which interview do you think you did the best?” “Which one do you feel least confident about?” We chatted a little about what I was looking for from an internship and why I am interested in computer science. Next, he threw at me a coding problem. It was somewhat similar to the merge algorithm of merge sort, except it was merging one sorted array into another sorted array with the exact space available. I knew what algorithm I would use right away, so I explained my approach to him while I was hammering out the details in my head. I started coding on a white board as he approved my algorithm. After I finished coding, I ran the example he gave me in the beginning through my code and I caught some boundary mistake. I tried to be talking as much as I could while I was writing. While I was checking with the example, I wrote out and updated the variables on the white board.

Once I was done, I looked at him and said, “I the code outputted correctly with the example as the input, but I haven’t checked other cases. Would you like me to do that?”

He sat me down and asked me what I knew about the role I was interviewing for without commenting anything on my code. I wasn’t sure what the immediate shift in topics indicated, but I followed his lead. He provided me a more realistic idea of what the job entailed and clarified some of my misunderstandings about the role. I asked him some technical and factual questions along the way and I learned a lot through our conversation. He couldn’t disclose some of the information due to business confidentiality, but he gave me very informative simplified answers.

That was the end of my interviews. Then, I went back to the recruitment building and waited for my recruiter. I talked to some guys in the room who just finished their interviews too and one of them was actually interviewing for the business program. He told me that Microsoft organized a dinner for all the business candidates at a sushi place and I was welcome to join them. I kind of wished there was something like that for us and I thought it would be a great opportunity to meet more people. However, I decided to spend the night on my own in the end.

I went sight-seeing in Seattle for the next two days and it was a ton of fun. More on that will come later.

Questions I asked my interviewers:

  • What do you do? What is your current project?
  • How is being a full time employee different from being an intern?
  • What is the typical workflow of a project?
  • How would you compare Microsoft to other companies you have worked at?
  • What will I likely be doing?
  • How do you apply patches while the site has to be up and running 24/7?

Obviously the company was trying to sell itself to me and they did such a damn good job that it felt genuine and personable. From the interview scheduler, the on-site recruiter, the taxi drivers, to the interviewers, everyone made me feel they were sincerely trying to know me and wished to help me get what I want.

More Pictures:

The Company Store. There is a special section with discounted electronics that is only open to employees. As a intern candidate, you are allowed to go into this restricted section.
The Company Store. There is a special section with discounted electronics that is only open to employees. As a intern candidate, you are allowed to go into this restricted section.
Passed by this baby on my way to the interview
XBox
XBox

UCLA IT Services Student Part-Time Job Post

UCLA IT Department is looking to take in a few student part-time assistants to help some current projects for the UCLA website. The teams hiring include Web Content Strategy and potentially a couple of others that are not specific at this point yet.

The web content strategy team does web design, UCLA branding, and content strategy for UCLA websites. The manager is looking for someone to help with the web content migration and likely other projects that involve content management system.

Qualifications:

  • Web savvy and knowledge or experience with HTML/CSS, Javascript is a plus
  • Strong communication skills and able to collaborate with remote developers efficiently
  • Able to learn new tools and software quickly (ex. Plone, JIRA, Confluence, etc.)
  • Work at least 10 hrs/week and ideally around 15 hours

Disclaimer: This is not a coding job per se!

Let me know if you have any more questions. If you are interested, comment below and don’t forget to include your name, talk to me on facebook from computer science group, or find out my email.

To apply, you can look the job post up on bruinview or send me your resume and cover letter (if you have one) and I will forward them to my manager.

The Second Interview with Microsoft

On the Friday of the same week after my first interview, I had my second round. This time was two one-on-one interviews with different engineers each for roughly an hour. My first interviewer took sometime to ask about my projects and I talked about the space shooting game project again. It is still my favorite project to date. Then we dived into problem solving. One of my questions was to find the sum of left children nodes and sum of right children nodes iterating only once.  At first I thought it was only to sum the left children nodes, so I quickly implemented a function using recursion. Then he ask me what about both left and right sums. The key was to figure out a good way to return two values instead of one. Recursion was still a good idea for the calculation, but it only allows one return value. Because of the symmetry in the problem, it didn’t seem to be the best solution to return one value and pass the other as a parameter. Thus, I decided to use a struct, so the sums are member variables of my struct and the function modifies their values as a result.

Before he let me go, I had another opportunity to ask some questions. I asked him difference between the nature of work and pool of duties for engineers at a large corporation like Microsoft and a new or medium-sized company or startup. Someone told me before that in smaller companies, they sometimes don’t have enough people for all kinds of jobs, so employees usually practice a variety of  skills and take on different titles as supposed to large corporations, the job descriptions are more clear and people tend to specialize and get really good at in a certain field. I was glad to find out that engineers at Microsoft are flexible to move around different teams and work on different projects. In the case of my interviewer, he spent a few years in Windows, Office suite, and etc. until joining the remote desktop team. Conveniently, he bounced the similar question back to me and asked what teams  or areas I would be interested in working at Microsoft.

My second interview started slightly late, so the interviewer threw the question at the outset. I understood the problem to be creating a circular linked list at each level of a BST. I struggled somewhat to figure out a solution. The key here was to use BFS. I wrote my answer using a queue. However, since we were running out of time, he didn’t let me fix the bug in my program after I found it. Not surprisingly, I had follow up questions on big O and test cases.

Overall, it was not as easy as the first round and I felt I could have done better. Luckily, I am invited for an on-site interview. From now till then, I shall do more practices and make it count. I am very looking forward to my trip to Washington since I haven’t been there before. Microsoft is very generous in providing transportation, accommodation, and meal reimbursement. Even though it is the rainy season, I am sure I will still have a lot of fun and I am staying two extra days after my interview.