<?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/"
	>

<channel>
	<title>Chasing &#187; Google</title>
	<atom:link href="http://chase.ratchetsoftware.com/tag/google/feed/" rel="self" type="application/rss+xml" />
	<link>http://chase.ratchetsoftware.com</link>
	<description>Chase Gray&#039;s blog with solutions to various problems by a curious american Ph.D. student.</description>
	<lastBuildDate>Wed, 09 Jun 2010 05:13:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Treat Google Referred Users Special</title>
		<link>http://chase.ratchetsoftware.com/2009/06/treat-google-referred-users-special/</link>
		<comments>http://chase.ratchetsoftware.com/2009/06/treat-google-referred-users-special/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 05:56:54 +0000</pubDate>
		<dc:creator>chasemgray</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://chase.ratchetsoftware.com/?p=155</guid>
		<description><![CDATA[The content of my main web application, Myhealthcaresource, will contain more than 15000 detailed financial reports for nursing facilities at its future peak.  Each of these reports contains textual information as well as monetary values.  It might list administrator names, employee names/salaries, owners, products or services purchased.  I wanted to have all of this information [...]]]></description>
			<content:encoded><![CDATA[<p>The content of my main web application, <a title="Myhealthcaresource" href="http://www.myhealthcaresource.com">Myhealthcaresource</a>, will contain more than 15000 detailed financial reports for nursing facilities at its future peak.  Each of these reports contains textual information as well as monetary values.  It might list administrator names, employee names/salaries, owners, products or services purchased.  I wanted to have all of this information searchable on Google, without Google caching the page.  I also wanted to let users who came from Google as a result of searching for this information see it without having to log in, but only the page that they found through Google search.<span id="more-155"></span>I&#8217;m going to make this post much shorter and only list the steps I took to solve these problems.</p>
<h3>Problem 1: How to let Google index my data that requires a login</h3>
<p>A prerequisite for this step is to submit sitemaps for your site&#8217;s content to <a href="https://www.google.com/webmasters/tools">Google Webmaster Tools</a>.  Once you have done this, at some point in the future Googlebot will attempt to traverse your page and index its contents (hopefully).</p>
<p>The content on my site requires a user to pay a subscription fee in order to have free reign and browse through whatever they please.  I&#8217;m not very concerned about any single piece of information getting leaked, instead I&#8217;m protecting the resource the site provides as a whole.  By letting Google index your site, you&#8217;re obviously opening up your content to outside viewers that are not logged in.  The extent that you need to protect your content could vary from what my needs are.</p>
<p>What I want is for a user to be able to type their name into Google search engine and find out that they are referenced in the data provided by Myhealthcaresource.com.  So, I need to somehow let Googlebot traverse my site, even through it requires a login by a normal user.</p>
<p>I&#8217;m using Restful Authentication and a role requirement system, so this is how I include this exception.</p>

<div class="wp_syntax"><div class="code"><pre class="rails" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> FacilitiesController <span style="color:#006600; font-weight:bold;">&amp;</span>lt; ApplicationController
 require_role <span style="color:#ff3333; font-weight:bold;">:basic</span>, <span style="color:#ff3333; font-weight:bold;">:only</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:show</span>, <span style="color:#ff3333; font-weight:bold;">:unless</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> request.<span style="color:#9900CC;">env</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'HTTP_USER_AGENT'</span><span style="color:#006600; font-weight:bold;">&#93;</span> =~ <span style="color:#006600; font-weight:bold;">/</span>.<span style="color:#006600; font-weight:bold;">*</span>Googlebot.<span style="color:#006600; font-weight:bold;">*/</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>This could vary depending on your authentication system, but the part that will remain the same is the check if the user agent string contains &#8216;Googlebot&#8217;.</p>
<p>That&#8217;s all it takes in order to allow Googlebot to traverse my controlelr that previously required a login.  A potential problem that could come up is that users could &#8216;fake&#8217; their user agent to say &#8216;Googlebot&#8217; and gain access to the site.  This could be a problem for some sites, and we would keep an eye out for this in our logs or through analytics software.  We provide a free trial to all our users before they decide to pay, so uers get a free look at the data already and there is no reason to try to sneak around the site to see it.  We&#8217;re not concerned with this problem, but it could be an issue for others.</p>
<h3>Problem 2: How to prevent Google from caching private pages</h3>
<p>Once Google starts indexes pages of your site that require a login for a normal user, it will also start caching all the sites that it visits.  If you are worried about your internal content getting cached by Google you will want to prevent Google or any other robots from caching.  This is simple and is accomplished by putting the following in the heading of your main layout file.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&amp;lt;META name=&quot;robots&quot; content=&quot;index,follow,noarchive&quot; /&amp;gt;
&amp;lt;META NAME=&quot;googleBOT&quot; CONTENT=&quot;noarchive&quot; /&amp;gt;</pre></div></div>

<p>When Googlebot reaches your page and sees this tag, it will not cache it.  I have this on the Myhealthcaresource layout, and by searching <a href="http://www.google.com/search?q=myhealthcaresource&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a">myhealthcaresource in google</a> you can see there are no cache links.</p>
<h3>Problem 3: Allowing Users Referred From Google View Content Without Logging In</h3>
<p>When a user sees a link to myhealthcaresource on a set of Google search results, they are most likely to the detailed facility reports that I submitted in a sitemap.  They probably searched their company name or their own and found that they were referred to by my site&#8217;s information.  When someone clicks this link in Google, by default they would get redirected to a page asking them to log in.  This would make almost every user referred from Google resort to their back button immediately.  I noticed this behavior during the period when my site functioned this way.  These users from Google have no idea what kind of information our site offers and they might be a potential customer, so we don&#8217;t want them to leave because we present a log in form when they first arrive.</p>
<p>An alternative is to allow users referred to our site through a Google search to view the entire page.  We decided to do just this.  When they click the link in Google&#8217;s search results they are not asked to log in and they are shown the same page a logged in user would see.  What happens when they try to browse the rest of the private content?  They are asked to log in, but we already have their interest at this point and they are more likely to stay if they found something that was useful to them on the page they landed on.</p>
<p>So how do we accomplish this?  In a similar way that we allowed Googlebot to traverse our pages, we can allow users that were referred from Google to access our page:</p>

<div class="wp_syntax"><div class="code"><pre class="rails" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> FacilitiesController <span style="color:#006600; font-weight:bold;">&amp;</span>lt; ApplicationController
  require_role <span style="color:#ff3333; font-weight:bold;">:basic</span>, <span style="color:#ff3333; font-weight:bold;">:only</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:show</span>, <span style="color:#ff3333; font-weight:bold;">:unless</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> request.<span style="color:#9900CC;">referer</span> =~ <span style="color:#006600; font-weight:bold;">/</span>.<span style="color:#006600; font-weight:bold;">*</span>google.<span style="color:#006600; font-weight:bold;">*/</span> <span style="color:#006600; font-weight:bold;">||</span> request.<span style="color:#9900CC;">env</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'HTTP_USER_AGENT'</span><span style="color:#006600; font-weight:bold;">&#93;</span> =~ <span style="color:#006600; font-weight:bold;">/</span>.<span style="color:#006600; font-weight:bold;">*</span>Googlebot.<span style="color:#006600; font-weight:bold;">*/</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Of course this code would vary slightly if you are using a different authentication scheme.  The core idea would be the same though.  Now, the potential problem that could come up with this is that a malicious user uses Google to repeatedly access your site by creating clever search queries.  In our case, if a user is this intent on stealing the data, we weren&#8217;t likely to win them as a customer in the first place.  We can also monitor this through analytics tools and if it is abused we will look into an alternative solution.  It could be possible to restrict the number of Google referrals a certain IP can have in a time period or something.</p>
<p>I hope that some of this work can be useful to people who are looking for ways to leverage Google for their dynamically generated login-only content.  We see people come from Google searches every day, and now they stay much longer as a result of these changes.</p>
<p>In a future post, I will briefly talk about another method our site uses to send links to users that allow them to browse the site freely without logging in.  After a certain time period these links expire and the users must sign up to browse the site further.</p>
]]></content:encoded>
			<wfw:commentRss>http://chase.ratchetsoftware.com/2009/06/treat-google-referred-users-special/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>URL Archive System or: URL Hacking Made Easy</title>
		<link>http://chase.ratchetsoftware.com/2008/11/url-archive-system-or-url-hacking-made-easy/</link>
		<comments>http://chase.ratchetsoftware.com/2008/11/url-archive-system-or-url-hacking-made-easy/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 02:53:32 +0000</pubDate>
		<dc:creator>chasemgray</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://chase.ratchetsoftware.com/?p=125</guid>
		<description><![CDATA[Have you ever found yourself slightly modifying a URL to try to find something you know used to exist or should exist but you keep getting that dreaded 404 page?  Perhaps you were trying to find something that shouldn&#8217;t be online anymore but it was simply unlinked to, benevolent purposes or otherwise? Another example might [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever found yourself slightly modifying a URL to try to find something you know used to exist or should exist but you keep getting that dreaded 404 page?  Perhaps you were trying to find something that shouldn&#8217;t be online anymore but it was simply unlinked to, benevolent purposes or otherwise? Another example might be that a site&#8217;s main homepage is down and so many users are unable to access the site.  If they had a list of URLs they could see which are still valid very quickly with the URL Archive and go to the site through those URLs.  <a href="http://www.googleguide.com/cached_pages.html">Google cache </a>and <a href="http://www.archive.org/web/web.php">Wayback Machine</a> get you pretty close to what you&#8217;re after but sometimes they just fall a little too short.  Some things are beyond even<em> </em>Google&#8217;s giant umbrella of web applications (at least for now).</p>
<p>I&#8217;m sure an application focusing more on URLs is somebody&#8217;s 10% project somewhere sitting on the backburner until they have time to finish it.  It seems like almost anything you&#8217;d want to do has a corresponding web application.  When I come across a need that doesn&#8217;t I just feel like that void should soon be filled.  I&#8217;m going to outline the application that I believe would fill this void.  Maybe in future posts I&#8217;ll also walkthrough my attempts to do it as my personal .5% project.<span id="more-125"></span></p>
<h3>Doesn&#8217;t this already exist?</h3>
<p>When giving the quick summary of what I envisioned for the project the first question I get is, &#8220;Doesn&#8217;t Google Cache already do that?&#8221;  My initial reaction is that if it did, I would already be using it for that purpose.  After thinking about it, it doesn&#8217;t seem like that far of a stretch for Wayback Machine or Google Cache to archive URLs as well.  I feel like the real kicker is that in order to make it useful there would have to be extra processing and utilities for the URL archive.  The information is already there, so what needs to be done is create an interface for analyzing the URL a site has.  Before talking about the ideal solution, first let&#8217;s look at what is offered by Google Cache and Wayback Machine already to compare.</p>
<p>To get this sort of functionality out of Google Cache as far as I know is to use a &#8220;site:&#8221; search.  So, typing in the search, &#8220;site:arena.cse.sc.edu&#8221;, I get the following:</p>
<div id="attachment_127" class="wp-caption alignnone" style="width: 510px"><a href="http://chase.ratchetsoftware.com/wp-content/2008/11/picture-1.png" rel="lightbox[125]"><img class="size-full wp-image-127" title="ARENA Google Site: Result" src="http://chase.ratchetsoftware.com/wp-content/2008/11/picture-1.png" alt="Result for site:arena.cse.sc.edu" width="500" height="271" /></a><p class="wp-caption-text">Result for site:arena.cse.sc.edu</p></div>
<p>I know that our research group&#8217;s website has lists of most of the pdfs that we have published as well a number of static pages that total more than the 17 that are listed in these results.  Of course, this site isn&#8217;t really optimized for search engines, so that might also not be helping.  Searching for just pdfs returns a measly 7 results.  Some of our papers are listed as links to other sites such as IEEE, which causes them to not get listed in these results.  Alternatively, if I could somehow easily browse all the URLs that exists for this domain, I might be able to see more information about what the website actually contains internally (more on this later).  Another experiment was to search for, &#8220;site:chase.ratchetsoftware.com&#8221;, and because this site is optimized for search engines, most of the URLs that exist were found pretty easily.  There is still no way to really tell what the site contains as an overview without going to the site or reading the provided description.  Put another way, it would be interesting to be able to see a something like a content tree that lets a viewer easily see what is contained in the site with a quick glance.  These are all things I believe can be solved and would be useful, but Google Cache and Wayback Machine are not the tools to do it.</p>
<h3>What would an ideal solution look like?</h3>
<p>I&#8217;ve given a few examples where Google Cache and Wayback Machine don&#8217;t offer what I am looking for.  I think to improve my argument it is best to talk about what the URL archive system would be in a perfect world.  It&#8217;s hard to see the difference in something that doesn&#8217;t yet exist.</p>
<p>I am going to list the features I have in mind and then explain any that aren&#8217;t obvious:</p>
<ol>
<li>Provide a list of all URLs ever found for a given domain.</li>
<li>When a user views a list, it should check and display whether that URL is still valid.</li>
<li>Organize the list of URLs so that it is tractable by a normal user.  It should have collapsible SubURLs so that only top level URLs are in the master list.</li>
<li>Provide a filter so that only URLs matching the given filter are shown.</li>
<li>Provide the ability to click on a URL to make that the new root URL for our list.</li>
<li>A utility that can display a graphical tree view of the page and its links.  If the page links to an outside page, then show the link with the icon to that page if available.  This view would ideally provide enough information and &#8220;graphics&#8221; to give the user a good idea of what is available on the site.</li>
<li>If the site uses dynamic URLs, perhaps for a site written in rails or php, there should be some sort of analysis of the GET arguments from what the system can figure out.  This might be an area where users can submit additional information to improve the analysis of a web applications generated URL addresses.</li>
<li>One of the coolest ones.  A firefox plugin that automatically helps you when trying to figure out URLs based on what is stored in the URL Archive.  So if you&#8217;re trying to modify a URL slightly, you can get real-time help and see which URLs are still valid, etc.  Firefox is good right now with it&#8217;s new location bar that automatically searches your history and all that stuff.  It&#8217;d be even better if it could help you with long URLs that you haven&#8217;t typed in before!</li>
<li>Another plugin idea would be to provide screen readers easier access to a site&#8217;s content.  If all we had are the URLs and perhaps keywords for those URLs, a blind person might be able to more easily find content quicker.</li>
<li>One more plugin would be to have a sidebar while browsing sites, and as you browse you get an updated list of URLs that have existed at your current location on the site.  This would put a sidebar on your left with all the links you might see on that site and all the URLs that you might not see but existed in the past.  This would be useful for quickly navigating huge sites, especially ones that are moving their links around a lot.</li>
<li>The last idea I can think of right now is that the system could analyze how the URLs are changing and suggest to users URLs that may be used in the future or are currently used but not linked to based on the patterns in  the current URLs and their change history.  This might be useful if someone is trying to URL hack but doesn&#8217;t have any idea where to start.</li>
</ol>
<p>I feel like number six is the one that needs further explanation in order to seem as cool as it does to me.  I believe there are already existing tools that will show you a tree view of a website.  There are definitely tools to show you this information for your own site, cause I&#8217;ve used them before.  So how does number six differ from these tools?  The answer is that it doesn&#8217;t differ dramatically, but hopefully it would offer more information because the purpose is slightly different.  Let&#8217;s give an example of a user that is looking for a site that offers ebooks in pdf form online somewhere.  The user might go to various sites by searching through Google and waste time at many sites that seem to offer ebooks but don&#8217;t have that large of a selection.  If the user could easily view a graph of each site before visiting, and turned on a filter for &#8220;.pdf&#8221;, he could hopefully see a tree that branches out into many different URLs leading to ebooks he&#8217;s interested in.  He should be able to quickly get an idea of the quantity, quality, and link validity of the site&#8217;s offerings.  Each node could be clicked on to make that node the new root node in the tree to perhaps get more specific information about a certain path.   There are many possibilities for graphically browsing a site&#8217;s URLs and URL relationships.  To me, this seems like a separate application entirely.  It might be that the site should be developed with a SOAP or REST interface and another application could be developed that provides this tree view of websites.</p>
<h3>Potential problems and Questions</h3>
<p>Not all good things come from having a URL Archive.  All the <a href="http://searchsecurity.techtarget.com/news/article/0,,sid14_gci1315588,00.html">security concerns</a> that come with Google Cache and Wayback Machine will also affect the URL Archive.  Some information that people wished to remove from the internet by unlinking it might be affected in a negative way by a system that indexes URLs forever.  Analyzng the GET parameters of a web application might be good for some users, but a malicious user could probably use this information to make the website work as it wasn&#8217;t intended.  Most of these problems come with developing this type of application.  There are tradeoffs and we just need to try to do our best to mitigate them while still providing a good service.</p>
<p>Another issue is the fact that I have no idea how to store such a large amount of information as this system would require.  I don&#8217;t even know where to begin with the indexing of URLs on the Internet.  It seems like it would take way too long with this little virtual machine on a server somewhere that I have.  I&#8217;d love to hear some comments about this.  How would one create an application like this that has to store such large amounts of information and process so much new data all the time?  Some resources relating to this would probably make for some great bathroom pulp <img src='http://chase.ratchetsoftware.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h3>Call for help</h3>
<p>In my current situation I have way too much on my plate to try to develop an application for which there would be no immediate gain.  I need to work on my own business to try to get that going before I have to get a real job <img src='http://chase.ratchetsoftware.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .  I also have an seemingly endless amount of Ph.D. work.  Despite this, I would more than willing to contribute to a project that was working on this solution.  I would even be happy to set up a Rails application on this server and with a Git repository if there were a couple developers interested in working on it.  All I&#8217;d need to distract me from my other work is a little motivation from other people&#8217;s interest, so please let me know in the comments if this is something you&#8217;d like to use or have needed in the past.</p>
<p>Thanks for reading,</p>
<p>- Chase Gray</p>
]]></content:encoded>
			<wfw:commentRss>http://chase.ratchetsoftware.com/2008/11/url-archive-system-or-url-hacking-made-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Google Interview or: How I Learned to Stop Worrying and Drink the Kool-Aid</title>
		<link>http://chase.ratchetsoftware.com/2008/09/drinking-the-kool-aid/</link>
		<comments>http://chase.ratchetsoftware.com/2008/09/drinking-the-kool-aid/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 23:42:14 +0000</pubDate>
		<dc:creator>chasemgray</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://chase.ratchetsoftware.com/?p=67</guid>
		<description><![CDATA[Around November 2007 I managed to get into Google&#8217;s Boston office for an interview.  I had always wanted to interview at Google and this was the opportunity I had been waiting for.  I had applied many times in the past, but never got anything except a generated rejection letter.  Before I got my interview and [...]]]></description>
			<content:encoded><![CDATA[<p>Around November 2007 I managed to get into Google&#8217;s Boston office for an interview.  I had always wanted to interview at Google and this was the opportunity I had been waiting for.  I had applied many times in the past, but never got anything except a generated rejection letter.  Before I got my interview and while I was studying I searched endlessly online for any tips that might help me succeed and to know what to expect.  There are plenty of resources, and I&#8217;ll highlight a couple of them.  I&#8217;m not going to reproduce what&#8217;s already been said.  I&#8217;m just going to tell the story of my visit to the Google Boston office starting with my early attempts to get an interview and ending with the actual interview and my reactions to it.</p>
<p><span id="more-67"></span></p>
<h3><span>Failed Attempts</span></h3>
<p>I probably began hoping that I could one day work at Google at the very end of High School.  Back then I was focusing on Microsoft, but stories of the Google workplace soon overshadowed my dreams of working at Microsoft.  Looking back, I think each place has its pros and cons.  Without going to Microsoft for an interview, I don&#8217;t know if I can fairly compare the two.  I will say that I would enjoy making Google&#8217;s products more than Microsoft&#8217;s.  I feel like Google is making products that are pushing things forward, while Microsoft is stuck maintaining it&#8217;s current product line. Over time there began to be various videos and articles focusing on what it was like working at Google. I&#8217;ll include a couple here instead of wasting time talking about them.</p>
<h4>CNN Covers Working at Google</h4>
<p><span class="youtube">
<object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/4YA9QWceEfE&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" />
<param name="allowFullScreen" value="true" />
<embed wmode="transparent" src="http://www.youtube.com/v/4YA9QWceEfE&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355"></embed>
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=4YA9QWceEfE">www.youtube.com/watch?v=4YA9QWceEfE</a></p></p>
<h4>Oprah Talks about Working at Google</h4>
<p><span class="youtube">
<object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/vd6BPhJjYL4&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" />
<param name="allowFullScreen" value="true" />
<embed wmode="transparent" src="http://www.youtube.com/v/vd6BPhJjYL4&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355"></embed>
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=vd6BPhJjYL4">www.youtube.com/watch?v=vd6BPhJjYL4</a></p></p>
<p>It seems pretty hard to resist the ideal working environment for a young computer scientist.  I believe I applied to only Microsoft while I was still in high school because at the time it had the most popular(infamous) <a href="http://www.microsoft.com/college/ip_overview.mspx">internship program</a>.  Although it wouldn&#8217;t be long before Google interview stories began to become synonymous with Microsoft&#8217;s.  Of course looking back there was absolutely no reason for Microsoft to decide to interview me besides a very excited sounding cover letter.  I didn&#8217;t have stellar grades, I didn&#8217;t have any completed projects to show off, and I didn&#8217;t have any recommendations from anybody that had worked at Microsoft.  So of course I got a generic rejection letter from Microsoft a few months later.</p>
<p>Throughout college I could tell pretty much the exact same story except that my resume was growing every so slightly and I believe I quit applying to Microsoft after my sophomore year of college or around that time.  I focused on the <a href="http://www.google.com/support/jobs/bin/static.py?page=students.html&amp;sid=intern">Google internship</a> program because I felt that was where the exciting things were happening.  At first, if I remember correctly, the internship at Google was available to all college students.  At one points though, probably around my sophomore year again, I noticed that they started requiring you to be a Master&#8217;s or Ph.D. candidate.   Regardless, I still applied each Summer just in case I could get lucky.</p>
<h3>Landing the Interview</h3>
<p>As you can see in my introduction post, I started doing research with my academic adviser, <a href="http://www.cse.sc.edu/~srihari/">Srihari Nelakuditi</a>, during the Summer of my sophomore year as well.  This was when things seemed to be coming together and I was getting a little recognition for all the reading and programming I had been doing up until this point.  I was a step or two above the average peer in my classes, and I&#8217;m glad that Srihari could see some sort of potential.  I continued to apply every Summer for an internship at Google and also at <a href="http://www.fogcreek.com/Jobs/SummerIntern.html">Fog Creek Software</a>.  I had hopes that with my growing resume and research experience I might slip into an interview at one of these internships.  If I did not get the internships I was funded by my adviser to continue doing research in the <a href="http://arena.cse.sc.edu/">ARENA</a> lab over the Summer.  I continued at the University of South Carolina into my Graduate studies and got to the point where I was about to complete my Master&#8217;s thesis.  During my second to last semester as a Master&#8217;s student I got a lucky break.</p>
<p><a href="http://chase.ratchetsoftware.com/wp-content/2008/09/thumbs-up.jpg" rel="lightbox[67]"><img style="float: right;" title="Yay for references!" src="http://chase.ratchetsoftware.com/wp-content/2008/09/thumbs-up.jpg" alt="(Thumbs up) Yay for references!" width="100" height="100" /></a>Apparently my adviser had a few hookups at some of the companies I had been applying to over the years and was waiting until I was ready to refer me to them.  So, he told me one day that he gave me a reference to Google and I would be hearing from them soon.  It seemed kind of surprising that it should be so easy, but I&#8217;ve always read that these good jobs were about connections.  Sure enough&#8230;a few weeks later I got an email from a woman at Google recruiting.  This was the same location that had sent me all those generated rejection letters in the past.  I had a pretty similar resume this time, my experience only consisted of six extra months since the previous rejection, only this time I had someone else say, &#8220;Hey, hire this guy&#8221;.  It makes me wonder if I could have had only the reference and still be contacted by the recruiting department.</p>
<p>So, the first interesting thing someone might wonder who&#8217;s been attempting to get a job at a place like this is what do they say in an non-rejection email.  Well, here is the first email I got from the recruitment woman.</p>
<p><a href="http://chase.ratchetsoftware.com/wp-content/2008/09/google_recruitment_letter.jpg" rel="lightbox[67]"><img class="alignnone size-full wp-image-94" title="google_recruitment_letter" src="http://chase.ratchetsoftware.com/wp-content/2008/09/google_recruitment_letter.jpg" alt="" width="597" height="433" /></a></p>
<p><img src="file:///Users/chasegray/Desktop/thumbs-up.jpg" alt="" /></p>
<p>We continued talking about what kind of position I was looking for through a few email exchanges.  They were very nice and she even asked me about things in my extra-curriculum activities that were not related to Google, it seemed we had some similar interests.  For various reasons, I decided I didn&#8217;t want to go to California and instead let her know that I was interested in a Software Engineer full-time position at the Boston office.   I sent her my two page curriculum vitae and my current unofficial transcript and I was moved on to the next step.</p>
<p>So what came next was an email from a recruiter from the Google -- Boston office.  He immediately asked for a good time that he could call me and talk about various opportunities at his office.   Somehow I missed his first call because I believe he called my old phone for some reason.  The only explanation I had was that they had me in their database from previous resumes, and these old resumes had my old phone number on them.  So, all those old resumes had been getting into their system after all  <img src='http://chase.ratchetsoftware.com/wp-includes/images/smilies/icon_confused.gif' alt=':-?' class='wp-smiley' />  . This happened on more than one occasion and still confuses me why they kept using the old number.  He was a cheerful sounding guy who seemed to make every effort to put me at ease during the whole process.   I was worried at first this might involve some technical questions but I found out that it was just to talk to me and make some plans for the interview process.</p>
<p>The first step of most Google interviews is the infamous phone interview.  In this process you are supposedly asked questions by one or more engineers over the phone and you are supposed to talk your way through the problem.  There are a lot of examples of these online, so that&#8217;s where I&#8217;d recommend looking for them.  They are usually questions that aren&#8217;t exactly computer science, or slightly related, but lend themselves to solutions that could be spoken out over the phone.  The reason I don&#8217;t have any personal examples is because I got pretty lucky while talking to this guy on the phone.  It just so happened that my girlfriend and her parents were going to be going to Boston about a month later.  He mentioned something about a phone interview sometime later and I said that I would probably already be visiting Boston around that time.  I waited and hoped he would make the same conclusion that I had and he did.  He asked me if I would prefer to just come on in to the office when I was visiting then.  I was ecstatic , both because I didn&#8217;t have to take the phone interview and because I was going to Google&#8217;s office in Boston in less than a month!  I don&#8217;t know if I could recommend the same process to anyone else, but it worked for me.  I was going to have to pay for my hotel because I was arriving one day earlier than my girlfriend but it was OK with me.  They said I should come in at about 10:00AM and my interviews would last until about 2:15PM including lunch.  I asked about what to wear and I was told it&#8217;s pretty casual in the office so I should probably wear something semi-formal like a collared shirt and slacks.  Now all I had to do until the big day was to try and prepare for whatever questions might be asked of me during my technical interview.</p>
<h3>Preparation</h3>
<p>Like most people preparing for a technical interview, I didn&#8217;t have any idea where to begin.  It seemed like they could ask me anything.  Looking up examples of past questions from Microsoft and Google only made me more worried.  The questions I found were mostly reasonable, but some were just so weird and I had no idea how to solve them.  Regardless, one of the best ways to prepare was to study these example questions.  Not so much to memorize the answer, but to understand the thought process behind the answer.  Most of the questions people seem to face have similar fundamental problems.  The biggest challenge is to take a problem you are presented and trying to put it into terms similar to a problem you already know how to solve.  Many of the traditional problems could be found in most algorithms books.  It seems like algorithms pretty much dominate the questions, but all other areas of computer science are fair game.</p>
<p>I&#8217;ll try to list some of the resources I found.  I didn&#8217;t exaustively try to understand every problem, but I spent a while going over things that I didn&#8217;t understand and refreshing mysefl with fuzzy areas.  Again, the idea was to try and be capable of coming up with my own solution based on the knowledge I had, not to memorize answers.  Aside from studying algorithms and previous questions, my adviser also gave me a book with quick hacking tricks used in programming.  These ranged from how count the number of ones in a binary number quickly to various memory hacks.  I&#8217;ve seen that people were asked questions relating to these dirty hacks but they are mostly there to increase your bag of tricks.</p>
<ul>
<li><a href="http://www.acetheinterview.com/questions/cats/index.php/microsoft_google">Ace The Interview</a></li>
<li><a href="http://ofb.net/~niniane/interview_howto.html">Some good general tips for a technical interview from a Microsoft interviewer</a></li>
<li><a href="http://answers.google.com/answers/threadview/id/751886.html">Huge list of compiled questions from interviews.</a></li>
<li><a href="http://www.allinterview.com/">http://www.allinterview.com/</a></li>
</ul>
<h4>How to Hack the Technical Interview</h4>
<p><span class="youtube">
<object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/4KyCPiJPx48&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" />
<param name="allowFullScreen" value="true" />
<embed wmode="transparent" src="http://www.youtube.com/v/4KyCPiJPx48&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="355"></embed>
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=4KyCPiJPx48">www.youtube.com/watch?v=4KyCPiJPx48</a></p></p>
<p>After reading algorithms and technical interview questions for a few weeks during my free time.  I was finally getting prepared to hop on the plane to Boston for my interview.  I was very excited to get to see Boston for the first time.  It was also going to be when we told my girlfriend&#8217;s parents about our engagement, so it was going to go well even if my interview went bad.</p>
<h3>The Boston Office</h3>
<p>Arriving in Boston I got into my hotel near the airport and planned to stay in the entire night reviewing some basic algorithms.  I started to make sure I had everything to wear for the next day.  A nice collared shirt and black pants.  I realized at this point that I had forgotten to bring a belt, and the pants didn&#8217;t fit perfectly around my waist so it was a required piece.  I started to get pretty worried and was looking for a quick solution.  I decided to look online for the closest store.  I was near the airport so there was nothing at all.  I just got out of the hotel and walked on foot through East Boston for about 30-45 minutes until I came across an area that had some sort of stores in it.  I had very little hope though that I would find a belt for my outfit in what looked to be a mexican area of East Boston.   To my surprise I found a small mexican shop that sold clothes.  When looking through their limited supply of belts, I found that they all looked like this:</p>
<div id="attachment_106" class="wp-caption alignnone" style="width: 210px"><a href="http://chase.ratchetsoftware.com/wp-content/2008/09/b150-bc-atn.jpg" rel="lightbox[67]"><img class="size-medium wp-image-106" title="b150-bc-atn" src="http://chase.ratchetsoftware.com/wp-content/2008/09/b150-bc-atn.jpg" alt="Tacky Belt" width="200" height="200" /></a><p class="wp-caption-text">Tacky Belt</p></div>
<p>This would obviously not do for my interview!  They did have one generic brown belt. I asked for it without trying it on at all and left.  I went to some pasta place for dinner and brought it back to the hotel.  When trying the belt on later that night I realized it was GIGANTIC!  I had to figure out a way to cut a hole in it and figure out a way to make it stay on and hold my pants up throughout the all day interview.  This was the biggest issue I faced during my entire time at Boston, so I think that makes my trip a relative success.</p>
<p>I woke up the next morning pretty early so I had time to figure out the train system and where I had to go.  I needed to get from East Boston over to Cambridge.  Obviously this wasn&#8217;t too much of an issue and pretty soon I was right next to the MIT campus looking for which building Google was located in.  The lady had given me the address, &#8220;One Broadway, Cambridge, MA&#8221;.  Apparently it was this big building here:</p>
<div id="attachment_99" class="wp-caption alignnone" style="width: 510px"><a href="http://chase.ratchetsoftware.com/wp-content/2008/09/google_boston_office_far.jpg" rel="lightbox[67]"><img class="size-full wp-image-99" title="google_boston_office_far" src="http://chase.ratchetsoftware.com/wp-content/2008/09/google_boston_office_far.jpg" alt="Google Boston office from across the street" width="500" height="371" /></a><p class="wp-caption-text">Google Boston office from across the street</p></div>
<p>Walking up closer you can see that it is just a typical office building.  There was nothing flashy or fancy about the outside, but Google was located on the 7th floor (and I would learn also another floor as well).  I expected at least the 7th floor to have the &#8220;Google look&#8221;.</p>
<div id="attachment_100" class="wp-caption alignnone" style="width: 510px"><a href="http://chase.ratchetsoftware.com/wp-content/2008/09/google_boston_office_close.jpg" rel="lightbox[67]"><img class="size-full wp-image-100" title="google_boston_office_close" src="http://chase.ratchetsoftware.com/wp-content/2008/09/google_boston_office_close.jpg" alt="Google Boston office front doors.  Then 7th floor." width="500" height="370" /></a><p class="wp-caption-text">Google Boston office front doors.  Then 7th floor.</p></div>
<p>For those of you who are truly interested, here is an embedded map of the location:</p>
<p><iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=one+broadway+cambridge+ma&amp;sll=37.0625,-95.677068&amp;sspn=47.569986,110.742188&amp;ie=UTF8&amp;om=1&amp;t=h&amp;s=AARTsJpceGoIulIA0O5DwI-fholfrgYv0Q&amp;ll=42.368342,-71.086049&amp;spn=0.011097,0.018239&amp;z=15&amp;iwloc=addr&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=one+broadway+cambridge+ma&amp;sll=37.0625,-95.677068&amp;sspn=47.569986,110.742188&amp;ie=UTF8&amp;om=1&amp;t=h&amp;ll=42.368342,-71.086049&amp;spn=0.011097,0.018239&amp;z=15&amp;iwloc=addr&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
<p>I then used my extra time to sit at a nearby Cosi restaurant and get some breakfast and relax.  I was going to be in interviews for the next 4 or 5 hours.  So I finally went inside the building and up to the 7th floor to see what awaited me.</p>
<h3>The Interview (and Lunch)</h3>
<p>I walked off of the elevator to a big happy Google logo in the main hallway.  Then there were two glass doors that needed a card to unlock them.  Luckily someone was walking out and I walked in.  There was a lady at a desk to greet visitors and she had me sign in on a computer with a little application they had.  I had read somewhere that the Mountain View office has a big screen with real-time searches being displayed.  I had also read someone&#8217;s blog that the Boston office did not have one of these screens.  I was pleasantly surprised to find that there it was in all its glory to entertain me while I sat on one of the fancy Google colored chairs amidst the various toys and Google exercise balls on the floor.  As I looked around there were a couple offices (one with guitar hero) and a surprising amount of women.  As I would later learn, this was primarily the sales floor, which explains the large number of women.  Finally, my recruiter came out and greeted me and took me up to a higher floor where they had more of their engineers hiding.</p>
<p>The upper floor was still very nice and people were not too cramped at their desks.  There were not an cubicles, mostly open space.  Everyone had two monitors and either a PC or a Mac.  Some people had portable video conferencing devices so they could work with people from other offices with constant <a href="http://chase.ratchetsoftware.com/wp-content/2008/09/dog-mean.jpg" rel="lightbox[67]"><img style="float: right;" title="Mean Dog" src="http://chase.ratchetsoftware.com/wp-content/2008/09/dog-mean.jpg" alt="" width="100" height="100" /></a>communication.  Everyone I ran into seemed very nice.  It looked like the upper echelon of computer scientists.  That&#8217;s a weird way to put it, but most people reading this probably know what the lower portion of computer scientists consist of.  I&#8217;m talking social skills of course, not technical.  I was told that this office was becoming too small and they would soon be moving to a larger building.  Apparently, they would soon be allowed to bring dogs to work on one of the floors of the new building!  I always loved the thought of bringing my dogs to work with me instead of leaving them at home to be bored all day. After the quick walk through the upstairs office I was brought into this little room with a desk, a chair, and a whiteboard.</p>
<p>The interview began with a conversation between me and my recruiter who I had talked with on the phone one month prior.  We talked about what it was like to work at Google -- Boston.  He wanted to answer any sort of question I might have.  So I asked about all the various things their office did, the normal workday, the time commitment, etc.  Overall I got the feeling that the Boston office was more consistent in their eight hour workdays because the average age of employees was higher and they had families at home, etc.  I was very worried about all the articles I read about online about Google employees working to death without much compensation.  He then told me how the interview process was going to proceed.  I was going to be interviewed by four different engineers for 30 minutes each.  In the middle I was going to have lunch with another engineer.  With that he said his goodbyes and good lucks and introduced me to my first interviewer.</p>
<p>In order to avoid any problems, I&#8217;m only going to generically talk about the problems any of the engineers gave me.</p>
<p>The first engineer was a small asian guy who seemed very friendly.  He sat down across from me and asked a few questions about my research experience and tried to try to get a handle on some of my previous projects.  He then asked if I had any questions about Google for him and we moved on to the technical questions.  He had two questions for me.  Given an array of stock prices, what would be the best buy and sell point to make the most money.  I had read about problems similar to this while studying.  I had to modify it a bit in order to get the solution.  The similar problem I had studied was finding the largest sum of an array of positive and negative numbers.  For the stock question, I had to change each number to instead be the gain or loss for that day.  Then, the problem reduced to the largest sum of contiguous elements or <a href="http://en.wikipedia.org/wiki/Kadane%27s_Algorithm">Kadane&#8217;s algorithm</a>.  The second question was given a set of N terms, you have N linked lists each containing an IDs of a webpages that match the term the list corresponds to.  The important thing was that each list was in sorted order. I was to come up with a method to AND multiple terms together and retrieve the matching pages.  This was not similar to a problem I had studied and I had to come up with a couple ideas before settling on one.  The fact that they are in sorted order allows you to quickly determine if you need to continue a search or not in the second list.  The biggest challenge was when the interviewer then asked me to implement it.  I stumbled a bit with some exceptional cases and the fact that the board was so tiny.  We ran out of time before it was perfect, but I felt that it was sufficient.</p>
<p>The second engineer came in immediately after the first.  He was a larger bearded American guy. He also seemed nice, but much more focused and serious.  We started with the discussion about my experience just as the last engineer did, but we talked in depth about one of my networking research projects with sensor networks.  I was very surprised with how well the engineers seemed to have read my resume, they were very prepared and I appreciated that.  We then moved on to the questions.  The first one was tricky at first but I was able to get it without too many hints from the interviewer.  He was mostly giving positive sounds when I talked about something that was close to the right solution. The question was given a random number generator that generates the numbers between 1 and 7, how do you create a random number generator that generates 1 through 10 uniformly?  This was similar to questions I had read online about biased coin flipping.  You basically have to generate twice and take all the combinations that can occur, ie (1, 1), (1, 2), of which there should be 7*7=49.  Divide these sets evenly into 10 sets.  Then if you generate a combination that falls within one of these 10 sets, you have a number uniformly between 1 and 10.  There will be some sets that are left over, and if you get one of these you must regenerate your numbers.  He extended the question by asking what is the probability that you will have to regenerate your random numbers.  Then he further extended the question to ask if you could reuse the previous rolls so you only had to regenerate one random number.  So I&#8217;ll leave this one to you.  I then had to determine the probability of not getting a uniform number between 1 and 10 after 7 attempts or something like that.  His second question was much more discussion oriented.  He asked me to talk about how networking would be implemented in a simple board game.  He wanted to know how the data was sent over the network.  We focused on connect four because I had experience programming this game before.  We went into all the details of what each player must know about their opponents in order for them to play the game.  We then talked about what a player would need in order to be an observer, or to join a game in the middle, etc.  There wasn&#8217;t any tricks to this question, we just talked about game networking basically until our time ran out.</p>
<p>Finally, I was out of the first two interviews and they seemed to have gone relatively well.  I was now introduced to my third engineer and he was supposed to have lunch with me.  There are a lot of stories about the food services at Google.  I wasn&#8217;t sure what the setup would be in the Boston office, but I was hoping it was still free.  Sure enough, free lunches are the norm even at a smaller office (30 engineers) like this one.  It wasn&#8217;t one quite as big a scale as the Mountain View campus is, but it was a buffet of above average food brought down from a catering service on an upper floor of the same building.  I don&#8217;t remember what I had, but it was pretty healthy and tasty.  I was very excited about the giant glass doored fridge they had filled with all kinds of free sodas and water bottles.  I had a pretty tasty sparkling lemon drink that was covered with a foil top that you had to remove before opening it.  I don&#8217;t remember the name but I wish I did so I could get some.  The guy said they replaced the Sprite in the office with the lemon drink.  During lunch we talked a lot about the life at Google.  The guy had a lot to say about the people you get to work with, the types of projects and languages used, and his own experiences during the interview.  There were a couple other Googlers that sat down with us and joined in the discussion about life at Google.  Everyone seemed pretty happy while they enjoyed their free lunch (and free cake).  There were a bunch of board games in this room that looked like they were played when people were not eating.  It was a pretty small room for a cafeteria, like a large conference room that they placed lunch tables in.  I was pretty surprised to hear that you could bring friends and family to the lunch with you for free as long as you let them know they were coming ahead of time.  Another interesting thing I learned was that most of the engineers at this office were from MIT.  So much so that they all had stories of when they were in college together and partied together.  I had read previously that Google had a preference for Ivy league schools, and this kind of worried me about my own educational background.  After our talk we walked around the office for a more formal tour.  I saw most of the office the first go around because it was pretty small, but they said they would be moving pretty soon to a bigger location.  We ended back at the small office where I would continue the last two technical interviews.</p>
<p>I don&#8217;t know how to describe the next engineer except as spunky.  He was very happy and excited to be working there.  He explained to me that every Google employee spends about three months or so at the main campus in Mountain View, CA for training.  They said it&#8217;s a pretty crazy experience unlike anything else.  So we started back with the standard talk about my experience and moved into the technical questions.   I&#8217;m sorry but I can only remember one of the questions posed by this interviewer.  He asked me to describe all the details involved in implementing something similar to the wireless access points at the airports.  When you first log on it redirects your browser to a page that forces you to either pay or sign in.  We talked about various security concerns and problems with the current approach.  He then asked me a question I did on the white board but can&#8217;t remember it for the life of me.  It might have been the stock quote question that I thought was in the first interview.  It really doesn&#8217;t matter though as I think all the questions I was asked are in this post somewhere.</p>
<p>The last interviewer was another large bearded American guy.  We again talked about my experience and any questions I might have about Google.  The questions posed by this engineer were the ones that stumped me the most.  One was very simple but I was too quick to come up with a solution and it had some flaws.  The question was given a binary tree, determine if it is a binary search tree.  This is a typical problem and I should have had an immediate answer.  My answer did not work on a special case and he didn&#8217;t tell me this before asking me to implement it.  I then ran into trouble while implementing it and we talked about why and figured out what my problem was.  This interviewer didn&#8217;t seem near as excited or happy to be interviewing me as the previous engineers.  The second question he asked was an event scheduling problem.  Basically you were given events with a start time and an end time.  You were then to determine if there were any conflicts in any of the events.  He would then extend the question to find a O(n) solution.  I don&#8217;t think I came up with a solution to his satisfaction during the interview.  My solution involved a hashing technique so we could determine collisions between events if the same hash was found.  I&#8217;m sure there is a much better solution, but this was at the end of the day and the guy was not being very helpful with hints.  I  felt the worst about this interview and so I left on a bad note.</p>
<p>I was then taken downstairs by another engineer and we made sure everything was in order and he said goodbye.  I felt kind of rushed out the door without any kind of thank you for coming or anything like that.  I felt good about most of the interview, but the last interview would bother me for the next few weeks.</p>
<h3>Aftermath</h3>
<p>So I was finally back home and couldn&#8217;t stop worrying about the results of the interview.  I waited a few weeks but didn&#8217;t hear anything back.  I had sent a thank you email a couple days after the email but I didn&#8217;t get any reply.  After about three weeks my secondary phone rang (again I don&#8217;t know why they have this number).  It the recruiter from the Boston office and he was letting me know that I didn&#8217;t get the job.  He said my background was not matching what they needed at that time.  I thought this was a very odd way of putting it.  This made me think that the rumors about them preferring certain colleges were at least partially true.  I&#8217;ll never know the real reasons why, but I did feel that I did pretty well during most of my interview.</p>
<p>Since then, I&#8217;ve come to terms that I might not be a good fit for a company like Google.  I feel like I should be putting my talents to actually create something useful and start my own company.  I know it&#8217;s a common dream, but I feel like I have a few good ideas and I&#8217;m working to make them a reality.  So, I haven&#8217;t applied to any new companies since then because I&#8217;ve been doing Ph.D. work and working on my own company Ratchet Software.</p>
<p>I hope that this story about my experience interviewing at Google will be of some sort of help to someone.  I know when I was interviewing I was looking for every resource I could find on the topic.  I had only found one blog post that mentioned anything about the Boston office.  I know there are a ton of people trying to get their foot in the door at Google.  I just hope that my story helps them do that.  Good luck to all the future Googlers out there.  I own some Google stock and would love to see some of you young motivated engineers come up with the next Gmail.   <img src='http://chase.ratchetsoftware.com/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' /> </p>
<p>- Chase</p>
]]></content:encoded>
			<wfw:commentRss>http://chase.ratchetsoftware.com/2008/09/drinking-the-kool-aid/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

