Microsoft interview
Encyclopedia
The Microsoft interview is a job interview
Job interview
A job interview is a process in which a potential employee is evaluated by an employer for prospective employment in their company, organization, or firm. During this process, the employer hopes to determine whether or not the applicant is suitable for the job.-Role:A job interview typically...

 technique used by Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 to assess possible future Microsoft employees. It is significant because Microsoft's model was pioneering, and later picked up and developed by other companies including Amazon
Amazon.com
Amazon.com, Inc. is a multinational electronic commerce company headquartered in Seattle, Washington, United States. It is the world's largest online retailer. Amazon has separate websites for the following countries: United States, Canada, United Kingdom, Germany, France, Italy, Spain, Japan, and...

, Facebook
Facebook
Facebook is a social networking service and website launched in February 2004, operated and privately owned by Facebook, Inc. , Facebook has more than 800 million active users. Users must register before using the site, after which they may create a personal profile, add other users as...

, and Google
Google
Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program...

 .

Innovation

The Microsoft Interview was a pioneer in that it was about technical knowledge, problem solving and creativity as opposed to the goal and weaknesses interviews most companies used at the time. Initially based on Bill Gates' obsession with puzzles, many of the puzzles presented during interviews started off being Fermi problem
Fermi problem
In science, particularly in physics or engineering education, a Fermi problem, Fermi question, or Fermi estimate is an estimation problem designed to teach dimensional analysis, approximation, and the importance of clearly identifying one's assumptions...

s, or sometimes logic problems, and have eventually transitioned over the years into questions relevant to programming: [P]uzzles test competitive edge as well as intelligence. Like business or football, a logic puzzle divides the world into winners and losers. You either get the answer, or you don't... Winning has to matter. Joel Spolsky
Joel Spolsky
Avram Joel Spolsky is a software engineer and writer. He is the author of Joel on Software, a blog on software development. He was a Program Manager on the Microsoft Excel team between 1991 and 1994. He later founded Fog Creek Software in 2000 and launched the Joel on Software blog...

 phrased the problem as identifying people who are smart and get things done while separating them from people who are smart but don't get things done and people who get things done but are not smart

This model is now used widely in the IT Industry.

The positions

Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 hires both undergraduate college students (“college hires”) and the more experienced (“industry hires”). For college hires, there's a focus on those with degrees in computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

, computer engineering
Computer engineering
Computer engineering, also called computer systems engineering, is a discipline that integrates several fields of electrical engineering and computer science required to develop computer systems. Computer engineers usually have training in electronic engineering, software design, and...

, electrical engineering
Electrical engineering
Electrical engineering is a field of engineering that generally deals with the study and application of electricity, electronics and electromagnetism. The field first became an identifiable occupation in the late nineteenth century after commercialization of the electric telegraph and electrical...

 or systems engineering
Systems engineering
Systems engineering is an interdisciplinary field of engineering that focuses on how complex engineering projects should be designed and managed over the life cycle of the project. Issues such as logistics, the coordination of different teams, and automatic control of machinery become more...

 for the three main technical positions of software development engineer (SDE), Software Design Engineer in Test (SDET) and Program Manager
Program management
Program management or programme management is the process of managing several related projects, often with the intention of improving an organization's performance...

 (PM).

Microsoft also hires for non-technical positions and those who have an MBA
Master of Business Administration
The Master of Business Administration is a :master's degree in business administration, which attracts people from a wide range of academic disciplines. The MBA designation originated in the United States, emerging from the late 19th century as the country industrialized and companies sought out...

. The interview would not be a technical one.

Résumé/College Fair

Microsoft recruits heavily from college campuses in the United States
United States
The United States of America is a federal constitutional republic comprising fifty states and a federal district...

.

The interviewing process typically begins with college students attending a career fair on campus and submitting a résumé
Résumé
A résumé is a document used by individuals to present their background and skillsets. Résumés can be used for a variety of reasons but most often to secure new employment. A typical résumé contains a summary of relevant job experience and education...

 to recruiters. The campus fair and accompanying on-campus information session about the company gives students the opportunity to find out more about what Microsoft does, and to ask questions to current employees.

First interview

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. The first-round interview can last for about thirty to forty five 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
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

, etc.).

During this interview the recruiter attempts to determine if the candidate will be able to flourish at Microsoft. After the interview, the recruiter will consider whether Microsoft's current business needs and the candidate's qualifications and interests are compatible.

Questions

Some examples of questions that the recruiter will keep in mind or ask a candidate include:
  • 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?


Microsoft expects that the candidate know its various businesses and product groups, and come prepared to speak in-depth about their résumé in addition to asking thoughtful questions.

Post first interview

The candidate can generally expect to receive the results of the first-round interview from the recruiter within about 2 to 3 weeks of the interview date. If the first-round interview was successful, the candidate is contacted by a Microsoft recruiting co-ordinator to arrange a mutually acceptable date for the second-round interview.

Travel and lodging arrangements are then processed and finalized.

Second interview

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
Redmond, Washington
Redmond is a city in King County, Washington, United States, located east of Seattle. The population was 54,144 at the 2010 census,up from 45,256 in 2000....

 or at one of its other sites in the world.

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 sight-see.

Candidates interviewing for the program manager position can be expected to answer detailed design questions that test the candidate's creative ability and focus on customers. 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.

Many questions asked 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 interviewer observes how the candidate attempts to solve a problem and follows 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 (Microsoft site 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 generally notified on the day of the interview as to which position he/she will be interviewing for if the candidate is interviewing for software development engineer, software development engineer in Test, or Program Manager Positions.

Following each interview with the candidate, the interviewer will email the complete set of interviewers with their feedback on the candidate. This email generally begins with a summary “Hire” or “No hire” assessment. The last interviewer to see the candidate is special, and referred to as the “As Appropriate” or “As Ap”. This person, generally the most senior person among the set of interviewers, will only see the candidate if the email feedback on that candidate thus far has been generally positive, or at least split between “Hire” and “No Hire” assessments. The “As Appropriate” interviewer often makes the final call as to whether the candidate will receive an offer.

Because the last interviewer is more influential and also additional people may be involved into final decision, this decision may be negative also when more than a half of the engineers vote "Hire".

Post second interview

After the second-round interview the candidate is asked to submit a reimbursement form for any expenses incurred during the trip to Redmond (e.g. taxi travel and meals). The candidate then generally receives an e-mail or phone call detailing the outcome of the second-round interview. If selected, an offer is made and the candidate is given a list of starting dates to decide on whether to accept based on any other pending offers.

Interview questions

The questions asked during the Microsoft Interview are crafted to determine a candidate's problem solving, coding and design abilities. Eccentric questions (such as Which of the fifty states would you remove?) test a candidate's ability to come to a decision and articulate it. Candidates answering questions should consider the use of technology in the present and future, and User scenarios. Some questions involve 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 cellphone for a blind person.
  • Design a music system for a car. What are the features? Draw a picture.
  • Design a GPS navigation unit for a hiker
  • Design a communication device for Canadian park rangers.
  • Design a remote control for an automatic window-blind system.
  • Design a TV Remote Control with Two Buttons.
  • Design a coffee maker that will be used by astronaut
    Astronaut
    An astronaut or cosmonaut is a person trained by a human spaceflight program to command, pilot, or serve as a crew member of a spacecraft....

    s.
  • Design an alarm clock.
  • Design an alarm clock for a blind person.
  • Design a search function
  • Design a website for a library
  • Design an ATM for children
  • What method would you use to look up a word in a dictionary?
  • What are examples of poorly designed software?
  • Design an instant messaging system.
  • I am your grandmother. Describe what MATLAB
    MATLAB
    MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...

     is to me.
  • How would you explain what a database is to a 5-year-old?
  • How would you explain computer networking to a kindergarten kid?
  • What is your favourite software, and how would you improve it?
  • Write code for an electronic messaging board. What happens when a user logs on?
  • Develop an algorithm
    Algorithm
    In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...

     for selecting objects in Visio
    Microsoft Visio
    Microsoft Visio , formerly known as Microsoft Office Visio, is a commercial diagramming program for Microsoft Windows that uses vector graphics to create diagrams.- Features :...

    .
  • 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?
  • You have a linked list and don't know how long it is; how do you find the middle of it?
  • How would you test a keyboard?
  • How would you test a pen?
  • 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.
  • Determine if a Binary Search Tree
    Binary search tree
    In computer science, a binary search tree , which may sometimes also be called an ordered or sorted binary tree, is a node-based binary tree data structurewhich has the following properties:...

     is well formed.
  • Reverse every word in a String (abc def becomes cba fed).
  • Write a function that returns the angle between the hour and the minute hands of a clock, given input of the time.
  • Write a function that takes a string consisting of numeral characters and returns all possible alpha character strings of same length as input that correspond to the keypad of a typical telephone.
  • Imagine you have a closet full of shirts. It’s very hard to find a shirt. So what can you do to organize your shirts for easy retrieval?
  • How would you test an elevator?
  • How would you test a vending machine?
  • How would you test a program that takes in two points and outputs the distance between the two points?
  • Test the Windows scroll bar.
  • Switch every pair of words in a string ("ab cd ef gh" becomes "cd ab gh ef")
  • Write the function for strstr function (finding a substring inside a string)
  • Reverse the order of words in a string ("ab cd ef gh" becomes "gh ef cd ab")
  • Write the function for string comparison. How would you test it?
  • Write a function to zero all duplicate values in an integer array. How would you test it?
  • Write a function that compares two strings and returns a third string containing only the letters that appear in both.
  • Find cycles in a singly linked list, using minimal storage.
  • Shift all elements of a circular array by k bytes, using no extra memory.
  • For an array of size n, print all pairs that add to k. (then, do the same thing with a sorted array)

Interview resources

Microsoft provides a list of suggested reading to prepare for the interview. A sample is given below:
  • Writing Solid Code, Steve Maguire
    Steve Maguire
    Steve Maguire is a renowned software engineer and author of software engineering topics. He is the author of two books on software development, Writing Solid Code and Debugging the Development Process....

  • Code Complete
    Code Complete
    Code Complete is a software development book, written by Steve McConnell and published in 1993 by Microsoft Press, urging developers to get past code and fix programming and the "big design up front" waterfall model...

    , Steve McConnell
    Steve McConnell
    Steven C. McConnell is an author of many software engineering textbooks including Code Complete, Rapid Development, and Software Estimation...

  • Testing Computer Software, Cem Kaner
    Cem Kaner
    Cem Kaner J.D., Ph.D., is a Professor of Software Engineering at Florida Institute of Technology, and the Director of Florida Tech's Center for Software Testing Education & Research since 2004...

  • All I Really Need to Know in Business I Learned at Microsoft, Julie Bick
  • Business @ the Speed of Thought
    Business @ the Speed of Thought
    Business @ the Speed of Thought is a book written by Bill Gates in 1999. It discusses how business and technology are integrated, and shows how digital infrastructures and information networks can help getting an edge on the competition....

    , Bill Gates
    Bill Gates
    William Henry "Bill" Gates III is an American business magnate, investor, philanthropist, and author. Gates is the former CEO and current chairman of Microsoft, the software company he founded with Paul Allen...

  • The Road Ahead
    The Road Ahead
    The Road Ahead, a book written by Bill Gates, Nathan Myhrvold and Peter Rinearson and published in November 1995, summarized the implications of the personal computing revolution and described a future profoundly changed by the arrival of a global information superhighway.Gates received a $2.5...

    , Bill Gates
  • Algorithms in C, Robert Sedgewick
    Robert Sedgewick (computer scientist)
    Robert Sedgewick is a computer science professor at Princeton University and a member of the board of directors of Adobe Systems....

    , eds. . Addison-Wesley, 1990.
  • Essential .NET Vol 1 The Common Language Runtime, Don Box
    Don Box
    Don Box is a Distinguished Engineer currently working at Microsoft.Along with Bob Atkinson, Mohsen Al-Ghosein, and Dave Winer, Don was one of the original four designers of SOAP, a basic messaging layer for web services....

     Addison-Wesley, 2003.
  • Lessons Learned in Software Testing, Cem Kaner
    Cem Kaner
    Cem Kaner J.D., Ph.D., is a Professor of Software Engineering at Florida Institute of Technology, and the Director of Florida Tech's Center for Software Testing Education & Research since 2004...

    , 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
    Thomas H. Cormen
    Thomas H. Cormen is the co-author of Introduction to Algorithms, along with Charles Leiserson, Ron Rivest, and Cliff Stein. He is a Full Professor of computer science at Dartmouth College and currently Chair of the Dartmouth College Department of Computer Science. Between 2004 and 2008 he directed...

    , Charles E. Leiserson
    Charles E. Leiserson
    Charles Eric Leiserson is a computer scientist, specializing in the theory of parallel computing and distributed computing, and particularly practical applications thereof; as part of this effort, he developed the Cilk multithreaded language...

    , Ronald L. Rivest, and Cliff Stein
    Clifford Stein
    Clifford Stein, a computer scientist, is currently a professor of industrial engineering and operations research at Columbia University in New York, NY, where he also holds an appointment in the Department of Computer Science. Stein is chair of the Industrial Engineering and Operations Research...

     MIT Press, 2001
  • The Art of Computer Programming
    The Art of Computer Programming
    The Art of Computer Programming is a comprehensive monograph written by Donald Knuth that covers many kinds of programming algorithms and their analysis....

    , Donald Knuth
    Donald Knuth
    Donald Ervin Knuth is a computer scientist and Professor Emeritus at Stanford University.He is the author of the seminal multi-volume work The Art of Computer Programming. Knuth has been called the "father" of the analysis of algorithms...

    Addison-Wesley

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK