I applied through a recruiter and the process took 2 weeks - interviewed at Microsoft in January 2013.
Interview Details –
Like other postings on this site have indicated, the standard hiring process with engineering seems to be one technical phone screen and a day of fun and games on site (provided that the phone screen went well). This was my second interview with Microsoft. Back in 2008, I interviewed for an SDET position for which I received an offer and graciously accepted. I voluntarily left the company 2 years later because I did not enjoy my work as an SDET. Contrary to what the recruiter will tell you, it's quite difficult to move around within the company once you're there. I've found that it's actually much easier to just leave the company and come back on your own terms -- which is pretty much how I did it. Although one piece of advice there: make sure you have a rock star record before leaving because they save that stuff and will review it if you return. This was a bridge that I made absolutely sure *not* to burn on my way out.
I was contacted by an MSFT recruiter about an SDE position. I did an initial phone interview with someone. He was quite personable and asked me a lot of questions about things on my resume. There was one particular personal side-project that he thought was interesting and we discussed it at great depth for maybe 45 minutes. The questions didn't feel quizzical, but rather like he was actually interested and engaged in what I had done.
Then he asked some basic work related questions around how the file system at my current company works. Next, we did some coding in a shared document. This part wasn't bad. He asked me to insert a node in to a binary search tree (BST) and then balance it. All in all, I wrote the code to insert a node, get current balance of the tree, determine the current height of any node, and the rotate_left and rotate_right functions in the case where a rotation is needed to restore the balance. It was around 120 lines of code give or take. All done in the C programming language. Not bad. The bottom line in any interview is that if it's on your resume, it's fair game.
Then they brought me on campus for a full round of interviews. They scheduled me to talk to 4 different folks which were on an itinerary that they gave to me in the lobby when I walked in. What they don't tell you though is that each interviewer is a gate-keeper to the next, so if at any point in time you don't do well, then it's "game over". If, however, you do well, you'll end up finishing the entire schedule, plus doing at 2-3 additional bonus interviews. I went in around 9:30 and left some time after 5. Keep in mind that this doesn't mean that you'll receive an offer, but if you're shown the door before you finish (minimally) what's on your schedule, that's probably a bad sign.
I went in there with my coding weapons off safety -- but I didn't feel like I was grilled as thoroughly (technically) as I should have been. I was asked a lot of design questions mostly around locking, thread synchronization, and scheduling, data compression and snapshot operations on file systems. All in all, I didn't have any trouble with anything and the interviews felt more like a conversation about the things that I am passionate about. I expected to write more code than they asked me to -- and certainly I was prepared. Each interviewer will make a recommendation to the next on where to focus their attention in an attempt to find a weakness -- similarly, they'll also recommend areas to skip if your skill level in that particular area is already of known (good) quantity. They're constantly probing in different places throughout the day, scanning for a weakness, and if you're strong in something, my observation has been that they will adjust their approach (as opposed to continuing to set'em up and allowing you to knockin'em down). I demolished the first couple of coding problems early on and I think that's why they changed vantage points to a most holistic approach -- they wanted to know if I could see the "big picture". At one point in the day, I even asked for another coding problem at which point, I was politely declined. So then I offered to give them one instead. Again, denied, lol.
My day ended sometime between 5pm and 6pm. I can't exactly remember what time it was (perhaps 5:30), but it was dark out (and cold!). Having done it twice now, the one best piece of advice I'd give to anyone is to get a lot of sleep the night before, rather than study. Studying the night before won't save you. :) Regardless of the technical level of difficulty, this process can be quite nerve-racking. Emotionally, it takes its toll and by the end, I was exhausted.
They called me three days later and said that they wanted to move forward with an offer.
Interview Question – Design a scheduler to run many functions at different times. It needs to (obviously) be thread-safe. Each task which is scheduled to run will have a time stamp, containing a desired execution time, a function pointer (containing the desired function). Also, find a way to supply the arguments to each function. Implement the mechanisms for scheduling/removing work to be done. How would you handle functions that must be serialized as opposed to ones that didn't need to be? View Answer
I applied through an employee referral and the process took 2 days - interviewed at Microsoft.
Interview Details –
Initial phone call screening by HR person. Why Microsoft? What are your strengths etc.?
Flew over to Redmond.
Day long interviews with various members of the team.
First: Implementation of memcpy. Coding optimization
Second: UI design questions. Thorough understanding of UI controls and when to use what and why. Messaging between applications.
Third: Lunch interview. general career goal questions
Fourth: Coding style questions, approaches to reduce an n2 problem to n
Interview Question – UI controls discussion - wasn't expecting that. Answer Question
Reason for Declining – Got a better offer
I applied online and the process took 2 weeks - interviewed at Microsoft in December 2012.
Interview Details – The interview process is somewhat unpredictable. There are multiple interviews, typically between three and five. The interviews themselves have somewhat unpredictable content. Some teams leave it up to the individual interviewer to determine what to ask. At the other end of the spectrum, some teams determine in advance what they want to assess and which interviewers will cover each area. Some interviewers give algorithm and coding questions, others do just an algorithm or a coding question. Some interviewers ask for past demonstrations of particular social skills.
Interview Question – Rotate a square image by pi/2 radians. Answer Question
I applied through a recruiter and the process took 2 months - interviewed at Microsoft.
Interview Details – Phone interview and onsite interview
Reason for Declining – Didn't want to move to Redmont
I applied through a staffing agency and the process took 5 weeks - interviewed at Microsoft in October 2012.
Interview Details –
I first received an tentative invitation from a Microsoft recruiter to attend a "hiring event." Several days later, I had a technical phone interview with an engineer with a very heavy accent. Apparently I passed because I was given a formal invitation to the hiring event in Redmond. Microsoft paid for my airfare, car rental and hotel.
I arrived at Microsoft early to find the doors locked. Other interviewees and I stood outside until another interviewee, who happened to be already inside, opened the door for us. We slowly met the Microsoft recruiting staff. With one bright exception, they were dressed like slobs and had few answers. It was only then I learned the group with whom I would be interviewing--it was a group in which I had no interest. I would have rejected the interview outright had I known this information from the beginning. I seriously considered walking out.
The dozen of us were each ushered into small, very nice, interview rooms with a table, two chairs and a white board. We all had four, 45 minute, interviews with a 15 minute break between. This bothered me because I'd been led to believe that this was a whole day event and had made my schedule with this in mind.
It was very obvious that the first hiring manager had already made up his mind. He was a bit rude. He would ask questions and then try to interrupt me mid-sentence. When I didn't let him, he got upset. I don't remember his technical question, but it was absurd.
The next two interviews were interesting, though the third of the day was entirely about solving a problem with no other questions asked. I thought them extremely pointless. The last interview was the one of the most interesting in my career. The manager was a fascinating man and spent his entire time asking me pointed questions in an attempt to see where I would fit in his organization. He explained what various teams did and made it clear that he didn't know where I would fit due to my skill set and experience--something I was wondering about myself. The questions helped me form my greatest skill in a different way, which I found very useful.
All-in-all, I found the process frustrating, pointless and offensive. I failed to see how all but the last manager could determine anything. I found that the hiring staff and one hiring manager to be very unprofessional. Above all, they acted like I was dying to work there. I was made to feel like a cog in a wheel and had no doubt that is what it would be like to be a Microsoft employee (that may not be true, but is how I was made to feel.)
To top it all off, despite reassurances otherwise, I wasn't told the results of my interview until I contacted the recruiter. His response was curt and entirely unhelpful.
I should add that I've never been to the Seattle area and found that I didn't like it. The traffic, especially bad.
Interview Question – While phrased longer, given a set of teams, which one would I be the most effective on and which one would I enjoy being on? Answer Question
I applied through a recruiter and the process took 2+ weeks - interviewed at Microsoft in July 2012.
Interview Details – I was scheduled for 3 interviews, but I ended up with 5 interviews. Every interviewer was extremely nice. The interview questions were mostly technical and not too difficult, but it was important to know your CS basics, and also to handle corner and test cases. Also, in cases of ambiguity, I asked questions to make sure that I understood the problem (this is important).
Interview Question – I take NDA's seriously, so I'm not gonna state it. View Answer
Negotiation Details – The offer was good enough. I accepted the offer as-is.
I applied through a recruiter and the process took a day - interviewed at Microsoft in July 2012.
Interview Details – I first did a phone interview and answered a few basic computer science questions. During the on-site interview, I had around 6 hours of interviews (1 hour interviews per person) throughout the day, including a lunch interview. The "loop" usually gets cut after lunch if you don't make the cut. Fortunately I went the whole day. At the end of the day you usually sit down with someone higher than the hiring manager and discuss non-technical topics so they get a feel for you as a candidate and your potential non-technical contributions to the team.
Interview Question – You have two linked lists that merge at some node. The lists could be billions of nodes long. Find the node where the lists merge in the most optimal time while using a low amount of memory. View Answers (4)
Reason for Declining – The offer was not high enough for my level of experience. It seems like they were filing a role that was a level below my current pay grade.
The process took 4+ weeks - interviewed at Microsoft in May 2012.
Interview Details –
I had one phone interview and after had interview in office.
On phone i described my experience and got one simple technical question. And I was answered on it.
After 1 week I got offer for interview. I had two 1 on 1 talk. And total 3 questions in it. I was answered on 2 questions.
I applied through other source and the process took 2 weeks - interviewed at Microsoft in May 2012.
Interview Details –
Internal transfer within Microsoft.
Phone screen was over an internal screen sharing program so I could code in my favourite IDE.
I flew to Bellevue WA to interview in person.
All core CS and design questions.
Interview Question – Sort in linear time but without extra space as in counting sort Answer Question
Negotiation Details – No negotiation as I was already in Microsoft and just transferring groups,
I applied online and the process took 2 days - interviewed at Microsoft in April 2012.
Interview Details – Fast and insightful. I was challenged on my skills and it was great.
Interview Question – Comtinuous performance improvement of a prime-number algorithm optizing for various characteristics. View Answer
Negotiation Details – Yes
Pros: “Microsoft has recently become a more exciting place to work, perhaps due to involvement in the devices area and getting closer to the consumer space. It is good we have the company stores.” – Full Review
What do you want in a job? Do you want more than a paycheck? At Microsoft, you can discover potential you didn’t know you had, push your limits, turn your ideas into reality and make a real impact on the industry and… — Full Overview
Provided by employer [?]
This is the employer's chance to tell you why you should work for them. The information provided is from their perspective.
Your feedback has been sent to the team and we'll look into it.
The difficulty rating is the average interview difficulty rating across all interview candidates.
The interview experience is the percentage of all interview candidates that said their interview experience was positive, neutral, or negative.
Your response will be removed from the review – this cannot be undone.
Simply post an anonymous review for a recent interview experience or current/former employer. Your post is anonymous – and if you're worried someone will be able to identify your review, you can even post without telling us your job title and location. Learn More.
No thanks –