Microsoft interview
From Wikipedia, the free encyclopedia
The Microsoft interview is usually divided into three phases. Microsoft generally seeks undergraduate college students with degrees in computer science, computer engineering, or systems engineering for the three main technical positions of Program Manager (PM), Software Design Engineer (SDE), and Software Design Engineer in Test (SDET). Because Microsoft recruits heavily from college campuses in the United States, the first step in the interviewing process typically begins with college students attending a career fair on campus and submitting a résumé to recruiters. This is frequently held in conjunction with an on-campus information session about the company that gives students the opportunity to ask questions of current employees and to find out more about what Microsoft does. After the résumés have been collected, a select number of students are contacted for a first-round interview usually held on the candidate's college campus or over the telephone with a single recruiter. If candidates successfully complete the first-round interview, the third phase is the second-round interview, which is held in Microsoft's headquarters located in Redmond, Washington.
Contents |
[edit] The positions
There are three general technical positions that Microsoft hires for. They are: Program Manager, Software Design/Development Engineer in Test, and Software Design/Development Engineer. Descriptions of each position can be found on Microsoft's College Careers website, which also includes interviews with current employees:
Microsoft also hires for non-technical positions and those who have an MBA:
[edit] The first-round technical interview
The first-round interview is generally held on the student’s college campus with a single recruiter, or over the telephone, and can last for about thirty minutes. The candidate is initially asked to fill out an application form prior to the interview detailing work-location (Redmond, Silicon Valley, North Carolina, Nebraska) and work-type preferences (Business initiatives, media center/gaming, operating system, etc.). During this interview the recruiter attempts to determine if the candidate will be able to flourish at Microsoft. Some examples of questions that the recruiter will keep in mind or ask a candidate include (First Round 2006):
- What types of projects (academic or otherwise) have inspired you in the past?
- What are some self-directed missions that may have influenced your career direction?
- Did you have a moment of epiphany when you KNEW what you wanted to be when you grew up?
- How does Microsoft fit into your vision?
- What are some things that excite and motivate you?
- What are some examples of poorly/well-designed software? What makes the software this way and how would you change it?
It is expected that the candidate research Microsoft's various businesses and product groups, and come prepared to speak in-depth about his/her résumé in addition to asking thoughtful questions. After the first-round interview, the recruiter will consider Microsoft's current business needs and evaluate whether they are in line with the candidate's qualifications and interests. The candidate can generally expect to receive the results of the first-round interview from the recruiter within about two weeks of the interview date (First Round 2006). If selected for a second-round interview, the candidate is invited to travel to Microsoft's headquarters located in Redmond, Washington, for a second-round interview. The candidate is contacted by a Microsoft recruiting coordinator and a mutually agreed upon date is determined for the second-round interview. Travel and lodging arrangements are then processed and finalized. The maximum length of the candidate's interview trip can be up to three days and two nights, which includes one day to interview and one day to sightsee (Overview 2006).
[edit] The second-round technical interview
The second-round interview is held on Microsoft's main campus in Redmond, Washington. Candidates interviewing for the program manager position can be expected to answer detailed design questions that test the candidate's creative ability as well the attention that he/she pays to designing customer-centric products. The candidate is expected to provide reasons for features added to products designed and include explanations as to why a customer might want or need a particular feature. Candidates interviewing for the SDE and SDET positions can be expected to answer detailed coding and algorithm questions as well. Many of the questions asked of the candidate are purposely ambiguous and/or abstract. It is expected that the candidate ask thought-provoking questions of the interviewer in order to better answer the question. The candidate is normally given a marker, eraser, and a whiteboard to record his/her solutions and ideas to questions. The purpose is to allow the interviewer to observe how the candidate attempts to solve a problem and to follow the candidate's thought processes.
The interview day usually comprises meeting with about three to five different employees within Microsoft. A typical schedule might include two interviews in the morning, one lunch interview, and two interviews in the afternoon. The lunch interview can take place in one of Microsoft's various in-house cafeterias or in a restaurant off-campus. In most cases the candidate will interview with two different product teams within a single product group or two entirely different product groups (FAQ 2006). It depends on the current business needs of Microsoft at the time of the interview and which needs best fit the candidate's skill set and interests. The candidate is notified on the day of the interview as to which position he/she will be interviewing for. This is generally the case if the candidate is interviewing for Software Design Engineer, Software Design Engineer in Test, or Program Manager Positions.
[edit] Interview questions
The questions asked during the Microsoft Interview are crafted to determine how a candidate solves a problem. They are designed to evaluate a candidate's coding and design abilities. When answering design questions it is important for the candidate to be able to think about how the technology might be used both now and in the future. User scenarios are extremely important to consider. Some questions involve relating design questions with technical discussions of projects that the candidate has worked on in the past. The Microsoft Interview is intended to seek out creative thinkers and those who can adapt their solutions to rapidly changing and dynamic scenarios. Below is a small sample of questions that a candidate might be asked to answer during the second-round interview:
- Design a music system for a car. What are the features? Draw a picture
- Design a communication device for Canadian park rangers
- Design a remote control for an automatic window-blind system
- Design a coffee maker that will be used by astronauts
- What are examples of poorly designed software?
- Design an instant messaging system
- I am your grandmother. Describe what Matlab is to me
- Write code for an electronic messaging board. What happens when a user logs on?
- Develop an algorithm for selecting objects in Visio
- Tell me about a time when you made a decision and later found out that it was incorrect. What did you do to resolve the issue?
- Suppose you are one week away from the product shipping date and discover a bug in your software. What do you do?
- Write code for finding a duplicate in an array
- Write code that returns the length of a string without using any built-in functions
- Reverse a Singly Linked List with and without using Recursion
- Find if a BST is well formed
- Reverse every word in a String
(abc def becomes cba fed)
- What method would you use to look up a word in a dictionary?
- Write a function that returns the angle between the hour and the minute hands of a clock given input of the time?
[edit] The post-interview
After the second-round interview the candidate is asked to submit a reimbursement form for any expenses incurred during the trip to Redmond (i.e. taxi travel and meals). The candidate then generally receives an e-mail detailing the outcome of the second-round interview. If selected, an offer is made and the candidate is given a date to decide on whether to accept based on any other pending offers.
[edit] Interview resources
To prepare for the Microsoft Interview, Microsoft provides a list of suggested reading. Below is a sample of some of the materials (Reading 2006):
- Writing Solid Code, Steve Maguire
- Code Complete, Steve McConnell
- Testing Computer Software, Cem Kaner
- All I Ever Needed to Know in Business I Learned at Microsoft, Julie Bick
- Business at the Speed of Thought, Bill Gates
- The Road Ahead, Bill Gates
- Programming Pearls: Second Edition, Jon Bentley. Addison-Wesley, Inc., 2000.
- Design Patterns: Elements of Reusable Object-Oriented Software, Gang of Four. Addison-Wesley, 1994.
- The Practice of Programming, Brian Kernighan & Rob Pike, eds. . Addison-Wesley, 1999.
- Algorithms in C, Robert Sedgewick, eds. . Addison-Wesley, 1990.
- Essential .NET Vol 1 The Common Language Runtime, Don Box Addison-Wesley, 2003.
- Lessons Learned in Software Testing, Cem Kaner, James Bach, Bret Pettichord Wiley Computer Publishing 2002
- Mythical Man-Month Anniversary Edition, Frederick P. Brooks, Jr. Addison-Wesley, 1995
- Introduction to Algorithms Second Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein MIT Press, 2001
[edit] References
- (First Round 2006) Microsoft College Careers. The Interview - First Round. Retrieved from the World Wide Web on January 16, 2006. http://www.microsoft.com/college/int_first.mspx
- (NPR 2003) NPR: Job Interviews Get Creative. Retrieved from the World Wide Web on January 16, 2006. http://www.npr.org/templates/story/story.php?storyId=1405340
- (Second Round 2006) Microsoft College Careers. The Interview - Second Round. Retrieved from the World Wide Web on January 16, 2006. http://www.microsoft.com/college/int_second.mspx