<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2786781062557725141</id><updated>2012-01-11T16:12:29.644-08:00</updated><category term='microsoft'/><category term='interview'/><category term='wcf performance tcp http &quot;named pipes&quot;'/><category term='humor translation'/><category term='wcf performance tcp http &quot;named pipes&quot; compression IIS'/><category term='phone interview'/><title type='text'>My reflections on .NET and other technical things...</title><subtitle type='html'>I decided that it was time to start my own blog related to Microsoft.NET, programming and everything else technical -- not that there is a lack of such blogs on the Internet.  Primarily, this blog reflects my personal journey in the area of technology.  Please feel free to post your comments and correct me when I'm wrong.  Thanks for visiting!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://igorondotnet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://igorondotnet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Igor</name><uri>http://www.blogger.com/profile/14722584357265523553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2786781062557725141.post-2512094630513229575</id><published>2010-02-14T21:13:00.000-08:00</published><updated>2010-02-14T22:33:42.677-08:00</updated><title type='text'>Microsoft Interview (February 5, 2010)</title><content type='html'>On February 5, 2010 I interviewed with Microsoft (Bing specifically) for a SDET position. I wanted to share my interview experience with those who have asked me to let them know how the interview went and with all those who come across my blog (perhaps, in preparation for an interview with Microsoft as well :) ).&lt;br /&gt;&lt;br /&gt;After having a technical phone interview (technical screening) with a SDET in Bing, I was notified that Microsoft would like to interview me in person in Seattle (all expenses paid, of course). The airfare, hotel, and a rental car were all arranged by Microsoft. There was a bit of confusion about the fact that I was not a local candidate -- somehow the system did not indicate that I lived outside of the Seattle area, so I had to follow up about the travel arrangements :). Otherwise, the preliminaries were straightforward.&lt;br /&gt;&lt;br /&gt;I arrived in Seattle on February 4th, picked up the rental car and checked into the hotel. Outside of lunch, dinner, and a quick stop by the grocery store to buy some water for the stay, I did not plan anything else. I was able to get about 7.5-8 hours of sleep that night.&lt;br /&gt;&lt;br /&gt;My interview started at 10:30am on Friday. I arrived at about 10:20am and parked across the street from Bellevue City Center (that's the 25-story Microsoft building in downtown Bellevue). I let the receptionist know that I have arrived and she informed me that the recruiter would see me shortly. The recruiter came a few minutes later and took me to a conference room. She did an excellent job of explaining the interview process to me and did all she could to make me comfortable. She asked me some questions about my current job, my responsibilities, etc. The question of salary expectations also came up. She then gave me a sheet that included the interview schedule and explained to me that if the team feels good about me as a candidate, more interviews might be added after the initial three. The first interview was with an experienced SDET, the second and third were with lead SDETs.&lt;br /&gt;&lt;br /&gt;The first interview was interesting. After a few quick questions, I was tasked with testing a function that returned a random number. This was quite interesting: input, range, distribution testing, etc. I also mentioned other types of testing that should be done: concurrency, performance, etc. That probably took about 20-25 minutes. Afterwards, I was asked to write code to traverse a matrix in a zig-zagged manner as shown in the image below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_S5gY4z_VnXE/S3jg6XQ69uI/AAAAAAAADKc/jUe--YMAAaI/s1600-h/zigzagmatrix.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 156px;" src="http://2.bp.blogspot.com/_S5gY4z_VnXE/S3jg6XQ69uI/AAAAAAAADKc/jUe--YMAAaI/s320/zigzagmatrix.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5438343843331897058" /&gt;&lt;/a&gt;&lt;br /&gt;It took me a few minutes to figure out the algorithm by thinking out loud and asking questions of the interviewer. The algorithm turned out be very straighforward, so I started coding. Overall, this went well although there were several times I had to make changes based on the interviewer's hints and observations.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My next interview was over lunch. We went to &lt;a href="http://www.elgaucho.com/elgaucho/_bellevue/about.htm"&gt;El Gaucho&lt;/a&gt;, which is an upscale restaurant on the first floor of Bellevue City Center. After some casual talk and placing the order, we got down to business. I was asked how I would go about testing a card-reading system (such as one used by Microsoft employees to get into buildings). This was quite interesting. We covered a lot of testing scenarios (invalid input, valid input, power failure, interference, distance, velocity, direction, external conditions, scalability, performance, concurrency, etc.) and I'm sure there are lots more cases that we did not cover. This really probed my testing mindset and it revealed instances were I was not approaching testing methodically. Overall, this was a great learning experience.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The lunch interview actually went thirty minutes longer than planned so there was a little bit of schedule readjustment.  The next (third) interview was changed to last 30 minutes and, at that point I was informed that I would have an interview afterwards as well with the manager. The third interview was the least enjoyable. The interviewer came across as somewhat condescending and impatient -- I have to presume that this was intentional to see how I would do under those conditions. The interviewer asked me about my experience and noted that I had some senior experience (including an architect position with my previous employer). Some of the comments almost seemed to indicate that the interviewer did not believe that the experience was credible...  Afterwards, I was asked what data/metadata would be useful in making multimedia search results more relevant/useful to the users of Bing. This was interesting although it also revealed how little I knew about this area of Bing (in fact, I was not familiar with Bing's multimedia search feature at all). After this, the interviewer asked me to traverse a binary tree in a breadth-first fashion. I got stumped on this one. I started talking about the drawbacks of the breadth-first traversal and that depth-first is better in terms of memory utilization. I had a mental block actually figuring out the algorithm for breadth-first traversal -- not that the algorithm was hard (hint: using queue for breadth-first as opposed to a stack for depth-first traversal) but it was one of those moments that I just wasn't making the connection :(.  Anyway, I didn't do well on this interview...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My final interview was with the manager.  I was not asked any technical questions although there were a lot of questions about the SDLC, estimating, my strengths, weaknesses, what I like to do, etc.  By this time, I had been interviewing for at least 5 hours and was getting quite tired.  Of course, this is the point where I had to be at my best since the manager is the primary decision maker in whether to offer me the job or not. In retrospect, I wish I had thought through some of these questions better instead of having to come up with answers on the spot after my brain had been grilled for several hours...  I would say this interview went so-so.  It was close to 4pm by the time I was finished and headed back to the hotel.  My final thoughts as I was headed toward the car were: "Is this job worth the exhaustion I'm experiencing now?".  In retrospect, I believe it was a great experience and definitely worth the exhaustion...  I'm actually still waiting to hear back from the recruiter whether Microsoft would offer me the job or not.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2786781062557725141-2512094630513229575?l=igorondotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorondotnet.blogspot.com/feeds/2512094630513229575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2786781062557725141&amp;postID=2512094630513229575' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/2512094630513229575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/2512094630513229575'/><link rel='alternate' type='text/html' href='http://igorondotnet.blogspot.com/2010/02/microsoft-interview-february-5-2010.html' title='Microsoft Interview (February 5, 2010)'/><author><name>Igor</name><uri>http://www.blogger.com/profile/14722584357265523553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_S5gY4z_VnXE/S3jg6XQ69uI/AAAAAAAADKc/jUe--YMAAaI/s72-c/zigzagmatrix.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2786781062557725141.post-4618328178244363232</id><published>2009-10-26T20:26:00.000-07:00</published><updated>2009-10-26T20:28:15.678-07:00</updated><title type='text'>Interview story from salary.com</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 12px; line-height: 14px; "&gt;&lt;div&gt;This is hilarious!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;An applicant forgot he was chewing gum about halfway through the interview. He took the gum out of his mouth and attempted to hand it to me or the other manager while apologizing for forgetting and asking us if we wanted to take the gum from him until the end.&lt;/blockquote&gt; &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2786781062557725141-4618328178244363232?l=igorondotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorondotnet.blogspot.com/feeds/4618328178244363232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2786781062557725141&amp;postID=4618328178244363232' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/4618328178244363232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/4618328178244363232'/><link rel='alternate' type='text/html' href='http://igorondotnet.blogspot.com/2009/10/interview-story-from-salarycom.html' title='Interview story from salary.com'/><author><name>Igor</name><uri>http://www.blogger.com/profile/14722584357265523553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2786781062557725141.post-2166379299153640777</id><published>2009-09-09T17:12:00.000-07:00</published><updated>2009-09-09T17:20:46.086-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor translation'/><title type='text'>I got a great job offer...</title><content type='html'>&lt;p&gt;I received this email today. Enjoy :)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;Subject: Associate Manager USA&lt;br /&gt;&lt;br /&gt;Hello competitor,&lt;br /&gt;&lt;br /&gt;We are glad to report you that in our stable company, the vacancy of transaction manager is opened. The world is smashed by a crisis, people lose their workplaces, and many companies are being closed. Our company offers a product in the field of services; therefore the demand on our suggestions remains even in so difficult period for the world economy.&lt;br /&gt;&lt;br /&gt;The followings factors are required from you:&lt;br /&gt;&lt;br /&gt;- industriousness;&lt;br /&gt;&lt;br /&gt;- efficiency;&lt;br /&gt;&lt;br /&gt;- to be the habitant of the USA;&lt;br /&gt;&lt;br /&gt;- command aspiring to success;&lt;br /&gt;&lt;br /&gt;- to have sure vital position;&lt;br /&gt;&lt;br /&gt;- to have initial PC skills&lt;br /&gt;&lt;br /&gt;- you must be more senior than 21.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NO INVESTMENTS FROM YOU ARE REQUIRED, you will be fully acquainted and trained for discharging of your duties. We need valuable staff. We will teach even a janitor to be a businessman!&lt;br /&gt;&lt;br /&gt;Do not lose the chance of fully legal earnings with a dynamically developing company. We will help you to build a career which you always dreamed about. Your chance is waiting for you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We wait for your resumes to the address [obscured]@gmail.com of our department of personnel.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With kind regards,&lt;br /&gt;&lt;br /&gt;-----------------------------------------&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;I have to say it's quite hilarious with perhaps "We will teach even a janitor to be a businessman" sentence being the only reasonably worded one. I especially like "The world is smashed by a crisis, people lose their workplaces, and many companies are being closed..."&lt;/p&gt;&lt;p&gt;Automated translation still has a long way to go :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2786781062557725141-2166379299153640777?l=igorondotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorondotnet.blogspot.com/feeds/2166379299153640777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2786781062557725141&amp;postID=2166379299153640777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/2166379299153640777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/2166379299153640777'/><link rel='alternate' type='text/html' href='http://igorondotnet.blogspot.com/2009/09/i-got-great-job-offer.html' title='I got a great job offer...'/><author><name>Igor</name><uri>http://www.blogger.com/profile/14722584357265523553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2786781062557725141.post-2065042686471273875</id><published>2009-09-01T20:54:00.001-07:00</published><updated>2009-09-01T21:10:24.597-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wcf performance tcp http &quot;named pipes&quot; compression IIS'/><title type='text'>WCF Performance (continued)</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_S5gY4z_VnXE/Sp3soCH4prI/AAAAAAAADKI/391jPfYaOCk/s1600-h/4kbresponse.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 294px;" src="http://4.bp.blogspot.com/_S5gY4z_VnXE/Sp3soCH4prI/AAAAAAAADKI/391jPfYaOCk/s320/4kbresponse.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5376713702659106482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_S5gY4z_VnXE/Sp3sizWwvaI/AAAAAAAADKA/flEwPvKX45U/s1600-h/1bresponse.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 292px;" src="http://3.bp.blogspot.com/_S5gY4z_VnXE/Sp3sizWwvaI/AAAAAAAADKA/flEwPvKX45U/s320/1bresponse.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5376713612795624866" /&gt;&lt;/a&gt;&lt;br /&gt;This evening I was trying to determine if compression options in IIS had any significant effect on WCF performance.  In my four tests, there were two variables: message size and compression on/off setting.  For message size, I used 1 byte and 4KB settings.  The binding configuration for all endpoints consisted of unsecured communication (security mode="None" and encryption and signing turned off).  The response consisted of randomly generated bytes.  Compression was detrimental to performance for larger messages (I attribute this to the randomness aspect) and seems to not have any adverse effect on small messages (I was a bit surpised about the latter).  Perhaps, for a more realistic test, tomorrow I will try a sample XML message instead of random bytes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2786781062557725141-2065042686471273875?l=igorondotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorondotnet.blogspot.com/feeds/2065042686471273875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2786781062557725141&amp;postID=2065042686471273875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/2065042686471273875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/2065042686471273875'/><link rel='alternate' type='text/html' href='http://igorondotnet.blogspot.com/2009/09/wcf-performance-continued.html' title='WCF Performance (continued)'/><author><name>Igor</name><uri>http://www.blogger.com/profile/14722584357265523553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_S5gY4z_VnXE/Sp3soCH4prI/AAAAAAAADKI/391jPfYaOCk/s72-c/4kbresponse.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2786781062557725141.post-6659626842127454038</id><published>2009-08-31T20:37:00.000-07:00</published><updated>2009-08-31T20:53:21.305-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wcf performance tcp http &quot;named pipes&quot;'/><title type='text'>WCF TCP, HTTP, and Named Pipes Performance Comparison</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_S5gY4z_VnXE/SpyXZAOSfoI/AAAAAAAADJ4/d8eHbhAn5wI/s1600-h/wcfperformance.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 232px;" src="http://1.bp.blogspot.com/_S5gY4z_VnXE/SpyXZAOSfoI/AAAAAAAADJ4/d8eHbhAn5wI/s320/wcfperformance.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5376338510985985666" /&gt;&lt;/a&gt;&lt;br /&gt;I wanted to see for myself performance of wsHttp, netTcp, and netNamedPipes end point configurations.  I put together a quick test application.  The test consisted of a warm-up (10 calls to each end point), followed by 5000 calls (with channel being opened and closed on each call).  The first test used default binding configuration for each end point while the second test consisted of unsecured calls (security mode set to "None" and encryption and signing disabled).  The results are not phenomenal -- although I was a bit surprised that wsHttp binding performed almost as well as netTcp and netNamedPipes when the security stack was removed from the communication channel.  Also, in unsecured mode, named pipes communication was noticeably faster than tcp.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2786781062557725141-6659626842127454038?l=igorondotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorondotnet.blogspot.com/feeds/6659626842127454038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2786781062557725141&amp;postID=6659626842127454038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/6659626842127454038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/6659626842127454038'/><link rel='alternate' type='text/html' href='http://igorondotnet.blogspot.com/2009/08/wcf-tcp-http-and-named-pipes.html' title='WCF TCP, HTTP, and Named Pipes Performance Comparison'/><author><name>Igor</name><uri>http://www.blogger.com/profile/14722584357265523553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_S5gY4z_VnXE/SpyXZAOSfoI/AAAAAAAADJ4/d8eHbhAn5wI/s72-c/wcfperformance.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2786781062557725141.post-3015631785054296157</id><published>2008-08-17T10:45:00.001-07:00</published><updated>2011-09-20T19:11:09.695-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interview'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='phone interview'/><title type='text'>Microsoft Technical Phone Interview 8/14/2008</title><content type='html'>1/12/2009 Update: Theron Welch (Software Mentor at Microsoft) offered his thoughts regarding this post &lt;a href="http://www.derwanderer.net/2009/10/15/interviews-at-ms/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On 08/14/2008 I had a technical phone interview with Microsoft Dynamics. It was perhaps my worst interview experience :(... To facilitate the interview process, a LiveMeeting meeting was set up as well.&lt;br /&gt;&lt;br /&gt;The interview was scheduled to begin at 6pm CST and last an hour. At about 5:15pm, I powered my notebook to make sure that I wouldn't have any Windows updates asking me to restart the computer during the interview (after all, I had not checked for updates the day prior and it was the week of Patch Tuesday). Sure enough, as soon as Windows started, updates were automatically installing and 15 minutes later I was rebooting. By 5:35pm, I launched LiveMeeting and shortly thereafter I was online and ready.&lt;br /&gt;&lt;br /&gt;I received the phone call just a minute or two after the scheduled start time. I'm not sure whether the proper etiquette allows me to reveal the name of my interviewer or not, so I will withhold the name. The interviewer had a pleasant demeanor although I had difficulty understanding him because of a somewhat strong Asian accent (I would guess Indian). [This is probably a good thing because that would prepare one for working at such diverse workplace as Microsoft :) ]. This was further aggravated by phone interference that was mostly resolved after the interviewer called me back. Initially, I had a bluetooth headset so that both of my hands would be uninhibited but with poor quality of phone reception I switched to my handset to remedy that. So, I ended up spending most of the interview holding my handset using my right shoulder as I needed both of my hands to type.&lt;br /&gt;&lt;br /&gt;After exchanging greetings, the interviewer asked me some questions about what I had been working on lately and the types of applications that I was working with. After that, he asked me to write some code. I opened Notepad and shared it via LiveMeeting. I was asked which programming language I preferred, to which I emphatically replied, "C#". The interviewer asked me if I could write C++, which I declined since I had not written any C++ code in more than 7 years (since college). I was then asked to write a function to reverse a singly-linked list.&lt;br /&gt;&lt;br /&gt;By this point, I was already somewhat unsettled as I was not mentally prepared to write code using Notepad while someone else was watching and potentially scrutinizing my every key stroke. I started writing the function by assuming that there is a LinkedList and a LinkedListNode definition. I verbalized my assumption and was asked to write the class definition. I created the two definitions and then said that I probably did not need a definition for LinkedList since having a reference to the first node was sufficient to work with a linked list. The interviewer asked why I would want a LinkedList defined, to which I replied that LinkedList would contain helper methods (I also alluded to the fact that the generic linked list implementation in .NET 2.0 had a class definition for LinkedList). What I didn't say was that the "Reverse" function should probably be encapsulated within the LinkedList class.&lt;br /&gt;&lt;br /&gt;Then, I moved on to implementing the function. By this point, I was quite unsettled... I have never written code to reverse a linked list but I didn't think it would be challenging. As I got to my implementing my loop, I began to panic... Questions like "Is it as easy as I think it is or is there a catch?", "Do I need an inner loop?" and "Do I need only two variables or three?" went through my mind. I was verbalizing some of my thoughts processes, which made me even more unsettled because I knew that everything I said could count against me. I spent more than 30 minutes (I didn't time it but I think it might have been close to 45-50) working on the function. By 6:50pm, I knew I wouldn't finish because I still had to step through my code to make sure that it was working correctly (and that takes longer than using VS debugger!). Roughly at 7:10, the interview ended. The interviewer said the recruiter would follow up with me.&lt;br /&gt;&lt;br /&gt;I was distraught... I couldn't solve a fairly straightforward problem! I wouldn't be surprised if I end up on Microsoft's "cannot-solve-a-simple-problem" list :).&lt;br /&gt;&lt;br /&gt;I had dinner while still working on the problem mentally. After relaxing a little bit, I went back to the problem. I decided to implement the same algorithm as I was working on during the interview. I spent about 5-10 minutes drawing the solution on paper before writing any code (which I should have done during the interview but I felt really awkward doing it since the interviewer couldn't see me drawing -- I felt compelled to type something to let the interviewer know that I haven't given up). I also opened Visual Studio so that I could actually run and step through the code. In about 20-30 minutes I had the program finished and tested using a simple console application.&lt;br /&gt;&lt;br /&gt;I thought I'd post my code here (please feel free to comment on it):&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: csharp"&gt;class Program&lt;br /&gt;{&lt;br /&gt;    static void Main(string[] args)&lt;br /&gt;    {&lt;br /&gt;        // create a test list&lt;br /&gt;        LinkedList list = new LinkedList();&lt;br /&gt;        for (int i = 1; i &lt;= 10; i++)&lt;br /&gt;        {&lt;br /&gt;            LinkedListNode node = new LinkedListNode();&lt;br /&gt;            node.Value = i;&lt;br /&gt;            list.AppendLast(node);&lt;br /&gt;        }&lt;br /&gt;        // print list before reversal         &lt;br /&gt;        LinkedListNode currentNode;&lt;br /&gt;        Console.WriteLine("List before reversal:");&lt;br /&gt;        currentNode = list.First;&lt;br /&gt;&lt;br /&gt;        while (currentNode != null)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(currentNode.Value);&lt;br /&gt;            currentNode = currentNode.Next;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        Console.WriteLine();&lt;br /&gt;        list.Reverse();&lt;br /&gt;&lt;br /&gt;        // print list after reversal              &lt;br /&gt;        Console.WriteLine("List after reversal:");&lt;br /&gt;        currentNode = list.First;&lt;br /&gt;&lt;br /&gt;        while (currentNode != null)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(currentNode.Value);&lt;br /&gt;            currentNode = currentNode.Next;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        Console.WriteLine("Press ENTER to end program");&lt;br /&gt;        Console.ReadLine();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public class LinkedList&lt;br /&gt;    {&lt;br /&gt;        public LinkedList()&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private LinkedListNode _firstNode;&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;              &lt;br /&gt;        /// Gets the first node in the list.              &lt;br /&gt;        /// &amp;lt;/summary&amp;gt;              &lt;br /&gt;        public LinkedListNode First&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return _firstNode;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;              &lt;br /&gt;        /// Appends the node at the beginning of the list.              &lt;br /&gt;        /// &amp;lt;/summary&amp;gt;              &lt;br /&gt;        /// &amp;lt;param name="node"&amp;gt;The node to append.&amp;lt;/param&amp;gt;              &lt;br /&gt;        public void AppendFirst(LinkedListNode node)&lt;br /&gt;        {&lt;br /&gt;            if (_firstNode == null)&lt;br /&gt;                _firstNode = node;&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                node.Next = _firstNode;&lt;br /&gt;                _firstNode = node;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;              &lt;br /&gt;        /// Appends the node at the end of the list.              &lt;br /&gt;        /// &amp;lt;/summary&amp;gt;              &lt;br /&gt;        /// &amp;lt;param name="node"&amp;gt;The node to append.&amp;lt;/param&amp;gt;              &lt;br /&gt;        public void AppendLast(LinkedListNode node)&lt;br /&gt;        {&lt;br /&gt;            // if the list is empty, set the first node                    &lt;br /&gt;            // and do nothing                    &lt;br /&gt;            if (_firstNode == null)&lt;br /&gt;                _firstNode = node;&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                LinkedListNode currentNode = _firstNode;&lt;br /&gt;&lt;br /&gt;                // get to the last node                          &lt;br /&gt;                while (currentNode.Next != null)&lt;br /&gt;                    currentNode = currentNode.Next;&lt;br /&gt;&lt;br /&gt;                // currentNode is now referencing the last node                          &lt;br /&gt;                currentNode.Next = node;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Reverses the list so that the last node becomes the first         &lt;br /&gt;        /// node in the list.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        public void Reverse()&lt;br /&gt;        {&lt;br /&gt;            LinkedListNode currentNode = _firstNode, tempNode = null, firstNode = null;&lt;br /&gt;&lt;br /&gt;            // traverse and reverse             &lt;br /&gt;            while (currentNode != null)&lt;br /&gt;            {&lt;br /&gt;                tempNode = currentNode.Next;&lt;br /&gt;                currentNode.Next = firstNode;&lt;br /&gt;                firstNode = currentNode;&lt;br /&gt;                currentNode = tempNode;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            // set the first node             &lt;br /&gt;            _firstNode = firstNode;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public class LinkedListNode&lt;br /&gt;    {&lt;br /&gt;        public LinkedListNode()&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private int _value;&lt;br /&gt;        private LinkedListNode _next;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        public int Value&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return _value;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                _value = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public LinkedListNode Next&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return _next;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                _next = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2786781062557725141-3015631785054296157?l=igorondotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://igorondotnet.blogspot.com/feeds/3015631785054296157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2786781062557725141&amp;postID=3015631785054296157' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/3015631785054296157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2786781062557725141/posts/default/3015631785054296157'/><link rel='alternate' type='text/html' href='http://igorondotnet.blogspot.com/2008/08/microsoft-technical-phone-interview.html' title='Microsoft Technical Phone Interview 8/14/2008'/><author><name>Igor</name><uri>http://www.blogger.com/profile/14722584357265523553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
