Interviewing for technical positions at Microsoft: Part 1

I think this is the post that you have all been waiting for!  Yup, I finally got to it and now you are about to embark on the adventure of what a typical interview day is like at Microsoft.  While these are our thoughts on what you need to do to be prepared, you should also check out the career site for official information.

I am going to split the posts up across two days; otherwise it might be too daunting to read through everything in one sitting.  I also have to have a hook to keep y’all coming back right?  I am trying to include as much information about the interview process as well as tips and tricks that can help you along the way. 

Make sure you take a look at the disclaimer once again prior to reading this post.  The information in this post is intended for those experienced candidates (1 year or more out of a university program) interviewing for core technical positions (SDE/SDET/STE/PM) at our Redmond, WA headquarters.

Scheduling

Congratulations!  You have made it through submitting your resume, the phone screen with the technical recruiter (and maybe even the hiring manager) and now you are ready for your interview day.  So now what?

First, your recruiter should have sent you an email (or spoken with you in person) indicating that you will be contacted by a “recruiting coordinator” within two business days.  A recruiting coordinator is responsible for working with you to determine what interview days work best for you and the group, helping you with your travel and accommodations as well as answering any logistical questions that you might have.  If you have questions about the actual interview day, position, job description you should talk with your recruiter. 

You’ll need to set aside at least one business day for the interviews themselves.  You may also want to give yourself a little bit of a buffer for travel etc on both sides of that interview day if you are traveling from another location (especially if it crosses time zones).   

During the interview day itself you will be meeting with employees and hiring manager(s) from the technical product groups.  You usually have the chance to speak with 3-5 people from the team you are interviewing with.  Each interview lasts for about one hour and they are conducted one on one.  The interviewers will ask you a mix of technical coding questions, testing (for STE/SDET roles) and non-technical questions

We usually can have you interview in about two weeks depending on where you are traveling from.  If you have other offers pending, have specific work obligations, need to give more than 2-4 weeks notice to your current employer (if we offer you a position) or if you have vacations coming up you should definitely let the recruiting coordinator and the recruiter know about these timelines.  This way we can try to bring you in sooner if needed or accommodate your schedule accordingly.

General preparation for your interview day

Being prepared for the interviews is typically half the battle.  You should know very clearly what type of position you are interviewing for, what the requirements are needed for the role and what responsibilities you might have in the position.  If this is unclear to you at all, make sure you discuss this with the recruiter prior to your day of interviews. 

The way I usually prepare (or recommend preparing) for the interview is by starting with the job description.  I look through the skills required for the position and determine how my experience matches those requirements.  From there, I begin to anticipate what questions someone might ask me and come up with examples of times when I have used those skills or solved certain problems using those skills.  If I notice that I am lacking a skill in a particular area, then I figure out how I can get myself up to speed in that area quickly. 

I will also research the group where I am going to be interviewing as much as possible.  For example, if I am going to interview with the Exchange Server team, then I will search the corporate website for information about that team.  I will also look for information on MSDN that might be helpful.  And of course, there are a ton of great blogs now that can give me more information about people that actually work in this group :)

The Microsoft career site also has some information on different types of positions.  You should make a point to look through those position descriptions and familiarize yourself with the general responsibilities associated with that role.

I will also spend time doing internet related searches to find out if there is any information on interviewing with that company or on the position.  I don’t place a huge emphasis on this per se, but it can be somewhat helpful in preparing yourself to interview.

A note about your resume: anything on your resume is fair game during the interview.  This is why it is so important not to embellish your skills or results.  You should be able to talk to your resume and provide thorough examples of how you approach problems or achieved the results stated. 

A lot of people have recommended buying books about interviewing at Microsoft.  “How Would You Move Mount Fuji” etc…I don’t think these can necessarily hurt, but you may want to use the Technical Careers @ Microsoft page for information first (obviously I am biased) as well as some of the other recommended sources.  These may be far more helpful to you and also save you some money :) 

Position specific interview preparation

To evaluate your skills for a development role (SDE/SDET) at Microsoft, you will be expected to write code during the interviews.  Typically, we will give you a coding question and then ask you to write your solution on a white board.  Again, refer to Eric Lippert’s post on writing code on a whiteboard.  This can help you on in thinking about how to prepare yourself for this eventuality.  You may also want to take some time to actually practice writing code on a white board prior to coming in for the interviews.

Also, in preparing yourself for coding questions you should really push yourself in developing code without using class libraries or other prepackaged tools.  Keep in mind that you won’t have access to these types of tools during the interview day.  Some development resources that might be helpful to you in preparing for the interviews:

Writing Solid Code: Microsoft's Techniques for Developing Bug-Free C Programs -- Steve Maguire

Code Complete: A Practical Handbook of Software Construction -- Steve C McConnell

There is also a great list of resources that other developers have recommended on this site.  However, Maguire and McConnell are the two that I hear most referenced by hiring managers at Microsoft.

For test related positions (STE/SDET), you may also be asked to get up and write on a white board.  Typically we will ask you a testing question and then expect you to list your results on the white board.  For an SDET position we may ask you to test your own or another piece of sample code.  Groups will vary on whether or not they actually have you write on a white board, but you should prepare yourself for this eventuality.  There are test resources that you may want to get familiar with prior to the interviews:

Testing Computer Software, 2nd Edition -- Cem Kaner (Author), et al;

How to Break Software: A Practical Guide to Testing by James A. Whittaker (Author)

Program Manager candidates may also be asked to present their ideas or white board some of their thoughts.  Some very technical program manager positions require some level of coding ability, but I think these positions are pretty rare.  In any case, be sure to ask your recruiter whether or not you will be asked to write on a whiteboard during the interviews.  Unfortunately, I don’t have many resources to point program manager candidates to at this time.  If you are currently a PM at Microsoft let us know what resources you would recommend.

So that’s it for today.  The much juicier and meatier part of the interview post will arrive tomorrow.  Till then, stay tuned!

 

Interviewing for positions at Microsoft: Part 2

In my last post, I spent most of the time talking about preparation before the interviews.  Most people really want to know what an actual interview day is like at Microsoft.  Well, you always get what you ask for when you are dealing with us!  I am giving you some information here about what a typical day might feel like.  I hope this helps out when you are preparing for your big interview day…

The day or night before the interview

If you arrive the day or night before the interviews and have some down time, it might be a good idea to do a practice run to the interview location if you are planning on driving yourself.   I did this the night before my interviews and it took the nerves out of trying to find my way around an unfamiliar city.  If you don’t have time to do this, you might want to ask the concierge or front desk manager at your hotel about traffic conditions from the location you are to the location of your interviews.  You can then plan how much time you will need in the morning and give yourself a few minutes extra if you run into traffic or an accident. 

The other transportation option you have is using a taxi.  The taxi option is really appealing to those people that know they are going to be too nervous to drive.  The taxis we use are also very familiar with getting candidates to and from our building so that can take the pressure off.  Gretchen mentioned that she chose this option and it was really helpful to her.  However, if you are relying on another form of transportation make sure you have confirmed your transportation the day/night before you need it.  The last thing you want is to have everything else prepared and then forget to confirm your taxi.

I make a big deal out of this because arriving late for your interviews can be unnerving and it can also impact the time table for the rest of the interview day. We try to reduce travel time as much as possible by providing you with accommodations close to your interview location; however it never hurts to be prepared for any potential roadblocks!

Typically, I recommend that people arrive for their interviews 15 minutes before the start time that the recruiting coordinator has indicated.  This allows you time to find parking, get yourself situated and if you need to complete any paper work prior to the recruiter meeting with you. Make sure you allow for this in your travel time whether you are driving or using an alternate form of transportation.

Oh, I thought this was a given but I might as well say it anyway – get a good nights sleep!  It can be tempting to check out the local sites or have dinner with your friends the night before, but you may want to hold off on doing this until after your interviews are over.  I have had a lot of completely wiped out people come in for interviews because they spent the night out on the town.  Consequently they haven’t preformed all that well during the course of the interviews themselves. 

Interview day morning

This may sound a little motherly, but you should try to have a good breakfast the morning of your interviews.  I usually recommend eating something with protein vs. high carbohydrates.  I don’t know about you but if I have a huge breakfast of pancakes, I am usually toast by 11 am (no pun intended :).  If you get really nervous and can’t think about eating, try to at least have a protein bar or some fruit.  The one thing you probably should avoid is loading up on caffeine as this can really exacerbate any nervous feelings you have.  And, I don’t know if I should say this or not, but caffeine is a diuretic and you might feel the effects of it all day. 

I once had a candidate spill an entire cup of coffee on me, my computer and all my files.  Hey, no biggie this happens, right?  I later found out though that this was his 3rd or 4th cup of coffee that day and it was only 9 am!  I figure you can guess the moral of this story.

Anyway, most of our interview days start in the morning, so eating a little something will help carry you through your first few interviews until lunch. I promise you will feel and perform better throughout the course of the day. 

Arriving on campus

Okay, so you have done your dry run to campus or you have allowed extra travel time to get to the interview location.  Whatever the case, you have finally arrived!  The first thing you will do is walk into our building’s main lobby area and up to the receptionist’s desk.  The recruiting coordinator will have indicated a recruiter that you should meet with and you should ask for this person.  Depending on how early you arrive, feel free to take a seat and a few minutes to relax before meeting your recruiter.  You’ll be sitting with other interview candidates at this point and it should be comforting to know there are other people feeling and experiencing the same things you are!

The recruiter will come to the lobby to pick you up at the designated time.  If you find you are waiting 10-15 minutes past the time assigned for the interviews, then you should make sure the receptionist is aware of this so they can locate your recruiter.

The recruiter will take you to their office and thus begins the interview day.  When I meet with candidates I use this time to cover a few different areas.  First, I will let you know what you should be expecting from the interview day.  I will give you the first couple of interviewers that you will be meeting with and I will also give you my contact information.  Essentially, this is my time to prep you and help you be successful during the day.

I will also use this time to find out any additional information I need to know about you.  For example, if we haven’t discussed compensation yet or there are other administrative details we need to get out of the way, this is the time to do it. 

This is also a chance for me to interview you again.  I like doing this with candidates because it helps me to inform the rest of the interviewers on the loop what they should cover during the day.  It also helps get you prepared and in the mindset for the rest of the day.

After we have had our meeting, it is time for me to send you to the product team.  I will walk you to the recruiting shuttle and then send you over to your next interview location.  From that point forward, your day should be on autopilot.  I usually monitor the progress from my office, but if you run into any problems during the day you have my contact information.

Meeting with the team

Once you get to your next destination, you’ll ask the receptionist for the first person on your interview list.  You’ll typically wait in the lobby for that person just as you did for the recruiter.  The will come down and meet you and walk you to their office.

The way each interview is conducted will vary depending on the person.  Usually, they will take the first few minutes to introduce themselves and tell you about their job at the company.  Then they will dive right in to asking you questions.  As I mentioned before, they will ask a combination of technical and non-technical questions.  If you have done the preparation recommended above, you should be well prepared for the questions that might be asked.  However, these are some areas where you may be asked questions:

Before you start answering questions, make sure you have all the information you need.  If you are unclear on the problem you are being asked to solve or unclear on the question itself; make sure to ask clarifying questions.  Many times you will be given questions with ambiguous information and it is your job to make sure you have all the information you need in order to actually answer the question. 

Interviewing is a two way street – always keep this in mind.  You are also interviewing us to determine if this is a group, position, and company that can support your short term and long term career goals.  Don’t be afraid to these types of questions!

Between each interview you will be waiting in the lobby for the next person to come and get you.  You should use this time to regroup and review your performance in the last interview.  Self assess where things went well and determine what you can do better in the next interview.

A special note on the lunch interview: Most of our candidates at Microsoft will have some sort of a lunch interview.  These interviews are longer then the others on the loop and last for about 90 minutes.  Usually the interviewer will take the first 30-45 minutes to eat lunch and ask questions that don’t require working on a white board.  Usually they will take you to lunch at one of our fine cafeterias on campus or to a local restaurant.  If you have certain dietary requirements, let the recruiting coordinator know in advance.  It is really important to stay in your interview mindset during lunch – these are still interviews though they may feel more casual.  That said, I remember not eating a whole lot during my lunch interview so you may want to bring a snack with you to eat later in the afternoon (power bar or other protein source) to boost your energy and stave off the tummy rumbles.  After taking some time to eat, you most likely will return to the interviewer’s office and finish out the rest of the conversation and interview day.

After the interviews are over

The last interviewer on your loop will let you know when you are done for the day.  The recruiter should have let you know in the morning whether or not they will be meeting with you at the end of the day.  Either way, you will be returning to their building to retrieve your car or get your taxi.

The recruiter should also have given you a timeline for when to expect to hear back from Microsoft on whether or not you got the position.  This usually takes about 5-10 business days depending on how many other candidates are interviewing for the position.  I would try to get a commitment in advance on when/if you will be hearing back from the recruiter. 

Gretchen has recently posted some articles titled “Après Interview”.  I would highly recommend you check these out as they may be a possible result of your interview.

Now that you are done with your interview day you should try to enjoy the rest of the time that you have in Seattle.  Relax, take in the sites and tastes of the area.  You never know, you could end up moving here in a couple of weeks :)