Showing posts with label Microsoft. Show all posts
Showing posts with label Microsoft. Show all posts

Friday, 17 May 2013

Microsoft Pre-Placement Offer Interview


At the end of my summer internship at Microsoft India Development Center (Microsoft IDC), I had the opportunity to go through interviews for getting a Pre-Placement Offer (commonly known as PPO).

IDC is Microsoft's largest development center outside US. The different groups here are involved in development of almost all of Microsoft's major products. In fact, there are some products that have originated here. I don't doubt that Microsoft IDC is the best place to do some good software development work in India. I went through 2 tech interviews:




Interview #1

1) Design classes and implement member functions for playing Tic-Tac-Toe on an N*N board. You win if you get N pieces in a row, column or diagonal.
Follow Up: Briefly explain how will you implement the AI

2) Reverse every word in a string.


Interview #2

1) You are given an M*N board. You are given blocks of different shapes as found in a Tetris game. You have to give an algorithm to check whether all the blocks mesh perfectly in the M*N board. Also, give some heuristics that to speed up the algorithm.

2) How would you test a blue marker?

Friday, 1 March 2013

Microsoft Internship Interview

It was August, 2011 and start of my 3rd year at IITB. It was internship season at IITB and I was desperately looking for a summer internship. Microsoft visited the campus and I was shortlisted (based on CPI) for interviews.


There were no personal interviews. Instead, every batch of 10 students was taken in a classroom and we were given to solve a couple of questions. We were asked the following questions and we had to write working-code on a piece of paper.

1) Coin-change problem. Given unlimited denominations of 1$, 2$, 5$, 10$; find the total number of ways to make change for amount 100$.

2) Given strings a, b, c. Replace all occurrences of string b in a with string c. Note that there is no restriction on lengths of a, b, c.

Somehow, I managed to code up the problems but not very neatly. I asked the interviewer to check my solutions. He stared at the code I had written for a couple of minutes and then asked me some questions and tried to confuse me. He then asked me about the complexity of my code and I was able to estimate it correctly. He then said that I was done with the process and could leave.

I thought that my interview performance was not up to the mark and didn't expect that I could get selected by Microsoft. However, later on, in the night I got a call saying that I had been selected by Microsoft for it's Summer Internship Program. Phew! I was relieved and my worries about getting an summer internship vanished all-together. :)


Key Takeaways
  • You should be able to write neat code at one go. Practice writing actual code (C++/Java) on a piece of paper or white-board.
  • Do some dry runs of your code for some test-cases and check whether it's doing what it's supposed to do.
  • You need to cross-check your code twice and look out for small mistakes that you might commit due to interview pressure.