The final part of the post will be exactly what happened during the interviews , what kind of questions I was asked, and my overall tips for the interviews. I ended up getting offered a job in two groups that I interviewed with both in Microsoft Office, and have decided to take one. So I guess I did something right during the interview, and was able to answer the questions properly.
The next part of this post, describes what happened to me during my interviews at Microsoft. Each persons interview are going to be different however the general concept behind the questions will be the same across the different product groups within Microsoft. I started my day out at building 19 which is the general starting place for all the interviewees. The building was awesome, it looked great and there were plenty of things to do. They had Rock Band set up in the main room which was a lot of fun to play with the other interviewees. At this point I had been stressing out for the last month and a half about this on-site interview that I had kinda just out-stressed myself, meaning that I really wasn't stressed out anymore and just couldn't wait to meet everyone. I really just wanted to learn from the experience regardless of the outcome. I couldn't wait to talk to all the brilliant people I would meet throughout the day and try to take as much in as possible to help me prepare and get better as a programmer myself. Everyone meets up with their recruiter in the morning, my recruiters name was Jared, and their job is to kinda let you know what to expect for the rest of the day. He/She will tell you what groups you were interviewing for as well as your general schedule for the day. I was interviewing for two groups both with in Microsoft Office, and I was told what building I would be going to for my first interview.
When you go to each building for your interview you will be required to check in at the front desk, where the receptionist will call down the person you are interviewing with, to come get you from the lobby. The first person I interviewed with was a really nice lady with the first group I interviewed with in Microsoft office. The beginning of the interview just went over my personal experiences at school and at work. Then we started the white board exercise, which is by far the one part I was really dreading. The programming question was to reverse the letters of every word in a string, so "This is a cat." would become "sihT si a tac." I programmed it in C++, I didn't find it to hard to get done relatively fast. We then went over a few ways to test the function I wrote. After this interview I was instructed to go wait in the kitchen area on the same floor as my interview and wait for the test lead of the group to come get me for the interview.
In this interview we started pretty much in the same fashion, with just general "HR" questions, like why do you want to be a SDET and past experiences. There were no programming questions in this interview, instead it was straight testing questions. The interviewer drew a fruit peeler on the board and asked me how I would test it as well as how I would go about trying to break it. This is where I really was able to demonstrate the things I learned from my research in testing techniques. It is really important to organize your testing, so that you can really cover as many different cases as possible, while still remembering what you have and have not tested. I was then asked to test the border formating tool in excel on the computer, this was another way to test the same basic principles as the peeler question.
After this I went and waited in the main lobby of the building again until my next interviewer came and got me, this time the interview would be my lunch interview. The Microsoft Office building has its own cafeteria which is where the beginning of the interview took place. The interviewer's name was Greg, and he was a very nice guy and really enjoyed our conversation during the interview. We went over the normal "HR" questions, (notice the pattern yet?), the white board question in this interview was much harder for me then the previous. I was asked to find a string pattern in a given string, which isn't really that difficult, but he threw in the '*' character which meant any number of any character that can be used in the string pattern to be located, the function returns the integer where the pattern was found. This function took me awhile to get into but once I was making progress it didn't take to long to finish.
My final interview was with a guy named Joe, who will actually be the guy in charge of my group this summer. He actually wasn't even supposed to interview me today, but the actual person I was supposed to interview with wasn't there that day. We had a great time talking about our past experiences, and it was really interesting to hear everything he has gone through while at Microsoft. He has been there for over 10 years, and with Office the whole time so it was very interesting to hear the different products and problems he has ran into. There were no programming questions in this interview, but were a couple testing questions. The first testing question I had was what I would do if I walked into my office and the lights weren't working. How would I test what was wrong with them. The next testing question was dealing with the search box in a website and how I would test it out to make sure it works properly.
After I was done with the interviews I was taken back to Building 19, to meet up with my recruiter again and go over how the day went. I thought that I had done pretty good all day, and really like all the people I met throughout the day in each group. I was really excited to hear back from Microsoft in the next week or so with their response. When I returned to building 19, I checked in with the front desk again where I received the vouchers for the rest of the taxi cab rides I would need while in Seattle. I then waited for my recruiter to come down again and discuss how the day went as a whole. I was really excited to just go over everything that I learned through the day as well as express how much fun I had during the day. One thing about the Microsoft on-site interview, is that the the interviewers talk the whole time during your interviews and really go over everything they had gone over with you and had asked you. One thing reason this is done is to test if you have learned throughout the day and can express this new knowledge. This is a great test of potential of your learning capabilities. I really stressed throughout my interviews to learn something new from each interviewer. I think this is a really good strategy because it not only shows that you want to learn and can learn, but you really do learn a lot from these brilliant people, and you might as well take in as much as you can. After you learn something new really try to show this new knowledge in the next interview so it shows your potential, as well as kind of impress the interviewer.
When my recruiter and I sat down in building 19 we went over the different interviews I had and asked how everything went. I really had a great day so expressed this and really talked about all the different things I learned from each person. He then said that it doesn't happen very often where they can pretty much guarantee an offer on the same days of the interviews, but he pretty much said that everyone really enjoyed the day with me and multiple groups wanted me as an intern for the summer. I was so excited and couldn't really believe that I had pretty much gotten the job on the same day as the interviews.
I ended up having to decide between two groups this last week, and finally decided to go with Joe's team, I just really like the products a lot more, and seemed to click with him and the atmosphere more. It was a fantastic day and a great experience, if anyone who is going for an interview with Microsoft ends up reading this I hope my suggestions help, I know that all the sources and tips I have said here are the same ones I used and it apparently worked for me.
Tuesday, April 29, 2008
Microsot Interview Part III
Interviewing at Microsoft Part II
So I knew that I had an interview coming in Redmond but was not sure exactly when the interview would happen. I found out the interview was on April, 19th and was ready to start studying. It was about a month or so away but I wanted to be really prepared because I had heard from a couple of friends who interviewed last semester that it was really tough, so I was going to get as far ahead as I could. I was being asked to come out and interview for the SDET position, which since I really had no idea about testing I was worried that I was at a severe disadvantage. In this post I will explain what I did to prepare for the interview.
The first thing I suggest when preparing for your interview with Microsoft is to start looking over C++ principles. You really need to understand the basic data structures that can be implemented, like arrays and linked lists. Most of the development across Microsoft is done in C++ so it is necessary to understand the principles thoroughly because you will be asked to code during the interviews. From what I have read and could tell in the interviews it really doesn't matter what you code in during the interview like Java, C, C++, or C#. However, I think that it probably shows that you need less training and time to adapt if you show you know how to use C++. If you know C# I am sure that would also look really good, because Microsoft is kind of transferring to C# as a programming language especially in the SDET position. So this would also show the need of less training and time to acclimate. I personally used a book called "C++ Primer
Plus" by Stephen Prata. The book is really good for both new programmers as well as a reference and reminder for experienced programmers. If you don't feel like spending the money for the book then a simple search online is all it takes to find information on C++, with plenty of tutorials and reference guides.
The next big thing I suggest studying if you are interviewing for a SDET position are testing principles. This is really big especially for college students because most curriculum do not cover this topic, well at least well enough to express the principles and know what you are talking about during the interview. I found most of this information online with a little searching. Here are a few of the sites I used as guides to learning the concepts of testing.
http://kuldeepse.wordpress.com
http://www.techinterviews.com/?p=115
http://www.emicrosoftinterview.com/Technical+Questions/default.aspx
http://msdn2.microsoft.com/en-us/testing/default.aspx
When you are learning these concepts, try to really concentrate on the different groups of testing such as functionality testing, border testing, memory testing, and internationalization testing. It shows a lot of potential during the interviews if you are able to be organized during your tests and are able to group your different types of tests into the different groups of testing.
The next thing I did is search for general Microsoft interview experiences online to gain a base knowledge of the types of programming questions I would be asked. There are hundreds of websites out there specifically geared towards the Microsoft interview process. As well as tons of blogs out there of individuals who have personally gone through the interview process. Below are a few of the websites that I used in order to gain this information.
http://helloani.blogspot.com/2006/03/microsoft-on-site-interview-031506.html
www.emicrosoftinterview.com
http://blogs.msdn.com/jobsblog/
These are just some of the sources I used while I prepared for the interviews. I think that anything that you can do in order to gain an edge for the interviews should be looked into. I mean you are going to be competing with other possible candidates from schools all over the world. Microsoft is looking for extremely talented people and therefore you really need be on top of your game in order to do the best you can.
Sunday, April 27, 2008
Interviewing at Microsoft Part I
This story of mine is really to help other Microsoft prospectives as a resource of a past experience and my suggestions and tips on how to do the best you can. I am a junior at the University of Miami and was interviewed by Microsoft for a SDET position for the Microsoft Office team. I was able to get the job so obviously I must have done something right in the interviews. Again the story below and intertwined suggestions and tips are simply what I did, and which happened to work for me. They by no means guarantees no one a job, but hopefully it will give you something else to think about and study.
So I was able to get an interview with Microsoft for earlier this month. And I hope you realize how nervous I was in the weeks prior to the trip out to Redmond. Looking back at it, it is truly amazing how fast yet seemingly slow the events transpired.
Our school has a large career fair every spring semester on campus. There is a very large technical section, and then a very large business section. I knew that IBM and Microsoft were both going to be here this year, and I felt like I had enough experience to convince them that I would be an asset this summer. Luckily I was able to have a friend of mine who already landed an internship with Microsoft introduce me to one of the guys at the booth, and we were able to talk for about 10 minutes and he explained to me that he would set me up with an on campus interview with a couple weeks. So I said great, and was very excited about the whole situation, but realizing now that I was really not prepared for the whole situation.
So the school recruiter showed up to campus, I think it was the first week of March, and I had my interview set for a Wednesday afternoon. By now I had begun to realize that I was actually going in for my first real technical interview, and to make things worse I found out that I was actually going to be required in front of the interviewer on a PIECE OF PAPER!!! no less, not even my trusted laptop.
Anyway the day of the interview came around, I had been studying a lot for this interview, but I knew that it was going to be difficult. I was so nervous because if I did well, I knew that I would be flown out for the next stage of the interview process, the dreaded trip to Redmond. Well during the interview I got asked the normal personality questions. Like how are you doing today, I was asked about the programming I do for the Biology Department down here, and about my life as a Student. But then the not so nice programming question came; write a function that returns the index of a given string where it is located as a substring in another string.
This really isn't that hard of a program to write even on a piece of paper, the stress really just freaked me out. I got through about 75% of it by myself but it took me a very long time, and I ended up needing help from the interviewer in order to complete the function. I was able to program pretty much this exact same function in my interview at Redmond completely by myself witch is pretty amusing right now... but that is for another post. So the programming didn't go nearly as well as I wanted it to, in fact I was convinced that I had just ended my Microsoft aspirations right then and there, however his next question caught me a little of guard...
How would you test a Soda Machine? Yep that is the question I was asked, not any insane program to write, or even if I knew it was going to be about testing, it wasn't how to test a certain function. It was how the hell would I test a damn Soda Machine... So I answered with the normal functionality tests first, does it except money->when it takes the money can you push a button-> when a button is pushed does a can of soda come out->after the soda comes out does your change get released as well. I gave several functionality tests in this type of manner, but then decided to throw in some outliers. Like what happens when you put a hundred dollar bill in, what happens if it is outside and it has to deal with 120 degree weather, or the opposite. What happens when you random cut power supply to the machine does it shut down gracefully as it is liked to be put. This is as I later found out a very standard interview question asked to Software Developers in Test, or SDETs. It is supposed to test your testing method, as well as gain a little better understanding of how your thought process works. I thought it was absolutely nuts, but you know it did make me think and reason a bit, as well as explore testing methods that can be easily moved to a program.
I was extremely nervous afterwards, I felt really bad about the programming and didn't really know what to think about the testing question. I was overall not very optimistic and thought that it was a good experience but wasn't going to lead anywhere. And then the unexpected happened I found out about a week and a half later that they would like to have me out to Redmond for an on-site interview, which is what I really knew was going to be the biggest obstacle...
Overall I will say this one school interview really opened my eyes to what an interview for my career would be like. It really got me in the mood for my later longer and more intense Microsoft interviews. And I think the best thing that it did for me is show me how much more I needed to study coding rules. Simply knowing how to code isn't enough for some interviewers you have to be prepared to tell and more importantly actually show the different coding procedures. Another tip that I have for this initial interview is be friendly and be yourself, you will have a lot more fun and make a much better impression, as yourself not a bumbling idiot.
