<?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; Personal</title>
	<atom:link href="http://chase.ratchetsoftware.com/tag/personal/feed/" rel="self" type="application/rss+xml" />
	<link>http://chase.ratchetsoftware.com</link>
	<description>Chase Gray'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>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>
		<item>
		<title>Technical Background</title>
		<link>http://chase.ratchetsoftware.com/2008/08/technical-background/</link>
		<comments>http://chase.ratchetsoftware.com/2008/08/technical-background/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 00:07:13 +0000</pubDate>
		<dc:creator>chasemgray</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[school]]></category>
		<category><![CDATA[business]]></category>

		<guid isPermaLink="false">http://chase.ratchetsoftware.com/?p=5</guid>
		<description><![CDATA[I&#8217;ve decided it will be good for me if I can sit down once a week and try to write about a problem I had to solve that week, either in my daily life or working on a project. The biggest problem for this week was actually making myself sit down and write something on [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided it will be good for me if I can sit down once a week and try to write about a problem I had to solve that week, either in my daily life or working on a project.</p>
<p>The biggest problem for this week was actually making myself sit down and write something on here.  I don&#8217;t think that would be very interesting to readers or my future self so I&#8217;ll fore go the discussion of that.</p>
<p>I think the first thing I should do is explain my background.  I am a Ph.D. candidate at the University of South Carolina (USC) working in the ARENA for Research on Emerging Networks and Applications (<a title="ARENA" href="http://arena.cse.sc.edu" target="_blank">ARENA)</a> lab.  Here I focus on developing new wireless network protocols in an endless quest to publish papers.  I have been with Dr. Srihari Nelakuditi since about 2004, when he hired me as an undergraduate researcher.  We have presented multiple papers together.  One was presented at MobiCom and can be found in the Mobile Computer Communications Review (<a title="Pair-wise resistance to traffic analysis in MANETs" href="http://portal.acm.org/citation.cfm?id=1374512.1374518&amp;coll=ACM&amp;dl=ACM&amp;idx=J548&amp;part=newsletter&amp;WantType=Newsletters&amp;title=ACM%20SIGMOBILE%20Mobile%20Computing%20and%20Communications%20Review" target="_blank">MCCR</a>), it is on security in Mobile Ad Hoc NETworks (MANETs).  Another notable paper was presented at the WiMesh workshop 2008 at SECON, it is not yet available online and focused on bit-rate selection in oppotunistic routing.  The second paper was also the focus of my Master&#8217;s Thesis.</p>
<p><span id="more-5"></span></p>
<p>During my time as a student at USC, I have worked on quite a few side projects.  Some of these were related to school and some could be seen as distractions.  I spent some time doing contract work on a health-care data system for a director of marketing of a contract company for nursing homes.  I have since used my experience in this field to try to create a large scale public web application providing similar information.  The project is being developed in Ruby on Rails, my first large scale project using the framework.  I have been very happy with it for the most part, and I hope that I can provide some useful insight into problems I have faced while programming with it.</p>
<p>During this Summer of 2008, though, I took a break and had a tour at a nameless agency in the Maryland area doing computer science research <img src='http://chase.ratchetsoftware.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .   This was very fun, but nonetheless the day to day government work motivated me even further to pursue my goal of having my own business.  I know (and am told very frequently) that this is a pipe dream and every young computer scientist wants to have their own company, but I feel like I have the motivation and drive to bring a reasonable idea to fruition.  If the completion of my plans does not bring any type of success then I will simply move on.  The key point is that I do plan to have an operational business before deciding that it is not successful.  I believe this is the reason most technical start-ups fail.  They don&#8217;t realize how much work is involved in creating their envisioned product.</p>
<p>I have also spent some time while at school developing games.  See, this was my first love with computers.  I fully expected to be a video game developer by the time I graduated college.  There are multiple things that changed my mind about this goal.  The first is that I feel like the industry has totally changed.  This might be due to many reasons.  My observations lead me to believe it is a combination of the following</p>
<ol>
<li>The large emerging market of the casual gamer, usually on a console.</li>
<li>Companies like EA buying up every company they can and losing all creativity in their games for the sake of optimization.</li>
<li>The failing PC market for games, which prevents the small developers from getting a market unless they can get their game on one of the major consoles.</li>
</ol>
<p>So, I feel like the video game market is no longer somewhere I would like to work, besides a select few companies.  The competition for getting into the industry is enormous.  I feel like I could find a very enjoyable job in normal software development that pays much better, has less stress, and does not require me to do a little dance for the hiring guys culling through hundreds of potential code monkeys.  Regardless, I still took a game development class this past semester.  Despite having a five person team, it ended up giving me much needed experience with slack teammates.  I&#8217;ve had slack teammates before, but most of the time it was because they were either incapable of creating decent code, or they just didn&#8217;t care about school in general.  This graduate class was different though, in that my teammates were perfectly capable of accomplishing what I tasked them with.  I believe that the problem was that they saw that I was also capable of doing it myself, so any work they didn&#8217;t finish was not going to cause them to get a bad grade.  The class ended well, our game turned out OK, but the team was very unsatisfied with themselves for being so uninvolved during the semester.  I&#8217;m generalizing about their lack of work, not every team member was horrible, I can think of two that I would have given F&#8217;s to though.</p>
<p>If you&#8217;ve read this far, you might have noticed something about the way I write and think.  I move very quickly from one topic to the next.  I often find myself talking and something comes up in my head and it seems like it would be more time efficient to talk about that instead so I simply move to that topic without a very smooth transition.  I&#8217;m afraid if I simply free write that is how it will turn out.  If I&#8217;m writing a technical article, I can rewrite it as many times as I need to.  So there will probably be two different types of writing on this blog.</p>
<p>Thank you for reading.  In my next post I am hoping to go over some problems I have faced in Rails and my current solutions to the problems.  Hopefully I can get some feedback and maybe make some improvements.</p>
<p>-Chase</p>
]]></content:encoded>
			<wfw:commentRss>http://chase.ratchetsoftware.com/2008/08/technical-background/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
