Friends,
It wasn’t unlike the other days when i got this call from a job consultant about an opening in a company. She had just started detailing about the job when I gave her a point blank reply saying “Excuse me? I’m only looking for certain specific things in my next profile, do you have one which brackets at least a few of them?”, she interjected “It’s with Microsoft dear, and they’ve already shortlisted your profile!!!! hope you are interested, aren’t you??”, and then??……… Ohhh sure!!, why not!! okay!!, and slowly benevolence occupied me :).
The next ten minutes gone into understanding the expectations of Microsoft as they were looking for people who are quite at home in their core technology products’ skills and willing to migrate to a new product platform. Within those 10 minutes she also made it pretty clear that one should be ready for multiple rigorous grilling sessions at multiple levels coupled with tooth and nail competition making the final recruitment even more challenging.
Day 1 : Interview was scheduled at 10AM saturday morning, a time, when most of the time i’m either fat asleep or half awake and drooling 😀 :D. Nevertheless, the day being an important one i not only woke up early but reached the venue (bandra kurla complex, 20kms) on time.
No sooner than i entered the room i found at least more than a dozen people already in there waiting for their turn and i realized that by any means i’m not going to leave for home early today.
Believe it or not, it took an unfathomable 6 hours when i first heard my name getting called for the first round i.e around 4’O clock. I was further left agape too see the interview panel’s people’s morning fresh faces.
The guy didn’t take much time in explaining the requirement stuff again, and asked me to quickly brief him about myself. I too, at the other end didn’t take much time to brief him about me. I emphasized on important things like winning the Microsoft community contribution award last year , also how i feel more passionate about MS technologies, my blog on ASP.NET , etc..
Technical Rounds :
He started with his technical one on one session and posed a scenario before me.
1. FIRST QUESTION, How will you design a bi-directional WCF messaging server system where heterogeneous client types could connect to the server and exchange messaging, not limiting to MS suite.
Understanding the question took me some time, but i quickly sensed that he’s poiniting towards WCF and specifically WCF duplex communication. I started explaining him WCF duplex communication (with net.tcp binding, WsHttpdualBinding) when he played the master stroke, he said! if you design your WCF with this way will you be able to connect a silverlight client with a nice and cool UI which the customer wants??? the answer is no, because silverlight doesn’t support WsduplexHttpBinding.
refer to this thread. http://forums.silverlight.net/t/226033.aspx/1
Fortunately, my silverlight WCF experiments came for my rescue and i told him that this is definitely possible albeit not with any of the above mentioned bindings but with another different binding called pollingDuplexHttpBinding which has been dedicatedly created for silverlight and supports duplex communication over Http channel. I also didn’t forget to tell him there are other means accomplish this e.g. one framework called “SignalR” which supports virtually any client and is truly distributed in nature. I wasn’t fully sure about the veracity of my answer but knew that he isn’t in a position to argue on this :D. All in all, first impression is the last impression in any interview and MS interview is no exception.
Going further he asked me more WCF questions like WCF session management , reliability , exposing one service , over multiple endpoints etc..
Then he came down to C# and asked about implementing various OO concepts in C#, entity data framework its deferred execution etc.., ODATA web services, difference b/w OData and SOAP services.
The first round concluded this way after they having me grilled for nearly 2hrs. aaichya gavaat!!
Finally, their HR guy quickly communicated to me that i’m through the first round, a moment of elation? :D, short lived though, as he went ahead saying that for the next rounds I’ve to come the very next day, sunday 😦 .
Next day again I reached on time and saw only four guyz sitting in the room and breathed a sigh of relief thinking that today i’ll save some sunday for myself.
My name got called in just half and hour today and i was taken to a room where there was a guy sitting with a laptop and a few papers and i realized that this is going to be the hands on round for which MS is infamous for 😀 and indeed it was the hands on round :D.
The assignment given to me was to create an ASP.NET/WPF application which is kind of an image gallery, the users should be able to upload images, the system should ask the user to provide a name for his album and then store the images in that directory, otherwise, it should create a folder by the name of the geographical location of the user e.g. if the user is sitting in London uploading images , the system should first create a folder inside the root folder with the name “London” and then store the images there.
At the retrieving side the user should be able to see the images in a treeview. It might look a not so very complex kindaa requirement but the challenge was to complete the assignment in 3HRSSSSSSSSSS. Now that was challenging, in addition to this they were going to look at the way you code , declare variables, naming conventions, and bla bla bla….
I somehow completed 70% of this task in those 3 hrs, and with the last clock tick the guy materialized into the room again :D. He said are you done?? I said, yes, i mean no, i mean partially, finally i said NO, it’s not complete.
He said no probs, lets see what you’ve done, i said i’ll show you the application , he said, no i’m not interested in that, i thought, what???, he said yes, let’s see how you code. I was like surrendered, how can you code as per the best practices and also complete something of this sort in just two hours?????
He looked at one of my entity classes declared , it had a syntax like this.
public sealed class User {}
///…. rest of the code
he said, what’s this sealed? i said, class is sealed from being inherited , he said, but why write that? i said if class is not going to be inherited this is the best practice and a thumb rule to create it sealed. He was kind of impressed.These small nitty gritty things can be found inside the book “CLR via C# 3rd edition” a must read book.
In the next 1 hour, he showed me at least 25 errors in my code and finally said that this is not an MS quality code :(. I defended myself by arguing against the time given to complete the assignment. The important thing was to accept your mistakes and speak less.
THE MAIN ISSUES DISCUSSED :
1. He was unhappy over a lot of string concatenation that i had to do in order to hook the java script stuff with server code. If you are going for an MS interview after reading this article , make sure you work with a “StringBuilder” right from the outset.
2. He was also unhappy with long method bodies, coz this increases the cyclomatic complexity of a method.
In a nutshell, if you’ve not started yet, start using Fxcop and stylecop tools for code quality compliance. Initially you might feel like pulling your hair (if you’ve left :D), but once you become habitual of writing code with Fxcop and style cop, your coding style will improve vastly. particularly, Fxcop is a must to use tool. It’ll help you write optimized CLR code.
Beyond this point i wasn’t sure that i’m still in the fray. And as per my fears the HR guy came and said they need some time to think over my candidature and asked me to “Leave for the day” , a line which actually meant (in indian context) “you are rejected?” I could only speak “alright” that time and left the venue.
While driving back home the feelings and emotions was unarguably sullen. But honestly, i was happy at my attempt, i really wasn’t having that feeling of being rejected.
Not more than 15 minutes had elapsed when i suddenly felt my phone ringing. i picked up the call and it was from those MS guyz again. The HR guy said , Shashank, will it be possible for you to drive back again, I think there is still some scope left. I was like WTF :D, but sensing the opportunity i said OK boss, i’m coming.
When i reached back they said they wanted to have another round of technical discussion with me and if I cleared that I’ll be clearing all their technical rounds and will proceed to the HR round.
The next round was technical round taken by the same guy who took the hands on round. He again asked me a lot of questions like
1. How do you create Interfaces, inheritance in javascript?
2. How does method overriding work in javascript?
3. Silverlight discussion.
4. ASP.NET ajax framework, how is it different from other frameworks.
5. Difference b/w variables and properties, which to use when? etc..
This discussion was over in some 40 mins, i thought i did reasonably well, and quickly got the expected feedback, he said, shashank, you are through our technical rounds now you need to go through our hiring managers’ round but that will happen in Hyderabad, we’ll fly you down there and have those rounds finished.
THE HIRING MANAGER ROUND:
A week later I reached hyd, and saw the MS office at hyd, first sight of your workplace is always fantastic makes you fall in love with it. It’s like getting newly married lolzz.
I was ambling inside the MS campus enjoying the area around, big lawns , tennis court, cricket pitch , Xbox games on every floor, TT, carrom, pool tables, surreptitiously taking the photographs to show to my friends at Mumbai :D.
I met the first hiring manager who welcomed me in his cabin. We sat across the table and he started telling about MS and my expected work profile etc.. Then, he said now he’ll ask me questions to see how I carry myself, talk, attitude etc.. elsewhere you don’t see such an interview style.
He asked me about how you handle teams, how you resolve conflicts within team, how you handle pressure , giving honest answers worked for me like I said I’m bad at handling the pressure, whether @work or @home, sometimes i succumb to the pressure situation and seek help from others, we went on discussing these issues and he was kind of in agreement with me on most of the issues. As I said giving honest truthful answers works in these situations. You need not portray yourself as some superhuman guy. Tell them what you think are your limitations.
Now came the LAST round. It was called a director round. I found myself sitting in front of APAC geography director for that round. He carefully went through the feedback of the last round and started asking customer centric questions.
A summary is below.
1. What and how much do you know about the products which are in direct competition with MS products. Given a chance to showcase MS products before some client how will you make sure that the client shell out money out of his pocket for your products? in short, what makes MS products stand apart from others.
2. This is a mouse (he showed me a mouse) sell it for $500.
3. How will you design a house for Mark Zuckerberg? In other words, what type of home design concept you think mark would go for.
4. You’ve a client at your place, with a backpack full of $s, but who’s alrady made up his mind to buy a competitor’s product you are supposed to pull him towards buying an MS product. What will you do? this will also affect your appraisal :D.
5. What would you like to see yourself as , 5 yrs down the line.
6. Will you prefer to be a top rated employee who’s not in the good books of most of his peers or an average employee who bonds well with most of the people around.
He kept on asking me such questions, I also tried to keep my cool, it doesn’t matter what answer you give for such types of questions, i personally feel try to give a balanced answer, because after every answer given by you they’ll ask you to justify your answer. You need to justify the rationale behind your answer, which I feel is more difficult than simply answering the question.
Finally the final round came to an end, I left hyd for mumbai. Within a week I got the call from MS HR people on finally being selected in MS :D.