Microsoft Interview Proces
Microsoft Interview Proces
Working Document
Compiled by: Beverly Baker September 2020
Agenda
The Interview
3 types of questions
Useful Resources
Tips to help you to prepare for your interview
Practice coding and refresh your knowledge
Prepare for the coding part of the interview well, but don’t stress
Understand the process going into your interviews yourself out. Give yourself time to prepare, take breaks and stay active
• Read up on data structures (maps, lists, arrays, stacks, strings, trees,
Take time to understand the process and structure of the
graphs etc.)
interviews with Microsoft. Whilst you don’t want to sound overly • Read up on algorithms – complexity and pseudo code level methods
rehearsed, it is a good idea to understand what it entails • You may use pseudo code to break down the problem initially but do
• The interview structure for Software Engineers will consist of 4 let your interviewer know that this is what you are doing
one on one 45 – 60 minute interviews • Practice writing code on a white board and walking a friend through
• During the interview both Technical Excellence and Core the steps
competencies will be covered • Use functions built into your language of choice as much as possible
• Microsoft takes a mix of an academic, industry and behavioral unless otherwise specified
approach to the interviewing process • Work through your code and use examples to validate its
• If your interview is virtual, please refer to our career site for correctness. Consider edge cases and how you would test it
best practices in order to have a great interview
experience
The Online
Practice Coding
coding Challenge
and refresh your knowledge
Be thoughtful and self reflective This is one of the first steps in your interview process at Microsoft.
During the interview we will be evaluating Microsoft’s core At this stage you will be asked to complete an online assessment
competencies. Be open to sharing your story with us through the Codility platform
• Through out our assessment process Microsoft aspires to • We recommend that you try the freely available Codility
assess fundamental knowledge, capability and learning lessons and read the Codility FAQ before beginning the task
potential. You don’t need to know everything – Nobody does! • It’s a good idea to familiarise yourself with the Codility tool
• Be mindful of your career experience, your most memorable • We are looking for well commented code and the use of user
achievements, as well as the challenges and obstacles that you created test input
have faced • You should submit as efficient a solution as possible
• Think of why these achievements were significant for you and
why they were profound. Share your excitement, passion and
goals for the future
• Think about what you did to overcome any obstacles or
challenges – what drives and motivates you to succeed
Areas to prepare direct from our engineers
Algorithm Complexity
You need to know Big-O. For more information on Algorithms please click here
Coding
You will be expected to write code in some or all of your interviews. You should be proficient in at least one coding language (preferably C/C++, C#, Java, JavaScript or Python).
We strongly recommend you read Programming Interviews Exposed: Secrets to Landing Your Next Job by John Monagan and Noah Suojanen
Sorting
Know how to sort. Don’t do a bubble-sort. You should know the details of at least one n*log(n) sorting algorithm, preferably two (e.g., quicksort; merge sort). Merge sort can
be very useful in situations where quicksort is impractical
Hash Tables
Arguably the single most important data structure known to mankind. You absolutely should know how they work. You might want to explore how to implement one using only
arrays in your favourite language, in about the space of one interview
Trees
Know about trees - basic tree construction, traversal and manipulation algorithms. Familiarise yourself with binary tree: n-ary trees; trie-trees. Be familiar with at least one type
Technical of balanced binary tree, whether it is a red/black tree, a splay tree or an AVL tree. Know how it is implemented. Understand tree traversal algorithms: BFS and DFS, and know
Preparation the difference between inorder, postorder, and preorder
Graphs
Graphs are important at Microsoft. There are 3 basic ways to represent a graph in memory: objects & pointers, matrix, and adjacency list. Familiarise yourself with each
representation and its pros & cons. Know the basic graph traversal algorithms: breadth-first search and depth-first search. Know their computational complexity, their trade-
offs, and how to implement them in real code. Try to study up on algorithms, such as Dijkstra or A*
Mathematics
Interviewers can ask basic discrete math questions. This is more prevalent at Microsoft than at other companies because we are surrounded by counting problems, probability
problems, and other Discrete Math 101 situations. Spend some time refreshing your memory on (or teaching yourself) the essentials of combinatorics and probability. You
should be familiar with n-choose-k problems and their ilk – the more the better
Operating Systems
Know about processes, threads and concurrency issues. Know locks, mutexes, semaphores, monitors and how they work. Know deadlock and livelock and how to avoid them.
Know what resources a process needs, a thread needs, and how context switching works, how it's initiated by the operating system and underlying hardware. Know about
scheduling. The world is rapidly moving towards multi-core, so know the fundamentals of "modern" concurrency constructs
The Interview
• A technical interview is problem- • It shows us your technical agility • Your passion for technology
solving based and your ability to think
strategically to solve complex • Your ability to articulate complex
• You can expect to be tested on problems ideas
algorithms and data structures,
coding, systems and design, as • It shows us how you approach • Your ability to think independently
well as problem-solving in general problem-solving and your thought
process as well as your knowledge • Your curiosity and drive
• You will be expected to solve on technical principles and
these problems using a white methods • Your determination to overcome
board challenges and your adaptability
• It gives us the opportunity to get
• The interview will also include to know you better and learn • Your ability to work in a team
other competency-based about your experiences in a group
questions, as well as questions on dynamic • Leadership
your resume
• It gives us an opportunity to • Confidence
understand how you ask questions
and partner to engage with us • Your communication skills
The technical part of your interview will At Microsoft we’re not looking for just great Each of your interviewers will ask you to
mostly involve coding questions, building and technical skills but also someone who can explain what you currently do at work
developing complex algorithms and analysing improve the way we work and be a great within the parameters of your
their performance characteristics, logic team player confidentiality agreement. It is a good idea
problems, and core computer science to focus on your specific responsibilities,
principles • Questions about your style of working and deliverables and the impact you had
team dynamic. E.g.,
• Questions to gauge your technical • Assume anything on your resume is
knowledge − Tell me about a time when you felt open for questions
something could be improved in a process,
• Algorithms and data structures how did you go about changing it? • Be open to discussing your experience
• Software engineering and coding – in most − Tell me about a time when you felt your − Tell me about a piece of work that you
cases you can choose the idea was better than the one proposed by have completed recently?
• programming language you want to use others, what did you do to convince them?
− Describe a difficult problem that you
• Systems design − Tell me about a time when you made a have recently solved?
mistake, how did you go about rectifying
• Problem-solving it? • If you contribute to any open source
projects, please consider sharing this
• Networking or web focussed • Questions to help us gauge your growth with the interview panel
mindset and interdisciplinary collaboration
• Questions to help us determine your
passion and vision for technology in the
future
• Make sure you understand • Take 2 or 3 minutes to • Don’t jump straight into a • Advise the interviewer
the question think about how you will solution about any trade offs you
solve what is being asked have made, simplicity vs
• Ask clarifying questions • Structure and write your performance
• Discuss your approach to solution on the white board
• This helps us to understand the problem-solving and walk your interviewer • Test your code. Think of as
the extent of your question with the through your thought many good tests as you can
knowledge as well as your interviewer process to prove your code is solid
drive for a solution
• You may receive comment • This helps us to understand • Analyse the performance of
• Know what is happening in that will help you to gauge why you are making certain the code
the global space in your if you are on point in choices in your approach
technical area – recent approaching the solution and that they are logical • Share your ideas about
breakthroughs – even how you would improve
competitors • Consider any feedback or the solution given more
comments from your time
interviewer – watch for
hints and queues
• About understanding the problem Describe and give context to the situation
• Listen to the problem and make sure you understand it • Use an example from previous work experience to
Situation •
•
You may want to write down the problem to help you to
remember what you are solving for
Ask clarifying questions
demonstrate its significance
• Summarise what was involved in two sentences
• About coming up with a working solution About the objective, goal or what was required
• Run your ideas out loud to your interviewer • Briefly explain what you were tasked with
Task •
•
Start with a simple case, then proceed to a working solution
Start to come up with different examples to make sure your
solution works – keep these for testing later
• Share your responsibilities, and assignment for the
task
• About actual coding and optimising your solution About the actions you took to resolve the problem
• Start coding in a language that you are comfortable with • List the actions you took in logical order
• Share your thought process and how you reached
Action •
•
•
Write clean code using clear variable and function names
It is ok to have bugs, but catch them early through testing
Ask before using any libraries
conclusions
• About testing your code and getting feedback About the impact of your actions, your learning and
• Testing is best practice the result
• Run through earlier examples (line by line on the board) • What was accomplished, share evidence to prove
Result •
•
Listen for feedback from your interviewer and use it
Talk about how to optimise your code further
success
• Share any feedback that you received
• Share how the experience impacted your growth,
• Analyse the performance of your code
and what and why you learned from it
• Talk about trade offs of space and time complexity
Tips for your interview
• Be transparent and authentic. If you are stuck, discuss this with your interviewer
• Treat the interview day as a normal day at work, and don’t try too hard to impress us
• Take time to structure your thoughts and communication, and walk your interviewer through your thought process step by step – for all the problem-
solving tasks
− Practice writing your code on a white board
− We are more interested in the approach taken to solve the problem
− Focus on getting the answer right before you try to optimise
• Consider any comments from your interviewer – she/he may be giving you hints and getting you back on track if you are off point
− Listen for feedback, don’t ignore it and force a solution – adapt your problem-solving
− Incorporate any actionable feedback into your next interview – it shows you are listening as well as improvement and trajectory
− If you are asked if you are sure about something, it is probably worth checking your answer
− Sometimes interviewers may think you are wrong when you are right, other times they may tell you that you are wrong when you are wrong
Make a difference – our employees have access to the latest technology and tools, the power to build on the
company’s far-reaching momentum and the drive to change the world
Experience the re-invented company culture - we will only achieve our mission if we live our culture. We start with
becoming learners in all things - having a growth mindset. Then we apply that mindset to learning about our
customers, being diverse & inclusive, working together as one, and – ultimately - making a difference in the world
Work in a diverse & inclusive environment – we believe that our continued success depends on the diverse skills,
experiences, and backgrounds that our employees bring to the company
Have an amazing range of opportunities - you might become an expert in a particular field or build proficiencies
across many areas. You might be an individual contributor or become a manager. Because we have so many kinds
of jobs in so many different places, you can stay in one building, city, or country, or you can cross borders - in
person, or virtually
Be part of truly global company - We are a community of individuals, united by a single mission. We work together,
building on each other’s ideas and collaborating across boundaries to bring the best of Microsoft to our customers
and the world
Useful Resources
• https://careers.microsoft.com/us/en/interviewtips
• https://www.hiredintech.com/courses/interview-strategies
• http://www.kegel.com/academy/getting-hired.html
• https://leetcode.com/
• https://www.topcoder.com/
• https://www.hackerrank.com/
• https://www.interviewcake.com/