Continuation... (Click here for Part 1)
Hello again! Welcome back! This is the 2nd part of my Microsoft SDET Interview Experience. If you have not read the 1st part yet, you can click the link above and that should take you to the first part of this series.The Flight to Seattle
Since I live in the Vancouver lower mainland, the drive to Seattle from my place normally just takes around 3.5 hours. Under normal circumstances, I would have just drove down south and not mind the border lineups. But I decided not to do it at that particular time because I wanted to have some time to go over some of the programming problems that had stumped me early on. This was crunch time for me and every minute was valuable. Besides, Microsoft would pay for the cab rides to and from the airport so I decided to take advantage of that.The night before my interview, I carefully packed my things and I made sure that I carried my good ol' Data Structure book as well as my now worn-out programming notebook. I also made sure to download the map of Bellevue and Seattle into my Android phone in case I needed directions. That night, I decided to sleep early with the expectation that the next day would be a very exhausting day for me.
At last, the morning finally came when I have to fly to Seattle for my 2nd round of interviews with Microsoft. After I said my goodbye to my lovely wife and my cute baby, I headed down to the train station to grab a cab that will take me to the Airport. As it was a 30-minute ride to the airport, I decided not to waste anytime and so I grabbed my programming notebook and I tried to solve a problem of how to convert integers to Roman Numerals. I solved the problem before I arrived at the airport and I thought that this was definitely a good way to start my day.
I cleared the airport checks pretty quickly and so that left me with 3 more hours to burn before my flight to Seattle. Again, I whipped up my programming notebook and decided to solve more problems while waiting for my flight. I decided to go through the problems like implementing the atoi function, reversing words in a string, implementing substr, and going over tree-traversal algorithms again and again (recursive-type functions always gives me a lot of headache). The flight to Seattle from Vancouver was quite quick (around 40 minutes) but even in the plane, I would still try to solve more problems in my programming notebook.
I landed in Seattle at around 12:00 PM. Their airport is kind of big and so I had to take a shuttle train in order to get into the arrival area. After I arrived in the arrival area, I immediately picked up a cab that would take me to my hotel. The cab ride was around 35 minutes and so again, this gave me some time to go over some more programming problems.
It was very sunny when I arrived at the hotel - and when you live on the (north) west coast where it pretty much rains most of the time, you'll get to develop a much deeper appreciation of the sunny days like this. So after I stepped on the hotel lobby, I decided that my plan for today would be to go outside and walk for a few hours - buy a cheap swimming short (because the hotel has a Pool and a Jacuzzi!), eat out at that all-you-can eat Chinese joint, and visit the Microsoft campus where I will be having my interview. After I unpacked my stuff, I immediately headed out to enjoy the sunshine. Mind you, that AYCE Chinese joint was very good! Only 9.99 and the food selection was huge! You couldn't get anything like that here in Vancouver!
After I had my fill, I decided to head out and check the Microsoft campus. After 30 minutes of walking up north, I finally saw the Microsoft logo! And just like a tourist, I decided to snap a couple of pictures :) I was like a kid walking down a theme park. There were banners of Microsoft Surface everywhere. The ambiance felt like that of a University too. I was easily wowed by those Microsoft-branded shuttles and Priuses that go around their campus. And man, their campus is HUGE! There must have been like 70 buildings within that Campus! I instantly fell in love with the place and so I jokingly told to myself "Next month, I'm going to work here!".
But alas, as much as I wanted to enjoy more of that sunshine goodness, I had to go back to my hotel in order to go through some more coding problems. So after I found Building 111 where I will be initially interviewing, I began heading back into my hotel where I would spend 4 more hours of solving more programming problems. I went through some more problems about string manipulation as well as those related to arrays, stacks, and queues until I finally got really tired and hungry. It was already 8 PM and I haven't eaten my dinner yet. I wanted to eat nearby so that I can continue on with my study but I did not find any good food at all at the hotel and so I decided to go outside and head out to Denny's and just continue my study there while I was eating. On the way to Denny's, I met an Indian guy who asked me for directions to his house. I told him that I was new to this area too but luckily, I had saved Bellevue's map into my Android phone and so I was able to show him where he needed to go. We both headed down at the same direction since Denny's was close to where he was going and there, I have learned that it was his first day at Microsoft (jealous grin)! We chatted for a bit and he told me that I would do good in the interviews and that I should not worry about it at all - he sounded sincere and so that gave me a confidence boost! I told to myself that this was probably a good sign and that I was so lucky to have met him :) So after we parted ways, I went on to Denny's and ordered a country-styled steak and I continued to solve more programming problems while eating at Denny's.
I headed back to the hotel after 2 hours. After I arrived at the hotel, I did my routine exercise at the gym followed by a quick swim at the pool before I decided to finally hit the hay. It was a long day so I decided to set 3 alarms in case I overslept. But alas, all these adrenaline produced by my excitement kept me awake until 3:30 AM - so I decided to set one more alarm - just in case.
The Interview Day
Finally, the alarm went off and I was completely awake at 6:30 in the morning. I only had 3 hours of sleep but I felt great that day! I turned all of the alarms off, one by one, and then I decided to take a hot shower. I suddenly realized that I got so pent up in studying all sorts of programming problems that I forgot to think about the answer to one question that I knew would matter the most - and that is, "Why on earth do you want to become an SDET?". And so I spent some time digging deep into my subconscious while soaked in a hot tub until I found the answer that made me happy.After stepping out of the bath, I noticed that my interview clothes were a bit wrinkled and so decided to iron them out as I wanted to look good on my interview. I did a final check on the things that I will be bringing and after all of these were taken care of, I decided to head down to the lobby to get a light breakfast and there, I saw other Microsoft interview candidates! A few minutes after that, I headed out of the hotel and into Building 111 where I would have my first interview with Adam, my recruiter. All that beautiful sunshine from yesterday was nowhere to be seen that day - and I eventually would learn that it will be mostly just fog and an overcast weather for the rest of the week - "ah, back to the typical west coast weather" I told myself.
Normally, I'd be very nervous of an interview process of this magnitude which was about to take place - but since I prepared really hard for this, all of the nervousness that I was supposed to be feeling were replaced with excitement - "Aha, no more sweaty armpits!", I told myself :) I checked in at the lobby at around 8:00 AM and there, the receptionist gave me a sticky print-out with my name on it. I had an extra hour to burn as my interview with Adam was not until 9:00 AM and so I decided to look around their lobby for a bit. There must have been like 15 people in there waiting for their interviews too - some were going for internships and some were looking for full-time jobs.
They had one of the coolest lobbies that I have ever seen - lots of wacky chairs, Xbox 360 with kinect, guitar, and a drum kit, the old and the new Surface tablets, and of course, Nokia Lumias! As time went by, so did the number of applicants. They were slowly being fetched by their recruiters, one after another, where they will be briefed about how their entire day will proceed. Finally, at around 9:00 AM, Adam went down and then he said "Is there anybody here named Jim?".
1st Interview: Adam, the Technical Recruiter
Adam took me to the 2nd floor where his office was located. I was initially curious why I was not brought to those glass-walled offices at the lobby where most of the interviewers where briefed but that thought quickly disappeared. And so after reaching Adam's office, I said to myself, "The hardest and possibly longest interview of my entire life has officially begun".
Adam was a very nice person. He immediately put me into ease and assured me that Microsoft interviews are over-hyped by the Internet and that they are not actually that terrible. Indeed, at the end of the day, what he told me was completely true - but more on that later. Adam then told me, "So, you are interviewing for the SDET Lead position?" to which I responded, "No just for the SDET 2 position". Somebody probably made a mistake somewhere but I had a feeling at that time that it was probably one of those tests to see if you can catch that bug as this mistake was also present in the mail that Chelsea sent to me :) Adam then continued on with the discussion about what I should be expecting during that day. He told me that:
1. It's okay to not get the correct answers. Interviewers look more on your thought process and how you would break down and tackle unknown problems.
2. It's okay to say, "Sorry, I don't know the answer" as opposed to trying to come up with something that is not true.
3. Ask your interviewer a lot of clarifying questions. Some of the problems that they will be asking will be very ambiguous in nature in order to test if you are good in extracting necessary information to solve a problem.
After that, we did some trial runs about designing and testing a vending machine and how I would go about tackling this kind of problem statement. I provided him with my inputs and he was happy with it. Then shortly after, he went over the name of my interviewers. He initially gave me three names, wrote it at the back of his business card, and then he gave it to me. He told me to expect to get to around 3-5 interviews for the entire day and that usually, reaching five interviews is a very good sign. With a strong sense of urgency, getting 5 interviews would be one of my primary goals for the entire day.
He later asked me if there were any questions that I wanted to ask him. I told him:
1. On the scale of 1-10, how do you like working for Microsoft?
2. What's the work-life balance here like?
3. What do you for fun here at the office?
Adam went to great lengths in explaining the work-life balance at Microsoft. He carefully pointed out that lots of people are very passionate about their work that sometimes, they stay really late working in the office. However, he mentioned that management does not encourage it and that it is up to each individual to decide how they want to work.
We were running out of time so he decided to answer my other questions while we were walking down to the lobby to get me a ride to Building 84, where I will have my 2nd interview with Brendan, the SDET 2 guy. I thanked Adam and then he took off after saying "Good Luck with the Interviews!".
2nd Interview: Brendan, the SDET 2 guy
I took the Prius to Building 84 where I would be having my 2nd interview with Brendan. It took around 13 minutes before the shuttle arrived at Building 84 and so I had some time to chat with the driver. She told me how she loved living in the USA as compared to Vancouver where it was very difficult to find a high paying job.After the small chit-chat that we had, I arrived at Building 84. I thanked the driver and then I proceeded into the lobby where I was told to wait for Brendan. Shortly after, he picked me up and he brought me to his office. "Oh, another office" I told to myself. At this point, I started to wonder if all the Microsoft employees get to own their own office space.
Just like Adam, Brendan was a really nice guy too. And exactly just like Adam, he told me, "So, you are interviewing for the SDET Lead position.." to which I responded again, "No, it's actually just for an SDET 2 position!". This time, I was finally convinced that this was probably just an honest mistake and not a test :) We started off our conversation about why I wanted to become an SDET (aha!) and what my thoughts were with regards to testing. After a few more chitchat, I was finally asked to do my first board work. I was excited - I have been preparing exactly for this kind of challenge. I was raring to go.. before I started, he told me that he does not give problems requiring an "a-ha" moment to solve - everything is straightforward - no tricks required! I felt relieved after hearing him say that as I do not know a lot of tricks myself. After that disclaimer, he asked me what I wanted to do first, the testing question or the coding question. I picked the former first as I wanted to pace myself properly for the coding question. After hearing that, he drew a small box with an image and a description beside it and then told me, "So how would you test this?". I immediately asked a lot of clarifying questions about what this small box did, where does it get its content from, and things like that until I had enough information to describe how I would actually test the small box with a text and an image. After some more discussions, he made the scenario a little more complicated and so I asked more questions about it again. He seemed satisfied with the answer that I have provided and so we moved on to the coding question.
Brendan now asked me to find a number in an array with the most occurrence. Carefully, I outlined the steps that I needed to perform to solve the problem, introduced some use cases to validate the steps that I have just outlined, and asked him if it was okay to code it. Once I knew the steps, the coding was actually really simple. I was smiling while coding because in my mind, I thought that my "battle plan" actually works! After coding it, he asked me how I would test it. He also introduced a use case that I did not cover initially but I did not have enough time to code it as we only had 5 minutes left and so I just worked with him how the new interface for the function would look like. He seemed satisfied and after that, he concluded our interview.
He escorted me outside of his office and into a common area where he would fetch my 3rd interviewer of the day - Siva, the PM. After Brendan was gone, I did a mini-celebration for doing a good job at this interview by pumping my fist :) I was so happy with what I just did and moreover, delighted that my hard work has finally started to pay off.
3rd Interview: Siva, the PM
After a couple of minutes of wait, Siva finally came to pick me up. I have read from other people's blogs that Microsoft interviewers share their feedback immediately to the next interviewer in order to tailor their next interview questions on the potential weaknesses of the interviewee and that's probably why it took a couple of minutes before Siva came out. I thanked Brendan for interviewing me and then we proceeded directly to Siva's office. While on the way, I could not resist the temptation anymore about the office situation and so I asked him "So where are the cubes?" to which he responded "Oh, there are no cubes here, each employee gets his own office!". "Oh wow! Now that's actually cool!" I told him. Usually, managers and executives only get office spaces - but in here, they treat everybody equally! Later on, I would realize that I still preferred open cubes over offices simply because you get to talk to your colleagues a lot faster simply by sliding your chair into his desk :)Anyway, my 3rd interview with Siva started with the same pattern as with the 2nd interview by asking me why I wanted to become an SDET. I was just so thankful that I had thought about this question just a couple of hours just before I headed out for the interview :) After some more boiler plate questions, Siva discussed how the hierarchy works at Microsoft. Specifically, he pointed out that the PM / SDE / SDET triad does most of the grunt work at Microsoft. These three groups are tightly coupled together to complete a feature spec'ed by the PM. They don't have a separate group that will perform System or Integration test and so it is up to the SDETs to ensure that all of these bases are covered. At this point, I was just so excited about the amount of responsibility and accountability SDETs have at Microsoft that I could not help but smile like a kid while he was explaining these things to me.
As with the 2nd interview, Siva finally asked me to code something on the black board. This time, it was about finding a number in a circularly singly linked list. I immediately went on to outline the steps that I would take in order to solve this problem. I have also voiced out and identified why it is harder to search for a number in a circular linked list as opposed to a regular linked list. I struggled at the beginning to find a proper solution to the problem but I kept thinking out loud about all of the ideas that were going through in my mind until finally, I found a solution that works. He was okay with it and so I started to code it. He verified the code if it was correct and then he then asked me how to test it. My approach to testing these kinds of things was to categorize possible sets of test inputs as regular / expected values, unexpected / irregular values, and non-functional tests and so I always answered in that format. My thinking was that this structure was better as it was less hacky and it demonstrated understanding of how to properly partition test inputs. Siva seemed to be satisfied with the answers that I have provided to him. After that, he asked me if I had more questions and then he concluded the interview by sending me off to the same common area where I would wait for my 4th interviewer - Patrick, the guy with many roles.
4th Interview / Lunch: Patrick, the guy with many roles
Patrick was the guy that was going to take me to lunch and so I thanked Siva for a wonderful interview and then he was off. Patrick asked me if I wanted to drop off my bag to his office before we go to the cafeteria and so I said yes. We then proceeded to the Cafeteria which was close to Building 85. It took around 10 minutes for us to reach the cafeteria and so along the way, we chatted for a bit about how similar the weather is in Vancouver and Seattle but that it actually rains more in Seattle than in Vancouver.After we reached the cafeteria, my first impression was that it looked a lot like a university cafeteria! There are tons of food to choose from and the prices are not too bad at all! Unfortunately, the receptionist at Building 111 did not give me any food coupons and so Patrick had to pay my meal out of his own pocket. I lined up for the Asian restaurant as they seemed to be the fastest in serving food and I did not want Patrick to wait for me for too long. I ordered some noodles, rice, and a sesame chicken and after that, we looked for a space where we can chat some more. Patrick only ordered a soup and an apple and so that got me to think if I should have done the same just so I can keep up with our conversation. I've read in some blogs that they sometimes ask you to code in a tissue paper but luckily, I did not get to do that as I did not have a pen with me at that time :) And so we chatted a bit more about how its like living in Seattle, about the traffic in there, and how Seattle is a multicultural city. Then he went on to describe his current and past roles in Microsoft and man, I was just so amazed at how Patrick showed his deep passion just by the way that he talks about his previous roles.
As I had expected, I was not able to finish my meal as I was already full and so we decided to head over to Patrick's office where we would continue on with our conversation. He talked some more about his roles and why he decided to move to the test organization from dev and that got me really excited just by listening to him describing how badly he wants to impact the organization. One thing that got stuck in my mind was his definition of quality - which was, as he carefully put - "..the presence of what the customers want and the absence of what they don't want". "Nicely put!" I said silently to myself. I'll definitely be "borrowing" that definition of yours :)
Finally, it's down to coding time once again. This time, I was asked to merge two sorted singly-linked lists. And so once again, I outlined the steps that I would need in order to do the code properly and then once everything was clear, I started to code it. One consideration that I failed to think early on was that I should have just merged both the lists in place as opposed to creating a new list in memory and then assigning the values to each of the nodes since it was a linked list after all (toinks!). Nevertheless, I continued on with the naive approach. Patrick asked if there was a way to reduce the memory allocation (which was to actually not allocate a new Node in memory for each of the existing nodes) but I said that I wanted to finish first the naive solution first before optimizing it and so I cautiously went with it. In retrospect, maybe I should have gone with the optimized route since I know how to do it in the first place but I was being too careful at that time not to introduce serious bugs into my code and so I decided to stick on the safe side of things. After I had finished my coding, Patrick found a bug and he gave me a hint as to what that was. I immediately found it but I got a little confused as to how to fix it. I start to panic a little but then I remembered one of the bullet points in my "battle plan": think out loud - and so I did just that. I was able to fix the problem and Patrick seemed to be okay (but maybe not too happy) with the final solution. We did not go back to try and optimize the function that I had just wrote and so I felt bad about not getting the chance to improve my code. After that, we proceeded on to the testing question.
Patrick drew a box on the whiteboard that looked like a vending machine - and indeed, it was a vending machine! I've practiced this problem with Adam just this morning and so I already knew some of the things that I needed to look for when testing this kind of machine. Patrick focused more on how do I perform and coordinate System and Integration testing with other groups if they were responsible for manufacturing some components of the vending machine. I answered this question with confidence and he seemed to be satisfied with my response. After a few more questions, he concluded the interview. This was the longest interview among my list, exactly two hours long.
At this point, Patrick was the last on my list. I wanted the interview to continue as I felt that I have done a good job so far.. and well, it did continue! Woohoo :) He wrote down another name on Adam's business card - and this time, it was Luis, the Principal in Test. Patrick escorted me back to Building 85's lobby where I would have a 30-minute break before my interview with Luis resumes. I thanked Patrick for the interview and then he was off.
5th Interview - Luis, the Principal inTest
At this point, my body was already starting to feel a little fatigued and I am kind of feeling a little dizzy already. Maybe it was my lack of sleep that caused this or maybe it had just been a long day for me. So I decided to spend my 30-minute break just sitting in the lobby and looking at my little boy's cute pictures on my Android phone to help me relax.A couple of minutes more, Luis came down to pick me up. He then promptly asked me - so how are you feeling? To which I responded - "A little tired :)". Now a second after I said that to Luis, I wanted to hit myself. "Toinks! Why would I say that I'm tired! C'mon, show your enthusiasm!" - I hastily said to myself silently. So I shook of the tiredness that I have been feeling, went on to walk for a few more minutes and then finally, we reached Luis' office. Now this office was a little different from the previous offices that I've been through - this was a corner office with a lot of huge windows and a lot of natural light coming in. "Ah, so people up in the hierarchy gets a corner office!" I told myself.
And so we started of chatting about my experience at Nokia. As with the others, Luis seemed very interested too with the approaches that I did in testing UI components. I understand the pain in testing UI and I guess they kind of felt that too within their group. After some more chit-chat, he then asked me to stand up and code another problem for him. "Have you ever done strtok?" he asked - to which I answered "I know how it works.". I gave him a brief explanation as to how it works and then he expanded on it, citing the exact requirements that he had with regards to how he wanted the function to behave. Once I fully understood what he wanted, I again immediately outlined the steps that I needed to code this function. This took a bit of time as there were a lot of edge cases and design considerations that I needed to consider before I started to do my coding. This time, I also made sure I considered the performance of the function by storing the delimiters as look-up values in an array. As this function was tricky, I tried my best not to get lost in the process while coding it by talking out loud and strictly following the steps that I have outlined on the whiteboard. I was able to finish the code and Luis did not have any objections with it although I am pretty sure I probably made a mistake or two along the way regarding those dreaded "+1 / -1 errors" as my function had some of those :) Luis then asked me how to test the function that I had just wrote and again, I answered the question using my approach of partitioning the possible test inputs as I have described in my previous interviews. I also made certain to mention that my function will have problems in processing multi-byte characters as well as if it was used in a threaded environment as I used a shared resource that was not protected by a mutex or a semaphore.
After some more questions, he concluded the interview. He seemed to be happy and without hesitation, he said that there was one more person that he wanted me to meet. "5 interviews.. I have reached my goal.. I am so happy!" - I said to myself. But I did not want to let my guard down just yet. Was there another coding problem that I needed to solve? Or perhaps a puzzle problem? Come to think of it, I have not been asked why manholes are round or how the hell would I move mount Fuji. Well, I was about to find out the answer to that soon enough. I thanked Luis for a great interview and then Greg picked me from the lobby and took me to his office where I would have my last interview of the day.
6th and Final Interview - Greg, the Director in Test
On the way to his office, Greg asked my how I was feeling and to that, I answered "Still surviving :)". He smiled and said, "Well, you are almost there!". After that exchange, I just felt that I gave another stupid answer. Toinks! I should have told him about how interesting my entire day has been so far (which I truly believe was a very interesting day mind you!) but instead, I just caved in to my tiredness and let my body do the talking for me. I tried to shake off that mistake in the hopes of lifting up my spirit again. Finally, we arrived at Greg's office.Consistent to my observation, Greg was pretty up in the hierarchy and so he had this very nice corner office with lots of windows on it. Immediately, I noticed that he did not have an empty space on his whiteboard for me to write code - unlike the 4 previous interviewers before him - and so I said to myself, "No more coding.. finally". He quickly confirmed what I had been thinking and then I just smiled. What went on with this final interview was a very interesting conversation about the lessons that I have learned throughout my entire career. This was probably an exercise to determine my self awareness and how I quickly I can learn out of the previous mistakes and successes that I have encountered throughout my career. Come to think of it, whenever the previous interviewers asked me how my day went, I would just say, "Okay", or "I'm tired", or "Surviving" and so I felt that I was not able to provide them with a glimpse of how I thought my day really went! I thought to myself that this was my last chance to demonstrate my self-awareness and so I poured out every ounce of my energy, consistently digging deep into my soul and subconscious into answering Greg's insightful questions in the hopes of letting him discover that yes, I do have great self awareness!
The interview went on for a couple of minutes more and I am not sure how long that last interview was to be honest as I was enjoying myself too much to notice what time it was. Before Greg concluded the interview, he asked if I have any questions at all about any of these. At this point, my brain was just completely spent and so I just said, "No, I think I have asked all of the questions that I needed to ask.". I had just ran out of gas and I felt completely spent so I just left it at that. After Greg concluded the interview, he escorted me out of his office and into the lobby. I thanked him for a wonderful interview and then after a firm handshake, it was finally over. "I have survived the interviews - mission accomplished" - I said to myself. I wanted to do my celebratory jump and shout as loud as I can but I decided to do it outside the office for the sake of self-preservation :)
Victory! :) |
The Aftermath
I went to the reception to see if I can get one of those Microsoft-branded Prius to take me back to Building 111. The receptionist was very kind and she made sure that I would get one as quick as possible. She mentioned that they prioritize job interviewees for pick-up and so I was happy to hear that. Microsoft does go a very long way of impressing their potential candidates and so far, I am sold! I finally headed out of Building 85 and I proceeded to the waiting shed where I waited for the Prius to come pick me up. It took a couple of minutes for the Prius to arrive but finally, I managed to get picked up, together with another candidate who had just finished interviewing for a PM intern gig. I asked how her day went and like me, she said she was completely tired. She had 4 interviews, she mentioned. I said I had 5 plus the recruiter. It took around 15 minutes before we arrived at Building 111 and once we were there, we said our goodbyes. She proceeded back to Building 111. Adam told me that I did not have to meet him back at Building 111 and that he should just be calling me sometime in the next 2 weeks.With that, I took a last look at the Microsoft building, thanked God for a very wonderful day, and then I headed back home. On my way back, I did not forget to shout as loud as I can and jump as high as I can to express my happiness of how things just went. Did I meet my goal? You bet! I got 5 interviews, I did not embarrass myself in front of these wonderful interviewers, my "battle plan" worked, and I learned a lot more things within a week than I could have ever imagined! I did some silly mistakes too that I could have easily prevented! I fought to prove to myself that I can do it, just like any other people, and not to compete with others - and maybe that would be my undoing - but I was happy nonetheless. But even if I do not get that gig that I wanted at Microsoft, that would be okay (although I would probably be heartbroken for the first couple of months :) ) because I personally got a lot out of the interviewing process than I could have ever imagined and I am just so thankful that I went on with the interview and persevered!
As I walked further away from the Microsoft campus, "illusions of grandeur" suddenly started to float around my mind. I imagined myself actually working there everyday, eating at their cafeteria, indulging myself with the unlimited soda and milk that they have in their fridge, having my own office space, riding those Microsoft-branded shuttle buses, and of course, working with these great people that I had just the privilege of interviewing with! "Ah, that would be nice" I muttered. But I immediately snapped that train of thought away from my mind as I did not want to think that far ahead. I shifted my focus on how I should be celebrating today's big victory and so after I arrived back at the hotel, I called my wife using Facetime and there, I shared with her the wonderful experience that I just had. She was very happy - and I too was happy as I get to see my cute little baby boy once more. After the call, I went to the same AYCE Chinese buffet to try out their dinner special and after I had my fill, I went back to the hotel, had a nice swim and a rest at the Jacuzzi, watched a couple of episodes of 30 Rock on Netflix, and then I finally called it a day.
The morning finally came when I fly back to Vancouver. I still can't believe that the interview was finally over. "Did I just go through that very tough interview and survived to live the tale?" I said to myself. "Yes I just did that didn't I?" I again told myself, with a small grin in my face. The weather was still the same that day. Lots of fog covered the airport and that proved to be fatal as my flight was delayed for 4 hours because of the fog. After some lengthy delay, I finally got to board the plane back to Vancouver and once I got home, I immediately hugged my wife and my baby boy.. and I said to them, "I did it! I survived!" :)
Update
Well, I guess the only question that was left was.. "Did I get the job?" ..and the answer to that was.. No :( Adam contacted me a week and a half later about how the interview went. He mentioned that I did exceedingly well with my coding, design, and test skills and that they are top notch. However, he struggled to explain why I did not get the offer as he too was stumped by the decision but he mentioned that it ultimately boiled down to me not being able to demonstrate enough passion about the things that I did in the past. He also mentioned that he wanted to continue working with me in finding the right team as he believed that I have what it takes to work at Microsoft and that this time was probably just a case of wrong chemistry. I was happy that it was not my technical skills that got me but I was also equally disappointed of having to fall short of a job offer at Microsoft as I felt that it went really well and that I have established a really good connection with the team that I was interviewing with. I consider myself very passionate about technology and I am always excited about hard challenges and new opportunities but I was pretty disappointed that the hiring group did not see that in my answers. Maybe I probably need to work on my communication skills more - or as Adam said, maybe this is just the case of me interviewing with the wrong team. In any case, this is something that I would need to pay attention to in the future.So there you have it! I feel that even though I did not get the job at Microsoft, I still consider myself lucky and blessed as I have learned a lot from this experience. Now, I can finally say that yes, Microsoft interviews are not that scary after all :)