<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:dtvmedia="http://participatoryculture.org/RSSModules/dtv/1.0"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>VoltInsider</title>
	<atom:link href="http://voltinsider.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://voltinsider.com</link>
	<description>Job information for engineers who work for Volt Technical Resources in Redmond, WA</description>
	<lastBuildDate>Sun, 05 Sep 2010 16:41:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/7.0" -->
		<copyright>&#xA9; 2003-2006</copyright>
		<managingEditor>voltinsi@voltinsider.com ()</managingEditor>
		<webMaster>voltinsi@voltinsider.com</webMaster>
		<category></category>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>Job information for engineers who work for Volt Technical Resources in Redmond, WA</itunes:summary>
		<itunes:author></itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name></itunes:name>
			<itunes:email>voltinsi@voltinsider.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://voltinsider.com/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://voltinsider.com/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>VoltInsider</title>
			<link>http://voltinsider.com</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>The Virtual Override Interview Question</title>
		<link>http://voltinsider.com/?p=466</link>
		<comments>http://voltinsider.com/?p=466#comments</comments>
		<pubDate>Sun, 05 Sep 2010 16:41:44 +0000</pubDate>
		<dc:creator><ADMINNICENAME></dc:creator>
				<category><![CDATA[Interviewing]]></category>

		<guid isPermaLink="false">http://voltinsider.com/?p=466</guid>
		<description><![CDATA[If you are in a job interview at Microsoft, you are likely to run into many interview questions related to object oriented programming. One of the more common of this type of question runs along the lines of, &#8220;What is the virtual-override mechanism?&#8221; Strictly speaking this is a C# language construction, but since C# dominates [...]]]></description>
			<content:encoded><![CDATA[<p>If you are in a job interview at Microsoft, you are likely to run into many interview questions related to object oriented programming. One of the more common of this type of question runs along the lines of, &#8220;What is the virtual-override mechanism?&#8221; Strictly speaking this is a <span id="more-466"></span>C# language construction, but since C# dominates non-systems programming in a .NET world (as opposed to VB.NET) you might not get an &#8220;in the C# language&#8221; qualifier. Anyway, the basic answer is fairly simple and can be stated in many ways. Essentially, if you have a base class (say Employee) which has a method (say WeeklyPay), and you want to derive an inherited class (say HourlyEmployee) which has a method with the say name and signature (i.e., WeeklyPay), you must explicitly declare the base class method as &#8220;virtual&#8221;, and explicitly qualify the derived class method as &#8220;override&#8221;. This approach is slightly different from the approach taken by the Java language, in which all methods are &#8220;virtual&#8221; by default and derived classes can override without using any special qualifier. The idea is that C# makes overriding quite a bit more visible by requiring explicit virtual/override declarations.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltinsider.com/?feed=rss2&amp;p=466</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<itunes:subtitle>If you are in a job interview at Microsoft, you are likely to run into many interview questions related to object oriented programming. One of ...</itunes:subtitle>
		<itunes:summary>If you are in a job interview at Microsoft, you are likely to run into many interview questions related to object oriented programming. One of the more common of this type of question runs along the lines of, "What is the virtual-override mechanism?" Strictly speaking this is a C# language construction, but since C# dominates non-systems programming in a .NET world (as opposed to VB.NET) you might not get an "in the C# language" qualifier. Anyway, the basic answer is fairly simple and can be stated in many ways. Essentially, if you have a base class (say Employee) which has a method (say WeeklyPay), and you want to derive an inherited class (say HourlyEmployee) which has a method with the say name and signature (i.e., WeeklyPay), you must explicitly declare the base class method as "virtual", and explicitly qualify the derived class method as "override". This approach is slightly different from the approach taken by the Java language, in which all methods are "virtual" by default and derived classes can override without using any special qualifier. The idea is that C# makes overriding quite a bit more visible by requiring explicit virtual/override declarations.</itunes:summary>
		<itunes:keywords>Interviewing</itunes:keywords>
		<itunes:author>voltinsi@voltinsider.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>How Blogs Have Changed Job Interviews</title>
		<link>http://voltinsider.com/?p=465</link>
		<comments>http://voltinsider.com/?p=465#comments</comments>
		<pubDate>Sat, 28 Aug 2010 15:48:10 +0000</pubDate>
		<dc:creator><ADMINNICENAME></dc:creator>
				<category><![CDATA[Interviewing]]></category>

		<guid isPermaLink="false">http://voltinsider.com/?p=465</guid>
		<description><![CDATA[A few days ago I observed a job interview at Microsoft and realized that blogs, compared with until just recently, have made a big difference in how you should prepare for a job interview. Let me explain what I mean and how this phenomenon can help you the next time you are in an interview. [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago I observed a job interview at Microsoft and realized that blogs, compared with until just recently, have made a big difference in how you should prepare for a job interview. Let me explain what I mean and how this phenomenon can help you the next time you are in an interview. The idea is stunningly simple and I&#8217;m surprised <span id="more-465"></span>I haven&#8217;t heard recruiters and job candidates mention the technique more often than they do. Basically, before going to an interview at a company or department, you should read as many blog posting from the company/department as you can. Duh! For years, everyone knows that before going to an interview, you should &#8220;do your homework&#8221; as they say by researching the company or department that you will be interviewing with. In the past, this technique would allow you to interview more deeply and set you apart from other job candidates. Well, blogs just take that idea a big step farther. By reading company/department blogs you will gain tremendous insight into what the company/department is doing, what their issues are, and maybe even a blog post by your interviewer explaining exactly what he/she is looking for in a new employee. Having deep, insider knowledge of a company/department won&#8217;t guarantee you a job offer, but if you are approximately a good fit for the job position, insider knowledge will give you a huge advantage compared with other job candidates who don&#8217;t have that knowledge. So, before you go to an interview at Microsoft or any other company, &#8220;do your homework&#8221; by asking your recruiter what department you will be interviewing with and reading as many blogs from that department as you can. The http://www.technorati.com/ Web site is an excellent blog-search tool.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltinsider.com/?feed=rss2&amp;p=465</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<itunes:subtitle>A few days ago I observed a job interview at Microsoft and realized that blogs, compared with until just recently, have made a big difference ...</itunes:subtitle>
		<itunes:summary>A few days ago I observed a job interview at Microsoft and realized that blogs, compared with until just recently, have made a big difference in how you should prepare for a job interview. Let me explain what I mean and how this phenomenon can help you the next time you are in an interview. The idea is stunningly simple and I'm surprised I haven't heard recruiters and job candidates mention the technique more often than they do. Basically, before going to an interview at a company or department, you should read as many blog posting from the company/department as you can. Duh! For years, everyone knows that before going to an interview, you should "do your homework" as they say by researching the company or department that you will be interviewing with. In the past, this technique would allow you to interview more deeply and set you apart from other job candidates. Well, blogs just take that idea a big step farther. By reading company/department blogs you will gain tremendous insight into what the company/department is doing, what their issues are, and maybe even a blog post by your interviewer explaining exactly what he/she is looking for in a new employee. Having deep, insider knowledge of a company/department won't guarantee you a job offer, but if you are approximately a good fit for the job position, insider knowledge will give you a huge advantage compared with other job candidates who don't have that knowledge. So, before you go to an interview at Microsoft or any other company, "do your homework" by asking your recruiter what department you will be interviewing with and reading as many blogs from that department as you can. The http://www.technorati.com/ Web site is an excellent blog-search tool.</itunes:summary>
		<itunes:keywords>Interviewing</itunes:keywords>
		<itunes:author>voltinsi@voltinsider.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>What is the Missing Number?</title>
		<link>http://voltinsider.com/?p=464</link>
		<comments>http://voltinsider.com/?p=464#comments</comments>
		<pubDate>Sat, 14 Aug 2010 14:26:21 +0000</pubDate>
		<dc:creator><ADMINNICENAME></dc:creator>
				<category><![CDATA[Interviewing]]></category>

		<guid isPermaLink="false">http://voltinsider.com/?p=464</guid>
		<description><![CDATA[An old, old interview question at technical companies like Microsoft for development and test automation positions goes something like the following. &#8220;You have a list of the numbers 1 through 1,000,000 in a random order, but one of the numbers is missing. How can you find the missing number?&#8221; A crude answer is to put [...]]]></description>
			<content:encoded><![CDATA[<p>An old, old interview question at technical companies like Microsoft for development and test automation positions goes something like the following. &#8220;You have a list of the numbers 1 through 1,000,000 in a random order, but one of the numbers is missing. How can you find the missing number?&#8221; A crude answer is to <span id="more-464"></span>put the numbers in an array, sort the numbers, and then iterate through the sorted array looking for the missing value (i.e., a number which is 2 greater than the previous number rather than 1 greater). But this technique requires a relatively large amount of work compared to alternatives. A better approach is to make use of the fact that the sum of the numbers 1 thorough n is n * (n+1) / 2. For example the sum of 1 through 5 is 5 * (5+1) / 2 = 15. If you sum the given numbers and then subtract that sum from the theoretical sum of 1 through 1,000,000 you will have what&#8217;s left over, which is the missing number. However, there&#8217;s a catch here. The sum of 1 through 1,000,000,000 is 500,000,500,000 but suppose you are artificially constrained in the question to dealing with 32-bit signed ints &#8212; the maximum value you can work with is only 2,147,483,647.  In a situation like this you can get clever and either use a custom BigInt class of some sort (which of course you&#8217;d have to describe and implement) or use modulo arithmetic &#8212; and discuss the pros and cons of your alternate solution in terms of memory usage, processing time (big O notation), scalability, and simplicity. The point is this: when you get a technical interview question at Microsoft, you can be fairly sure that the question is deeper than it first appears and that there are multiple possible answers.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltinsider.com/?feed=rss2&amp;p=464</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<itunes:subtitle>An old, old interview question at technical companies like Microsoft for development and test automation positions goes something like the following. "You have a list ...</itunes:subtitle>
		<itunes:summary>An old, old interview question at technical companies like Microsoft for development and test automation positions goes something like the following. "You have a list of the numbers 1 through 1,000,000 in a random order, but one of the numbers is missing. How can you find the missing number?" A crude answer is to put the numbers in an array, sort the numbers, and then iterate through the sorted array looking for the missing value (i.e., a number which is 2 greater than the previous number rather than 1 greater). But this technique requires a relatively large amount of work compared to alternatives. A better approach is to make use of the fact that the sum of the numbers 1 thorough n is n * (n+1) / 2. For example the sum of 1 through 5 is 5 * (5+1) / 2 = 15. If you sum the given numbers and then subtract that sum from the theoretical sum of 1 through 1,000,000 you will have what's left over, which is the missing number. However, there's a catch here. The sum of 1 through 1,000,000,000 is 500,000,500,000 but suppose you are artificially constrained in the question to dealing with 32-bit signed ints -- the maximum value you can work with is only 2,147,483,647.  In a situation like this you can get clever and either use a custom BigInt class of some sort (which of course you'd have to describe and implement) or use modulo arithmetic -- and discuss the pros and cons of your alternate solution in terms of memory usage, processing time (big O notation), scalability, and simplicity. The point is this: when you get a technical interview question at Microsoft, you can be fairly sure that the question is deeper than it first appears and that there are multiple possible answers.</itunes:summary>
		<itunes:keywords>Interviewing</itunes:keywords>
		<itunes:author>voltinsi@voltinsider.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>The contains(s,t) Microsoft Interview Question</title>
		<link>http://voltinsider.com/?p=463</link>
		<comments>http://voltinsider.com/?p=463#comments</comments>
		<pubDate>Tue, 03 Aug 2010 21:20:43 +0000</pubDate>
		<dc:creator><ADMINNICENAME></dc:creator>
				<category><![CDATA[Interviewing]]></category>

		<guid isPermaLink="false">http://voltinsider.com/?p=463</guid>
		<description><![CDATA[Let me describe a very common Microsoft hiring interview question, and why I think it&#8217;s a fairly good question for software engineering position interviews. I&#8217;ve been asked this question many times when I worked at Microsoft and was interviewing with new groups following a product-ship, and I&#8217;ve also given the question to candidates several times. [...]]]></description>
			<content:encoded><![CDATA[<p>Let me describe a very common Microsoft hiring interview question, and why I think it&#8217;s a fairly good question for software engineering position interviews. I&#8217;ve been asked this question many times when I worked at Microsoft and was interviewing with new groups following a product-ship, and I&#8217;ve also <span id="more-463"></span>given the question to candidates several times. The question itself goes something like: write a function constains(s,t) which returns true if any of the characters in string t are in string s. The first thing I&#8217;d expect a candidate to do is qualify the question by making sure he understands the question, are there any programming language constraints, ASCII vs. Unicode encoding, case sensitivity, and so on. For example, contains(&#8221;cat&#8221;, &#8220;!@#$%^&#038;*()&#8221;) returns false, but contains (&#8221;Hellx&#8221;, &#8220;wxyz&#8221;) returns true. Next I&#8217;d want to hear and see at least a minimal mini-design on the interview room whiteboard (mostly to hear any assumptions the candidate is making). And then here is a working, but very crude version in JavaScript:</p>
<p>function contains(s, t)<br />
{<br />
  for (j = 0; j < t.length; j++) // check each char in t<br />
  {<br />
    var c1 = t.charAt(j);<br />
    for (i = 0; i < s.length; i++) // now examine each char in s<br />
    {<br />
      var c2 = s.charAt(i);<br />
      if (c1 == c2) // match?<br />
        return true;<br />
    }<br />
  }<br />
  return false;<br />
}</p>
<p>This is just a start of course. Next, I&#8217;d want to see the candidate look at error-checking. For example, what is parameters s and/or t are null or the empty string? By the way, many interviewers want to see error-checking immediately on questions like this, so if you defer adding error-traps, you should be sure to say something like, &#8220;I&#8217;m going to write the basic code first, then I&#8217;ll address error-checking issues.&#8221; Next I&#8217;d want to see if the candidate addresses performance vs. memory issues. The solution above could be recast to use a mini-hash table to search through either s or t (depending upon problem constraints) where the mini-hash table just maps the ASCII code of a character to a 0 or 1 value. Next, for a testing position interview, I&#8217;d expect the candidate to talk about testing this function. I&#8217;d also hope the candidate offers a O(n) analysis &#8212; if not, I&#8217;d specifically ask the candidate. I like this question as a small part of the interview process for testers. The problem is simple but realistic, language-independent for the most part, has multiple solutions, gives the opportunity for error-traps, and so on. In short, it&#8217;s a problem that would give me some insight into the candidate&#8217;s technical ability.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltinsider.com/?feed=rss2&amp;p=463</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<itunes:subtitle>Let me describe a very common Microsoft hiring interview question, and why I think it's a fairly good question for software engineering position interviews. I've ...</itunes:subtitle>
		<itunes:summary>Let me describe a very common Microsoft hiring interview question, and why I think it's a fairly good question for software engineering position interviews. I've been asked this question many times when I worked at Microsoft and was interviewing with new groups following a product-ship, and I've also given the question to candidates several times. The question itself goes something like: write a function constains(s,t) which returns true if any of the characters in string t are in string s. The first thing I'd expect a candidate to do is qualify the question by making sure he understands the question, are there any programming language constraints, ASCII vs. Unicode encoding, case sensitivity, and so on. For example, contains("cat", "!@#$%^*()") returns false, but contains ("Hellx", "wxyz") returns true. Next I'd want to hear and see at least a minimal mini-design on the interview room whiteboard (mostly to hear any assumptions the candidate is making). And then here is a working, but very crude version in JavaScript:

function contains(s, t) 
{
  for (j = 0; j  t.length; j++) // check each char in t
  {
    var c1 = t.charAt(j);
    for (i = 0; i  s.length; i++) // now examine each char in s
    {
      var c2 = s.charAt(i);
      if (c1 == c2) // match?
        return true;
    }
  }
  return false;
}

This is just a start of course. Next, I'd want to see the candidate look at error-checking. For example, what is parameters s and/or t are null or the empty string? By the way, many interviewers want to see error-checking immediately on questions like this, so if you defer adding error-traps, you should be sure to say something like, "I'm going to write the basic code first, then I'll address error-checking issues." Next I'd want to see if the candidate addresses performance vs. memory issues. The solution above could be recast to use a mini-hash table to search through either s or t (depending upon problem constraints) where the mini-hash table just maps the ASCII code of a character to a 0 or 1 value. Next, for a testing position interview, I'd expect the candidate to talk about testing this function. I'd also hope the candidate offers a O(n) analysis -- if not, I'd specifically ask the candidate. I like this question as a small part of the interview process for testers. The problem is simple but realistic, language-independent for the most part, has multiple solutions, gives the opportunity for error-traps, and so on. In short, it's a problem that would give me some insight into the candidate's technical ability.
</itunes:summary>
		<itunes:keywords>Interviewing</itunes:keywords>
		<itunes:author>voltinsi@voltinsider.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>The Reverse a String Interview Question</title>
		<link>http://voltinsider.com/?p=462</link>
		<comments>http://voltinsider.com/?p=462#comments</comments>
		<pubDate>Sat, 24 Jul 2010 19:57:27 +0000</pubDate>
		<dc:creator><ADMINNICENAME></dc:creator>
				<category><![CDATA[Interviewing]]></category>

		<guid isPermaLink="false">http://voltinsider.com/?p=462</guid>
		<description><![CDATA[A very common interview questions at technology companies like Microsoft and Google is, &#8220;Write a function which reverse a string.&#8221; It&#8217;s a very simple question but because there are so many different solutions, the hiring manager can tell a lot about a job candidate by exactly how the candidate answers the question. Reversing a string [...]]]></description>
			<content:encoded><![CDATA[<p>A very common interview questions at technology companies like Microsoft and Google is, &#8220;Write a function which reverse a string.&#8221; It&#8217;s a very simple question but because there are so many different solutions, the hiring manager can tell a lot about a job candidate by exactly how the candidate answers the question. Reversing a string depends to a large extent on <span id="more-462"></span>what language you use. For example, if you use C/C++ you will almost certainly use a pointer approach. If you use JavaScript, you&#8217;ll almost certainly use array-indexing. Let&#8217;s assume you&#8217;re using C/C++. One simple algorithm is to place one pointer at the start of the string, and place a second pointer at the end of the string (just before the &#8216;\0&#8242; terminator). Then, in a loop, swap the characters pointed to by your two pointers, increment the front pointer, and decrement the back pointer. Loop while the front pointer is less than the back pointer. An interesting side note is that you can perform the swap operation in the usual way by using a temp char:</p>
<p>char temp = *front;<br />
*front = *back;<br />
*back = temp;</p>
<p>But you can also do a tricky in-place swap using the xor operator:</p>
<p>*front = *front ^ *back;<br />
*back = *back ^ *front;<br />
*front = *front ^ *back;</p>
<p>As always, a key to success is to articulate your answer (no matter what your approach) so that the interviewer knows the boundaries of your knowledge and can determine if you are a good match for the job he has open.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltinsider.com/?feed=rss2&amp;p=462</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<itunes:subtitle>A very common interview questions at technology companies like Microsoft and Google is, "Write a function which reverse a string." It's a very simple question ...</itunes:subtitle>
		<itunes:summary>A very common interview questions at technology companies like Microsoft and Google is, "Write a function which reverse a string." It's a very simple question but because there are so many different solutions, the hiring manager can tell a lot about a job candidate by exactly how the candidate answers the question. Reversing a string depends to a large extent on what language you use. For example, if you use C/C++ you will almost certainly use a pointer approach. If you use JavaScript, you'll almost certainly use array-indexing. Let's assume you're using C/C++. One simple algorithm is to place one pointer at the start of the string, and place a second pointer at the end of the string (just before the ' ' terminator). Then, in a loop, swap the characters pointed to by your two pointers, increment the front pointer, and decrement the back pointer. Loop while the front pointer is less than the back pointer. An interesting side note is that you can perform the swap operation in the usual way by using a temp char:

char temp = *front;
*front = *back;
*back = temp;

But you can also do a tricky in-place swap using the xor operator:

*front = *front ^ *back;
*back = *back ^ *front;
*front = *front ^ *back;

As always, a key to success is to articulate your answer (no matter what your approach) so that the interviewer knows the boundaries of your knowledge and can determine if you are a good match for the job he has open.
</itunes:summary>
		<itunes:keywords>Interviewing</itunes:keywords>
		<itunes:author>voltinsi@voltinsider.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>An Interesting Hiring Interview Question</title>
		<link>http://voltinsider.com/?p=461</link>
		<comments>http://voltinsider.com/?p=461#comments</comments>
		<pubDate>Thu, 08 Jul 2010 02:22:27 +0000</pubDate>
		<dc:creator><ADMINNICENAME></dc:creator>
				<category><![CDATA[Interviewing]]></category>

		<guid isPermaLink="false">http://voltinsider.com/?p=461</guid>
		<description><![CDATA[I was chatting with one of my buddies who has been working at Microsoft for nearly 10 years as a software developer. We both started at Microsoft in the same week and worked on Internet Explorer version 3. Here&#8217;s an interview question he has used for years: &#8220;Write a function which prints a list of [...]]]></description>
			<content:encoded><![CDATA[<p>I was chatting with one of my buddies who has been working at Microsoft for nearly 10 years as a software developer. We both started at Microsoft in the same week and worked on Internet Explorer version 3. Here&#8217;s an interview question he has used for years: &#8220;Write a function which prints a list of the longest <span id="more-461"></span>palindromes in a string.&#8221;</p>
<p>He uses this question for both software development positions and for SDET (engineers who write test automation) positions. The first thing he looks for is if the candidate qualifies exactly what this question means. As stated, it is (deliberately) ambiguous. He also gains some insight into the candidate&#8217;s communication skils at this point. Anyway, here&#8217;s what he means by the question. Suppose the input string is:</p>
<p>abbadbbeebb</p>
<p>The output should be:</p>
<p>abba<br />
bbeebb</p>
<p>Palindromes are strings that read the same in both diections. For example, &#8220;aba&#8221; and &#8220;cddc&#8221; are palindromes. Notice that the output does not contain strings &#8220;bb&#8221;, &#8220;ee&#8221;, and &#8220;beeb&#8221; because they are contained within larger palindromes. The trick is to realize that to find the longest palindromes in a string, you have to work from the inside out. The middle of a palindrome will be either two letters which are the same (as in &#8220;cddc&#8221;), or a single letter (as in &#8220;aba&#8221;). Once you identify the midpoint of a potential palindrome, you work outward, checking to see if the two current end characters are the same. If the characters are the same, you keep working outward because you want the longest palindrome.</p>
<p>Once a candidate has figured out the algorithm, then they&#8217;ve got to implement it. Like most hiring managers, my buddy does really care if the candidate uses C, Java, C#, JavaScript, Visual Basic, or whatever. If a candidate gets this far, then my buddy will ask questions about the performance of the algorithm, including &#8220;Big O&#8221; questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltinsider.com/?feed=rss2&amp;p=461</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<itunes:subtitle>I was chatting with one of my buddies who has been working at Microsoft for nearly 10 years as a software developer. We both started ...</itunes:subtitle>
		<itunes:summary>I was chatting with one of my buddies who has been working at Microsoft for nearly 10 years as a software developer. We both started at Microsoft in the same week and worked on Internet Explorer version 3. Here's an interview question he has used for years: "Write a function which prints a list of the longest palindromes in a string."

He uses this question for both software development positions and for SDET (engineers who write test automation) positions. The first thing he looks for is if the candidate qualifies exactly what this question means. As stated, it is (deliberately) ambiguous. He also gains some insight into the candidate's communication skils at this point. Anyway, here's what he means by the question. Suppose the input string is:

abbadbbeebb

The output should be:

abba
bbeebb

Palindromes are strings that read the same in both diections. For example, "aba" and "cddc" are palindromes. Notice that the output does not contain strings "bb", "ee", and "beeb" because they are contained within larger palindromes. The trick is to realize that to find the longest palindromes in a string, you have to work from the inside out. The middle of a palindrome will be either two letters which are the same (as in "cddc"), or a single letter (as in "aba"). Once you identify the midpoint of a potential palindrome, you work outward, checking to see if the two current end characters are the same. If the characters are the same, you keep working outward because you want the longest palindrome.

Once a candidate has figured out the algorithm, then they've got to implement it. Like most hiring managers, my buddy does really care if the candidate uses C, Java, C#, JavaScript, Visual Basic, or whatever. If a candidate gets this far, then my buddy will ask questions about the performance of the algorithm, including "Big O" questions.
</itunes:summary>
		<itunes:keywords>Interviewing</itunes:keywords>
		<itunes:author>voltinsi@voltinsider.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>The Pinball Model Interview Question</title>
		<link>http://voltinsider.com/?p=459</link>
		<comments>http://voltinsider.com/?p=459#comments</comments>
		<pubDate>Sat, 19 Jun 2010 15:42:24 +0000</pubDate>
		<dc:creator><ADMINNICENAME></dc:creator>
				<category><![CDATA[Interviewing]]></category>

		<guid isPermaLink="false">http://voltinsider.com/?p=459</guid>
		<description><![CDATA[A engineer I used to work asked me my thoughts about an interview question he received recently. The question was essentially, “How would you model a pinball machine as a program?” This is a classic object oriented programming (OOP) design question. As with any design question, there are an unlimited number of approaches. Let’s imagine [...]]]></description>
			<content:encoded><![CDATA[<p>A engineer I used to work asked me my thoughts about an interview question he received recently. The question was essentially, “How would you model a pinball machine as a program?” This is a classic object oriented programming (OOP) design question. As with any design question, there are an unlimited number of approaches. Let’s imagine that you further qualify the question and determine that you want to <span id="more-459"></span>model the software for a physical pinball machine, rather than, say, model the software for a pinball simulation. Additionally, you sketch out a pinball machine of some sort to establish things like how many players there are, how many balls each player gets, and so on. First we would identify each component of the pinball machine: bumpers, playfield, flippers, spinners, and so forth. Each of these would correspond to a class. For example, in C#, a bumper object might be modeled something like:</p>
<p>public class Bumper<br />
{<br />
  private string id;<br />
  private int pointValue;<br />
  private int reboundStrength;<br />
  // etc.<br />
  public Bumper()<br />
  {<br />
    // constructor code<br />
  }<br />
  // properties here<br />
  // methods here<br />
}</p>
<p>The interview question really boils down to, “Explain OOP principles to me using a pinball game as a concrete example.” So, the interviewer wants to know about classes, constructors, data fields, scope modifiers, properties, and methods. Additionally, you would want to discuss the pros and cons of creating abstract base classes and using inheritance. A question like this could come in many forms. For instance, “How would you model a vending machine?” Or, “Model a poker game for me.” All of these questions are the same in the sense that they’re intended to determine the candidate’s experience with OOP. Familiarity with object oriented programming is not a Boolean, has-it-or-doesn’t-have-it, kind of thing. The interviewer is looking to see exactly what level of familiarity with OOP the candidate has. </p>
]]></content:encoded>
			<wfw:commentRss>http://voltinsider.com/?feed=rss2&amp;p=459</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<itunes:subtitle>A engineer I used to work asked me my thoughts about an interview question he received recently. The question was essentially, “How would you model ...</itunes:subtitle>
		<itunes:summary>A engineer I used to work asked me my thoughts about an interview question he received recently. The question was essentially, “How would you model a pinball machine as a program?” This is a classic object oriented programming (OOP) design question. As with any design question, there are an unlimited number of approaches. Let’s imagine that you further qualify the question and determine that you want to model the software for a physical pinball machine, rather than, say, model the software for a pinball simulation. Additionally, you sketch out a pinball machine of some sort to establish things like how many players there are, how many balls each player gets, and so on. First we would identify each component of the pinball machine: bumpers, playfield, flippers, spinners, and so forth. Each of these would correspond to a class. For example, in C#, a bumper object might be modeled something like:

public class Bumper
{
  private string id;
  private int pointValue;
  private int reboundStrength;
  // etc.
  public Bumper()
  {
    // constructor code
  }
  // properties here
  // methods here
}

The interview question really boils down to, “Explain OOP principles to me using a pinball game as a concrete example.” So, the interviewer wants to know about classes, constructors, data fields, scope modifiers, properties, and methods. Additionally, you would want to discuss the pros and cons of creating abstract base classes and using inheritance. A question like this could come in many forms. For instance, “How would you model a vending machine?” Or, “Model a poker game for me.” All of these questions are the same in the sense that they’re intended to determine the candidate’s experience with OOP. Familiarity with object oriented programming is not a Boolean, has-it-or-doesn’t-have-it, kind of thing. The interviewer is looking to see exactly what level of familiarity with OOP the candidate has. 
</itunes:summary>
		<itunes:keywords>Interviewing</itunes:keywords>
		<itunes:author>voltinsi@voltinsider.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>More Interview Kisses of Death</title>
		<link>http://voltinsider.com/?p=458</link>
		<comments>http://voltinsider.com/?p=458#comments</comments>
		<pubDate>Sat, 05 Jun 2010 17:13:53 +0000</pubDate>
		<dc:creator><ADMINNICENAME></dc:creator>
				<category><![CDATA[Interviewing]]></category>

		<guid isPermaLink="false">http://voltinsider.com/?p=458</guid>
		<description><![CDATA[In a recent blog entry I described how coming across as being needy is the number one kiss of death in a technical job interview at a company like Microsoft. But there are several other all-too-common big mistakes you can make in an interview. Another interview kiss of death is to either be too passive [...]]]></description>
			<content:encoded><![CDATA[<p>In a recent blog entry I described how coming across as being needy is the number one kiss of death in a technical job interview at a company like Microsoft. But there are several other all-too-common big mistakes you can make in an interview. Another interview kiss of death is to either be too <span id="more-458"></span>passive or be too forceful in the interview. Let me explain. On the one hand, if you just sit in a job interview and simply answer questions that you&#8217;re asked, you are being too passive. You immediately take on a mere cog-in-the-machine role &#8212; someone who, in the hiring manager&#8217;s mind, does not take any initiative and waits to be told what to do. But on the other hand, you do not want to be subjecting your interviewer to a barrage of questions and opinions. That can establish in the hiring manager&#8217;s mind a perception that you are the type of employee who spends too much time yakking and thinking and not enough time getting your job done, and when you do work you go off on tangents. The best approach is to listen carefully to the hiring manager&#8217;s questions in an interview, think a moment before you answer, then answer succinctly. If, during the time you are considering the question you&#8217;ve been asked, a question comes to your mind and you feel the question will simultaneously help you understand the company you are interviewing with and help the hiring manager understand your potential contribution to the company, then go ahead and bring the question up. By far the best way, and in fact the only way, to gain this interviewing skill is by practicing in mock interviews. Suppose you&#8217;re in an interview and a hiring manager asks you what your technical strengths are. After giving a brief answer, you may want to ask the hiring manager what the key technologies in use at the company are, or if there are any new or emerging technologies the company is considering.</p>
<p>=====<br />
1. Not knowing your aim. Too often candidates think their purpose in an interview is simply to ask for a job. Your goals are to demonstrate how you are a good fit for the organization, and to assess whether the job is really right for you. </p>
<p>2. Being too needy. Neediness is probably the No. 1 advantage-killer in an interview. Remind yourself before walking in the door: you do not need this job. You do need food, you do need air, and you do need water. Keep things in perspective.</p>
<p>3. Lousy nonverbal communication. This is about demonstrating confidence. Your first impression makes the difference. When you enter the interview room, stand up straight, make eye contact, and offer a strong handshake with your interviewer. If necessary, jot their name on your notepad as soon as you seat yourself. Do the same for any other individual you are meeting with. </p>
<p>4. Compromising your position. You should always participate in the interview as an equal, not a subordinate, of the person conducting the interview. Often this is a subtle matter of self-perception, so remind yourself before the interview.</p>
<p>5. Falling into the answers-only rut. An interview is a conversation. Don&#8217;t just answer their questions. That&#8217;s why you&#8217;ve prepared stories to highlight your accomplishments, which will be your moments to shine. When you do answer any questions, make sure that you answer immediately and follow up with a question of your own, if at all possible.</p>
<p>6. Rambling. Telling your interviewer more than they need to know could be fatal. Your stories should be 60 to 90 seconds long and they should have a relevant point. Focus, focus, focus. Stick with your rehearsed stories, your research, and the questions you need to ask. Don&#8217;t fill up the silence with unnecessary talk.</p>
<p>7. Being overly familiar. A good interviewer will be skilled enough to put you at ease within the first 10 minutes of the interview. That doesn&#8217;t mean that they have become your best friend. Don&#8217;t let your guard down. You&#8217;re there to interview them and get answers to your questions. Treat this from start to finish as the professional business meeting that it is.</p>
<p>8. Making incorrect assumptions. Points are not deducted at the interview for asking questions when you don&#8217;t understand something. Don&#8217;t guess at what your interviewer means. Effective interviewing is all about collecting information in real time, taking good notes, and responding only to the actual facts you&#8217;ve collected. If you find yourself making assumptions or guessing about something that was said, stop and ask for clarification before you answer. </p>
<p>9. Getting emotional. At times the interviewer may hit a nerve or consciously try to provoke you into an &#8220;outburst.&#8221; Don&#8217;t fall for it. Clear your mind of any fears or expectations, so you can maintain a calm, open-minded perspective at all times. When emotions enter into an interview, failure follows. </p>
<p>10. Not asking specific questions. You want to find out more about what this job is really about and whether you want it. Arrive with a list of several prepared questions about the company, the position, and the people who work there. Ask questions that begin with &#8220;what,&#8221; &#8220;how,&#8221; and &#8220;why.&#8221; Avoid simple yes/no questions. Get your interviewer talking as much as possible, then take notes. Most interviewers are unimpressed by someone who has no questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltinsider.com/?feed=rss2&amp;p=458</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<itunes:subtitle>In a recent blog entry I described how coming across as being needy is the number one kiss of death in a technical job interview ...</itunes:subtitle>
		<itunes:summary>In a recent blog entry I described how coming across as being needy is the number one kiss of death in a technical job interview at a company like Microsoft. But there are several other all-too-common big mistakes you can make in an interview. Another interview kiss of death is to either be too passive or be too forceful in the interview. Let me explain. On the one hand, if you just sit in a job interview and simply answer questions that you're asked, you are being too passive. You immediately take on a mere cog-in-the-machine role -- someone who, in the hiring manager's mind, does not take any initiative and waits to be told what to do. But on the other hand, you do not want to be subjecting your interviewer to a barrage of questions and opinions. That can establish in the hiring manager's mind a perception that you are the type of employee who spends too much time yakking and thinking and not enough time getting your job done, and when you do work you go off on tangents. The best approach is to listen carefully to the hiring manager's questions in an interview, think a moment before you answer, then answer succinctly. If, during the time you are considering the question you've been asked, a question comes to your mind and you feel the question will simultaneously help you understand the company you are interviewing with and help the hiring manager understand your potential contribution to the company, then go ahead and bring the question up. By far the best way, and in fact the only way, to gain this interviewing skill is by practicing in mock interviews. Suppose you're in an interview and a hiring manager asks you what your technical strengths are. After giving a brief answer, you may want to ask the hiring manager what the key technologies in use at the company are, or if there are any new or emerging technologies the company is considering.
 
=====
1. Not knowing your aim. Too often candidates think their purpose in an interview is simply to ask for a job. Your goals are to demonstrate how you are a good fit for the organization, and to assess whether the job is really right for you. 

2. Being too needy. Neediness is probably the No. 1 advantage-killer in an interview. Remind yourself before walking in the door: you do not need this job. You do need food, you do need air, and you do need water. Keep things in perspective.

3. Lousy nonverbal communication. This is about demonstrating confidence. Your first impression makes the difference. When you enter the interview room, stand up straight, make eye contact, and offer a strong handshake with your interviewer. If necessary, jot their name on your notepad as soon as you seat yourself. Do the same for any other individual you are meeting with. 

4. Compromising your position. You should always participate in the interview as an equal, not a subordinate, of the person conducting the interview. Often this is a subtle matter of self-perception, so remind yourself before the interview.

5. Falling into the answers-only rut. An interview is a conversation. Don't just answer their questions. That's why you've prepared stories to highlight your accomplishments, which will be your moments to shine. When you do answer any questions, make sure that you answer immediately and follow up with a question of your own, if at all possible.

6. Rambling. Telling your interviewer more than they need to know could be fatal. Your stories should be 60 to 90 seconds long and they should have a relevant point. Focus, focus, focus. Stick with your rehearsed stories, your research, and the questions you need to ask. Don't fill up the silence with unnecessary talk.

7. Being overly familiar. A good interviewer will be skilled enough to put you at ease within the first 10 minutes of the interview. That doesn't mean that they have become your best friend. Don't let your guard down. You're there to interview them and get answers to your questions. Treat this from start to finish as the p</itunes:summary>
		<itunes:keywords>Interviewing</itunes:keywords>
		<itunes:author>voltinsi@voltinsider.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>Body Language in an Interview</title>
		<link>http://voltinsider.com/?p=457</link>
		<comments>http://voltinsider.com/?p=457#comments</comments>
		<pubDate>Mon, 24 May 2010 12:31:50 +0000</pubDate>
		<dc:creator><ADMINNICENAME></dc:creator>
				<category><![CDATA[Interviewing]]></category>

		<guid isPermaLink="false">http://voltinsider.com/?p=457</guid>
		<description><![CDATA[I didn&#8217;t realize how important body language is in an interview until an interesting incident recently. A Volt recruiter contacted me and asked me to meet with a candidate, &#8220;Joe&#8221;, who had been turned down for eight jobs in a row even though he had very solid technical skills. So, I set up a short [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t realize how important body language is in an interview until an interesting incident recently. A Volt recruiter contacted me and asked me to meet with a candidate, &#8220;Joe&#8221;, who had been turned down for eight jobs in a row even though he had very solid technical skills. So, I set up a short meeting with Joe. When Joe arrived at my office I immediately knew something was wrong. <span id="more-457"></span>I started a mock interview with Joe and after talking to him for a just a few minutes I stopped the mock interview. Joe was sitting in a somewhat slouched position, not making any eye contact at all, and was speaking with a timid voice. It may not sound like much to you as you read this but the effect on me was huge. If I had been a real interviewer I would have written Joe off as a serious candidate within the first 15 seconds of the interview, and never given him a real chance to reveal his technical skills which were quite good. Anyway, I didn&#8217;t pull any punches and let Joe know he had some of the worst body language I&#8217;d ever seen and described exactly what he was doing. As it turns out, I&#8217;ll bet everybody who knew Joe noticed his poor body language (at least subconsciously) but nobody had ever told him for fear of hurting his feelings. I gave Joe some quick coaching on posture, hand-shake, eye contact, voice tone and modulation, and so on. The improvement was absolutely remarkable. The happy ending to this story is that the recruiter who had contacted me had, unbeknownst to me, scheduled Joe for another interview at Microsoft the next morning. That afternoon Joe called me on the phone and told me he had received a job offer. The moral is that body language is hugely important. Practice mock interviews with someone you know and tell them to critique your body language harshly if necessary, and without worrying about hurting your feelings.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltinsider.com/?feed=rss2&amp;p=457</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<itunes:subtitle>I didn't realize how important body language is in an interview until an interesting incident recently. A Volt recruiter contacted me and asked me to ...</itunes:subtitle>
		<itunes:summary>I didn't realize how important body language is in an interview until an interesting incident recently. A Volt recruiter contacted me and asked me to meet with a candidate, "Joe", who had been turned down for eight jobs in a row even though he had very solid technical skills. So, I set up a short meeting with Joe. When Joe arrived at my office I immediately knew something was wrong. I started a mock interview with Joe and after talking to him for a just a few minutes I stopped the mock interview. Joe was sitting in a somewhat slouched position, not making any eye contact at all, and was speaking with a timid voice. It may not sound like much to you as you read this but the effect on me was huge. If I had been a real interviewer I would have written Joe off as a serious candidate within the first 15 seconds of the interview, and never given him a real chance to reveal his technical skills which were quite good. Anyway, I didn't pull any punches and let Joe know he had some of the worst body language I'd ever seen and described exactly what he was doing. As it turns out, I'll bet everybody who knew Joe noticed his poor body language (at least subconsciously) but nobody had ever told him for fear of hurting his feelings. I gave Joe some quick coaching on posture, hand-shake, eye contact, voice tone and modulation, and so on. The improvement was absolutely remarkable. The happy ending to this story is that the recruiter who had contacted me had, unbeknownst to me, scheduled Joe for another interview at Microsoft the next morning. That afternoon Joe called me on the phone and told me he had received a job offer. The moral is that body language is hugely important. Practice mock interviews with someone you know and tell them to critique your body language harshly if necessary, and without worrying about hurting your feelings.

</itunes:summary>
		<itunes:keywords>Interviewing</itunes:keywords>
		<itunes:author>voltinsi@voltinsider.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
		<item>
		<title>Interview Kisses of Death</title>
		<link>http://voltinsider.com/?p=456</link>
		<comments>http://voltinsider.com/?p=456#comments</comments>
		<pubDate>Sat, 15 May 2010 16:13:29 +0000</pubDate>
		<dc:creator><ADMINNICENAME></dc:creator>
				<category><![CDATA[Interviewing]]></category>

		<guid isPermaLink="false">http://voltinsider.com/?p=456</guid>
		<description><![CDATA[I observe a lot of job interviews at Microsoft and other technical companies. All too often I see technically qualified candidates do poorly in an interview. Sometimes very, very poorly. There are a handful of &#8220;Interview Kisses of Death&#8221; &#8212; things that if you do them in an interview, almost guarantee that you will not [...]]]></description>
			<content:encoded><![CDATA[<p>I observe a lot of job interviews at Microsoft and other technical companies. All too often I see technically qualified candidates do poorly in an interview. Sometimes very, very poorly. There are a handful of &#8220;Interview Kisses of Death&#8221; &#8212; things that if you do them in an interview, almost guarantee that you will not get a job offer. And these kisses of death are surprisingly common. The number one kiss of death in an interview is <span id="more-456"></span>coming across as being needy or desperate. No matter how qualified you are, if you present an air of desperation, even very faintly, you will certainly not get a job offer. There are two things going on here. First, any hiring manager will believe that a needy candidate wants the job just to pay his/her bills, not because the candidate is passionate about the job and company. After technical competence and ability to work in a group, the most important characteristic any employee can have is a true interest and passion for their work. The second issue with a needy candidate is psychological. A needy employee is likely to require lots of attention. And nobody has time to devote to employee baby sitting. The last thing a hiring manager wants is to be hearing about an employee&#8217;s financial troubles, personal relationship troubles, and so on. This is true of life in general &#8212; we want to surround ourselves with people who can inspire and motivate us, and make us better. And hiring managers are no different from anybody else in this regard. The bottom line is this: go into a job interview with the state of mind that the interview is a conversation, not some sort of test. Sure you need the job, but understand that most interviews do not lead to a job offer. Relax in your interview and you will have much better results.</p>
]]></content:encoded>
			<wfw:commentRss>http://voltinsider.com/?feed=rss2&amp;p=456</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<itunes:subtitle>I observe a lot of job interviews at Microsoft and other technical companies. All too often I see technically qualified candidates do poorly in an ...</itunes:subtitle>
		<itunes:summary>I observe a lot of job interviews at Microsoft and other technical companies. All too often I see technically qualified candidates do poorly in an interview. Sometimes very, very poorly. There are a handful of "Interview Kisses of Death" -- things that if you do them in an interview, almost guarantee that you will not get a job offer. And these kisses of death are surprisingly common. The number one kiss of death in an interview is coming across as being needy or desperate. No matter how qualified you are, if you present an air of desperation, even very faintly, you will certainly not get a job offer. There are two things going on here. First, any hiring manager will believe that a needy candidate wants the job just to pay his/her bills, not because the candidate is passionate about the job and company. After technical competence and ability to work in a group, the most important characteristic any employee can have is a true interest and passion for their work. The second issue with a needy candidate is psychological. A needy employee is likely to require lots of attention. And nobody has time to devote to employee baby sitting. The last thing a hiring manager wants is to be hearing about an employee's financial troubles, personal relationship troubles, and so on. This is true of life in general -- we want to surround ourselves with people who can inspire and motivate us, and make us better. And hiring managers are no different from anybody else in this regard. The bottom line is this: go into a job interview with the state of mind that the interview is a conversation, not some sort of test. Sure you need the job, but understand that most interviews do not lead to a job offer. Relax in your interview and you will have much better results.</itunes:summary>
		<itunes:keywords>Interviewing</itunes:keywords>
		<itunes:author>voltinsi@voltinsider.com</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>No</itunes:block>
	</item>
	</channel>
</rss>
