0% found this document useful (0 votes)
217 views12 pages

Microsoft Interview Proces

This preparation guide provides tips for maximizing performance in Microsoft interviews. It outlines preparing for interviews by practicing coding, understanding the process, and being self-reflective. Key technical areas to prepare include algorithms, data structures, sorting, hashing, trees, graphs, and systems design. The interview consists of 4 technical sessions assessing skills like problem-solving, critical thinking, and communication.

Uploaded by

ProTouch Studio
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
217 views12 pages

Microsoft Interview Proces

This preparation guide provides tips for maximizing performance in Microsoft interviews. It outlines preparing for interviews by practicing coding, understanding the process, and being self-reflective. Key technical areas to prepare include algorithms, data structures, sorting, hashing, trees, graphs, and systems design. The interview consists of 4 technical sessions assessing skills like problem-solving, critical thinking, and communication.

Uploaded by

ProTouch Studio
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Preparation Guide –

Unlocking your potential to


maximise your performance
in your Microsoft interviews

Working Document
Compiled by: Beverly Baker September 2020
Agenda

Preparing for your interview

The Interview

3 types of questions

How to approach your interview

The STAR Framework

Tips for the interview

Why choose Microsoft

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*

Other Data Structures


You should study up on as many other data structures and algorithms as possible. You should especially know about the most famous classes of NP-complete problems, such as
traveling salesman and the knapsack problem, and be able to recognise them when an interviewer asks you them in disguise. Fin d out what NP-complete means

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

System Design and Distributed Systems


How not to design Netflix in 45minutes; Anatomy of a System Design interview; A great GitHub repo about system design
These blog-posts summarise the dos and don’ts of a system design interview. We are looking more for best practices around distributed system design. Resiliency, high
availability, auto-scaling, replication, CAP theory, partitioning all goes in

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

How you do in your interview


Why does Microsoft interview
What is a technical interview? demonstrates certain
this way?
capabilities

• 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

• It gives us an overview of the


projects you have been working on
Typically there are 3 types of questions

Technical Behavioural Experience

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

− How do you keep your skills up to


date and what do you do to learn
new things
How to approach your interview

Make sure you understand


Your Plan Problem-solve Optimise and conclude
and are prepared

• 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

• Don’t force a solution if it is


wrong
Structuring your problem-solving – The STAR Framework
Technical example Core Competencies example

• 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

• Agree on inputs and outputs with your interviewer

• 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

• Modularise your algorithm by writing help functions

• 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

• Be open to different types of problem-solving – not just coding


− Sometimes it may be simpler than you think
− Follow the same steps of structuring, communicating thoughts and walking the interviewer through your thought process

• Think of 1 or 2 thoughtful questions to ask your interviewer


Why choose Microsoft

‘Our people are our best resources . . .’ – Satya Nadella


Microsoft’s mission is to empower every person and every organisation on the planet to achieve
more. If this resonates with your beliefs, together we can make a difference in our communities
and the world. The possibilities are limitless when we’re free to be ourselves, trusted to pursue
sometimes wild ideas, and surrounded by others who share our passion

At Microsoft you have the chance to:

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/

You might also like