Internship at Google 2013

In the summer of 2013 I had an opportunity to be a part of the Google for whole 14 weeks. This article tells the whole story starting from the application process describing all my great experience. I was interning at Google Headquarters in sunny California and I was member of Google Research team. This article is accompanied with around 100 images from Google campus and surrounding areas.

Introduction and application process

I don't even know where to begin. I will probably tell the whole story from the beginning. Feel free to skip this gentle introduction if you want to read about Google internship.

Internship situation

I come from Czech Republic and internships are not very big deal there. Smaller companies usually do not take interns at all and there are not many large companies like in the USA. Even though it is possible to get some cool internship over the summer I know just a few people who actually did. One of them is my good friend Milan who got internships at Google and Microsoft — wow.

However, the situation in the USA is very different as I discovered early after coming there. As you probably know USA (and especially California) is home for nearly all giants in computer science including Apple, Facebook, IBM, Microsoft, and of course Google. And all of them are actively searching and hiring a lot of interns. The competition for internships is also really high.

First semester

Shortly after beginning of my first semester I happened to become a member of ACM SIGGRAPH student chapter where I was exposed to regular resume reviews and demo reels. I did not even know what a "demo reel" means before! Demo reels are more for people like animators or artists to show off their skills but I really liked the idea of it so I decided to do something as well.

I decided to use Malsys (my bachelor's thesis about L-systems) to create cool animation of growing trees in the shape of letters HPCG which was the name of my research group. In order to create the animation I generated OBJ models with Malsys, rendered them nicely in Maya and composed video in Adobe Premier. I have never heard about program Maya before, and suddenly it turned out that it is the number one software for 3D modeling out there. I would like to thank guys from ACM SIGGRAPH student chapter for great feedback and Professor Ray for helping me with Maya.

Figure 1: Some frames from animation of growing HPCG logo made as my \

Applications

You might be questioning why I mentioned the demo reel and how does it relate to Google internship. Actually, it made me work on my portfolio and the whole exposure to stuff about internships, where to apply, how to apply, and how to improve your chances was very beneficial. Right about that time I created my LinkedIn profile and prepared my resume for applications. I think that the whole initiative improved my chances greatly.

First I wanted to apply for Google because it was in my eyes the coolest company to work for. But shortly after opening the application form there was a field for a cover letter. I never wrote a cover letter before and I had no idea what to write there so I skipped the Google application for now. I applied for Microsoft because of my knowledge of C#, for Intel because they do cool stuff and for Apple just because I was curious. None of those companies required a cover letter so the application process was straight forward.

Back to the Google application. I spent like a week by working on my cover letter for the application. It is very important to write a good and informative cover letter that nicely shows the qualities you have and what you can offer to the company. It is also important to ask some native English speaker to proofread the letter for you. Twice. I decided to include my cover letter for you reference below.

Finally, I applied to Google as well and that was my last application. I was so excited about it! I even saved all the "thank you for application" screens as you can see in Figure 2.

Figure 2: Final screen of on-line internship applications.

Cover letter

I know that writing a cover letter may be quite hard so I decided to show you mine. I am not claiming that this is a particularly good cover letter but it worked in my case.

Dear Hiring Committee,

I am interested in the internship position for Summer 2013 as Software Engineer which I found on Google website. In my eyes, Google is a great company with a rich portfolio of high quality services. I would be grateful to have a chance to be part of it.

I have degree from Computer Science specialized in programming with strong mathematical background. I have broad set of technical skills that are required for such a position. I am able to navigate in large code-bases and write clean, self-documented code. Working as a part of a talented team is a great opportunity and comes naturally to me. I would love to contribute to projects that will have a world-wide impact.

Currently, I am pursuing my master's degree at Purdue University and am employed as a Research Assistant. Our research project is about usage of graph grammars to represent a road network of cities. This involves implementing algorithms in C++ for encoding and decoding graphs as grammar with respect to geometry information. One of the challenges of this project is efficient usage of many famous graph algorithms, such as sub-graph isomorphism or largest clique finding, which are NP-complete algorithms.

As work toward my Bachelor's degree, I built relatively complex web service for generating L-systems. This project enhanced my skills in a great way because it involved implementing wide range of features such as parser and compiler for L-system language, modular extensible library for generating L-systems, modern web interface and database for storing non-trivial relationships between generated L-systems. For distinguished work in high school, I created a music sheet recognition program. Input is image of music sheet and output is MIDI file which can be played by any player. The biggest challenge of completing this project was recognition of notes because, unlike characters, not all of them can be recognized statistically by matching them against a database. I won a prestigious prize for this project, and its ceremony was broadcast on national television.

I have been programming since I was 12 years old. My first program was console snake written in Borland C running in MS DOS. I still can remember that beep sound when snake ate an apple. After few years of PHP and Java, I transitioned C# which is now my favorite language. At college, I discovered the beauty of functional languages such as Haskell or F# and I started to use some techniques of functional programming in other languages. During the last few years, I have been programming mainly in C++. Programming is my passion, and the best reward for me is when somebody appreciates my work.

I am confident that I am able to offer the skills you are seeking for this position. Please consider this cover letter and the included documents for an interview. Thank you for your time, and I am looking forward to hearing from you.

Sincerely, Marek Fiser

Screening interviews

I sent the applications in late November, and I was very excited about it. I have never done anything similar to this before. I was checking my e-mails and spam folder very carefully but after a few weeks I literally forgot that I applied. This was probably because of the pressure of paper submission deadline for ACM SIGGRAPH. And just before Christmas an email starting like this came to my inbox:

Hi Marek, We've reviewed your resume for the Software Engineering summer internship role and would like to learn more about you.

That was the moment I was hoping for! I was so happy about it! Shortly after the initial e-mail they scheduled me for two technical interviews for January.

Fast-forward to January, about a week before my interviews I was starting to be a little nervous about them. I decided to revise some basic stuff like algorithms and data structures. I wrote a quick sort and a heap sort. Both algorithms were not working on the first try. Then I went quickly over number base conversion and that was all I did. The day before the interviews I was searching the Internet for some interview questions.

First interview

Interviews were over the phone. I went home from school with my laptop to have silent environment. I have to admit that a few minutes before the first interview I was really nervous. My hands were sweating as hell and my head was full of mixed feelings. And then the phone rang.

The interviewer introduced himself and we went straight to coding. The coding itself was done in Google Docs while talking on the phone. His first question was about some back tracking algorithm which I solved with simple recursion. It was about 30 lines of code. While I was coding I completely forgot that I was actually very nervous. My interviewer was pleased with the algorithm and he asked me if I can optimize it a little bit so I did. Then he admitted that I was faster than he thought so he searched for another question for me. Second question was some playing with bits and bytes.

At the end of the interview I asked him what is his work at Google and he was from Android team working on low level stuff. The best moment of the interview was when I mentioned that I do not like Java too much for example because everything is signed and bit operations are evil there. He agreed with me and we spent 5 minutes "complaining" about Java.

I had a great feeling about the interview.

Second interview

The second interview followed 15 minutes after the first one. I was in good mood from the first one but still a bit nervous because I was worried that second interview will not be as easy as the first one. And then the phone rang again.

Interview itself started in quite similar fashion as the first one but then the phone went suddenly silent. The interviewer was trying to call me again with no luck. We apologized to each other and my interview was rescheduled for next week.

The embarrassing moment for me was when I figured out what was wrong. I had pre-paid plan for my phone and I did not know that US carriers are charging me even for incoming calls. I was confused because in the Czech Republic (and I think in many other countries in Europe as well) you pay only for outgoing services. Well, I learned the lesson the hard way.

Third interview

The third interview went as well as the first one. Questions were generally about algorithms and complexity. Nothing very surprising, definitely I haven't heard any crazy questions like "how do you get out of working mixer?".

I was quite happy after this first round of interviews and I was excited what will be next. In just 3 days after the last interview email starting like this arrived:

Hi Marek, Thank you for taking the time to interview with our team! Your phone interviews went well and we are excited to move to the next and final stage in the interview process.

My recruiter was "excited to move to the final stage", I was at totally blown! That was just so great and it came so soon! The next phase in Google internship process is called host matching phase.

Host matching phase

The first round of interviews that I just passed was very general and they were testing your computer science background. However, the second round called host matching is quite different. Managers (called "hosts" at Google) from teams all over the Google who have some project for interns in mind will schedule interviews with a candidate they found strong for their project.

This phase is the important one. If your resume and cover letter do not state clearly what you like to do, you may end up be contacted by someone who wants you to do something you do not really enjoy. It is very important that your resume has some features that will distinguish you from others, like some cool project.

This phase also makes the importance of "applying soon" for internships. The sooner you apply the more chance you have that some host will schedule an interview with you. In about a week later another exciting email from my recruiter arrived.

Hi Marek, I am happy to let you know that we have identified a potential project and would like to schedule you for a technical phone interview.

First interview

I was interviewing with James from Google Research. At the beginning James introduced himself very nicely. He told me his background, where he studied and what is he working on at Google. I had to admit that I was quite surprised because his background was so rich. I knew that I am speaking with an important person from Google which made me quite nervous. Then he asked me about some of my projects which I listed in my resume and we were discussing them together.

After the gentle introduction he started asking some very technical questions. I was not coding but I was solving various problems and question like "What would you use to solve problem X?". Honestly, I did not know answer to all of his questions. He was very nice to me and whenever I did not know the answer or my solution was not exactly right he explained me the correct solution. That was very nice.

At the end of the interview he explained to me what would be my responsibilities if I would work with him in his team but he never mentioned any concrete project.

The first host interview was really exhausting. My immediate feelings were:

  • "OMG, I failed it so bad."
  • "I described my projects so badly."
  • "I did not even tell him that we submitted a paper to ACM SIGGRAPH conference."
  • "How could I forget that X is used for Y."

I sent e-mail to my recruiter that I really enjoyed the interview with James and I am very interested in working with him in the summer. And my recruiter replied me with:

Hi Marek, I actually have another host interested in speaking with you!

Second interview

The second host interview was very different from the first one. I was speaking with Ozan from Google Ads. After his brief introduction he went straight to description of his project he wanted me to do. His description was quite detailed and at first I had no idea what he wants but then he included the missing pieces and he just asked me:

Do you want to work on this project over the summer?

The he problem was that his project was not very exciting to me. But I had no idea how to answer his question. I would prefer to work on James' project from the first interview but I did not know if he liked me. At the same time I would rather work on "boring" project in Google that not work in Google at all. But in this situation there is no "maybe".

My answer was that I do not think that I would be good fit for this project and I would rather work on the project from the first interview. I could not find appropriate English words to describe what I wanted to but I think he felt that I am trying to say that I don't like the project which was correct. At the end of this interview he said that he will let know my recruiter about my preferences and that was all. No technical questions from his side whatsoever.

I felt so bad after this interview. I walked in the computer lab where all my lab-mates were and they enthusiastically asked me: "How was it?". I answered:

Well, I said "no" to Google...

They were like: "Whaaaat? Are you crazy?". Yeah, then I realized I probably blew my chances in Google but hey, I really didn't want to work on that project. I was hoping that I did well in the first interview and James will take me to his team. I was also hoping that some other hosts might schedule some more interviews because those two were quite quick.

More stress

On top of my bad feeling about second host interview an e-mail from my recruiter arrived:

Thank you for speaking with our hosts! Unfortunately at this time both James and Ozan will not be proceeding with your application.

I stopped reading immediately after I noticed there is a word "unfortunately" in the sentence. After a few minutes I encouraged myself and read the e-mail and yes, it was not good. But I was still hoping that other hosts will contact me but that was not the case. After a few weeks of hoping I was thinking that was probably it.

As I mentioned earlier, I applied to Microsoft, Apple and Intel as well. However, nobody got back to me by this time and it was already 4 months from the date of application.

Happy ending

But you already know what the end of this chapter is. So how do I made it to Google? This email landed unexpectedly to my inbox:

Hi Marek, Great news! James has had a change in plans and would like to proceed with an offer to have you join his team this summer. Are you still interested and available?

Am I still interested and available? Seriously? I was never more interested than now! That was the happiest day for a long time! I literally could not work anymore that day, I was just walking around so excited — I will be interning at Google!

After this happy e-mail I was talking more with my host, signed some papers and got work authorization for the summer from my school. In the meantime, Google provided me with housing and flight to California so had no worries about those.

Internship at Google

The path to the Google was not straight but I made it. Before I flew to California I went home to the Czech Republic to say hi to my family and friends. I spent there only 10 days and the flight ticket was around $1200 but it was totally worth it!

After I landed in California at San Jose International Airport I was wandering how I can get to my apartment which was provided to me by Google. Of course, I could take a taxi but I don't like to waste money this way. Thankfully there was free Wi-Fi on the airport so I used Google maps to search for a route using public transport. It turned out that public transport will cost me $2 and taxi would be like $50 so I jumped on the bus.

A slight problem was that the apartment complex where I lived was not on Google maps yet because it was recently built. There was some old factory and huge parking lot instead (shown on the picture below). But I found it without any problems. The real problems were caused by my cheap luggage which was giving me hard time. Its wheels got stuck and I was forced to carry it in hand, it was 31 kg (68 lbs).

Apartment

After I arrived to the Crescent Village my first thought was — Wow! The apartment provided to us was nice, I mean very nice. First, it looked to me like a hotel room. Everything was brand new, kitchen equipment and dishes were unused, towels in the bathroom were nicely folded and carpet was absolutely clean. There was even some food in the kitchen provided for us for the first evening so I immediately ate it.

Next to the apartment house was a nice swimming pool with a spa. I was there nearly every day. In the apartment complex provided many other services for the residents including fitness center, tennis and basketball courts, small movie theatre, room with a bunch of computers and printer, social room with pool and poker tables and more. They even designated parking lot for every apartment.

Figure 3: Photos of apartment provided from Google for their interns.

The apartment had two bedrooms and each had its own bathroom. Every bedroom had 2 separated beds. This means that I was supposed to have three other roommates but the third one never showed up. Living with fellow interns was definitely an advantage because (especially at the beginning) it was helpful to have a buddy to talk to about everything and anything. My two roommates were from China. They were nice and they were not speaking Chinese too much which I really appreciated.

The Crescent village was about 16 km (10 mi) from Google campus which is quite far but a shuttle service was provided for us directly from the Crescent village to the Google campus. The shuttles were going from early morning till 10 pm with a break around noon. I missed the last shuttle in the morning a few times so I biked to work on a bike that was provided to us by Google too.

First day at Google

The first day was really exciting. The first event was around 11 am but the last shuttle was at 10 am so me and my roommate spent an hour walking around the Google campus and taking pictures (we felt like tourists).

At 11 am we received a temporary employee badges. The badge is one of the most important things and you need to carry it all the time on a visible place. Without the badge you cannot enter any buildings.

After the badges were distributed they sent us for a lunch. In that time I was thinking: "Wow, free lunch for new interns, how nice!". But then I realized what the sweet truth was: the food is absolutely free for all badge holders — the employees. The food was so amazing that it deserves its own subsection (later in this post).

After the awesome lunch the real work started. They took our photo for real badges, we chose a password for the corporate account and then all the paperwork started. Google also provided us with a Chromebook, a laptop that runs Google Chrome as operating system. I would say that it is the ideal device for interns, especially in terms of security.

At the end of the long day (around 7 pm) our hosts (managers) picked us up. My manager took me with rest of his team to the dinner to one of Google's cafeteria. Then I took a shuttle home.

First week at Google

The first week of my Google internship was really busy. All new interns were scheduled for classes, code labs, and trainings so we could start working. The classes were quite interesting. For example, they told us how Google search works: what happens when you press the search button, etc. Generally, they did not tell us any key or surprising information but I really liked the side stories and numbers that are not public. Coding and code labs are covered in detail in the next chapter.

I was interning in Google Research team. In the first week I had my first one-on-one meeting with my host about my project. He presented me with his ideas for my summer project. He offered me three different projects and he let me choose the one I felt the most comfortable with. Not only I could choose the project I liked but also I could bring my own ideas and discuss them with the team. And the best thing was the fact that all the projects matched my background very well. I have to say that interviewers and my host did very good job in finding a very good candidate for the position (which is not always the case).

I spent the rest of the first week by familiarizing myself with the workplace, surroundings and also filling various forms and attending trainings. In one of the trainings I learned that it is actually possible to date with co-workers. This is in contradiction to movie The Internship here they claim that interns should not date with co-workers. The movie is actually not describing internship in Google very well anyway so don't take it seriously.

My work station came with two 24" monitors and some kind of proprietary branch of Ubuntu Linux operating system called Goobuntu. Even though I was kind of familiar with UNIX systems I was never programming in them full time. I quickly learned how to perform everyday needs so it turned out to be no problem at all. Nearly all the Google internal tools are web-based which makes them OS independent — what an awesome idea!

My team

As I already mentioned before I was working in the Google Research team. I was not the only intern in the team. There were five other interns that joined the team over the summer. Every intern had their own host that was taking care of them and every intern had quite unique and distinct project. Some of the interns' projects were nicely complementing each other which was really great.

I was quite (un)lucky because my host was actually the manager of the whole team so he was very, very busy. Even though we were supposed to meet regularly we ended up to meat rather spontaneously next to his or mine table. Table meetings were nice and informal way how to discuss any questions I had.

Since my host was so busy I was working with a team member Won from New York office. He was primarily doing code reviews of my code and we were discussing features of my projects over the e-mail. I really enjoyed working with him. The only down side was the three hours time shift between New York and California. It means that any code review submitted after 3 pm was usually reviewed the next day. Sometimes Won was working really late and he was kindly reviewing my code in the evening as well. Over the time of my internship I simply learned how to not produce code reviews between 3 pm and 6 pm.

I really enjoyed the work in this team full of nice, positive, and smart people. They were not hesitating to say "Good job" or "That's awesome" if I did something good. The team was excited about the stuff they are working on and I was happy to be part of it.

Once I asked my co-worker some question but he did not know the answer for it so he went with me to ask somebody else. The funny part is that the other person also did not know the answer so — as an avalanche — all of us went to third person who was finally able to answer my question.

Another great experience were daily stand-up meetings, a short meetings in the morning where the whole team discussed the progress and any issues (fires). I never experienced this style of meetings but I actually quite enjoyed it. I felt that I knew what was going on, I was more involved in the whole process.

During the summer the team had an afternoon team picnic and there was also a celebration of success of the whole team. Even though those events were not major or huge I liked those social events and the fact that the team actually meets outside of the office once a while.

I think that not all interns were as lucky as me to end up is such great team.

Negatives of internship at Google

The most of my thoughts presented so far were positive and that's just because I really enjoyed it. But to be fair I want to address some negative aspects of Google internship as well.

The first negative aspect could be the size of Google: it is huge. Impact of an individual can be hardly recognized in the whole. Even though some engineers or interns are lucky to work on something bigger or distinct, the majority is lost in the crowd.

The scale also means that everything has to be developed with a lot of care and results are propagating to the public slowly. Even though Google's development cycle is pretty fast compared to other big companies it might seem slow for individuals (especially for interns).

The second thing could be the focus on the user. Google's motto is: "Focus on the user and all else will follow." which is true and great but I feel that the word user is interpreted as average user. A lot of products of Google are dropping great features just because they were used "just by 1% of users" and it is not worth to keep them. Individuals have very little power to do something about it no matter how much they like the features.

The last thing I have in mind is about remote offices. Even though remote offices are pretty cool the headquarters in Mountain View seems to me as much better place (especially for an internship). I understand that not every place could have everything but if you could choose your internship location the headquarters should be your first choice.

Other thoughts

There are potentially a lot of things that I could talk about but I am not sure if anybody is interested in reading them :) The coding and my project are covered in the next the section Coding at Google and the fun stuff is in section Perks and fun at Google. If there are any other topics you would like to read about just let me know in the comments below.

Coding at Google

Software engineer internship at Google is all about the coding, obviously. Unfortunately you cannot just jump in and start right away because you have to get familiar with the environment first. Online (intranet) code labs provided me a nice introduction to the coding.

First, you get to know how to compile your code. Google have its own custom compiler that is able to compile blaze-ingly fast. It is probably not "the compiler" but rather some clever front-end that uses standard compilers but I actually do not know the details about it.

If you would be able to run your own compiler such as GCC or MSVC on the Google's code-base it would take probably long hours to compile even small project. The dependency tree is huge! The trick of Google's compiler is distributed compilation. The compiler uses hundreds of machines for the compilation which makes it matter of a few seconds. Xkcd's joke about compiling "We are not slacking, the code is compiling." does not apply here in the most cases.

Second, you need to learn how code repository and versioning works at Google. Google uses primarily Perforce to host the huge code-base. Great news is that Google engineers have developed custom GIT wrapper that allows you to work in GIT-like environment. The only difference is in code submission to the main repository.

The very important part of code submission is a code review. Before you are able to submit any code to the main repository you have to get an approval from other employees, reviewers. This applies not only for interns but for all employees and it is a great way how to keep the code healthy. If you are interested more about the benefits of the code review process or coding in Google in general there was a great talk on Google I/O 2009 called "The Myth of the Genius Programmer". I recommend you to watch it.

Another part of code submission are tests, especially unit tests. Google has high demands on code correctness and unit testing is the way how to achieve it. The Google's coding motto is:

Debugging sucks, testing rocks!

And it is very true. I am familiar with unit testing for relatively long time and the most of my code is tested so this was nothing new to me. However, if you are reading this paragraph and you are still not writing the tests you should start — seriously.

Moreover, automated submission tool makes sure that the code you are trying to submit passes all the affected tests. If not, the submission is aborted and you need to fix the code (or the tests :). Sometimes, the code review for my code was:

The code looks good, but where are the tests?

Another amazing thing about Google internship was the access to the whole code-base (nearly whole :). All engineering interns have pretty much the same access rights to the code repository as full time employees. This is possible due to code-review process. You cannot just break something because it would need to be approved and it has to pass all the tests. Even though it is hard to break something, it is not impossible. Ok — I admit — I broke the build once. It was on the very last day of my internship at 7 pm. That was kind of crazy (I mean fun) experience.

There are some great advantages of open code base. For example, you can just search for interesting code if you have a spare minute. Well, that's not very advantage but sometimes I was able to find some interesting pieces of code. Usually, however, it is impossible to find something interesting if you are not very concrete with your search query. As I discovered:

Searching "gmail" in the whole Google code base do not have any sense.

The real advantage of open code base is when you need some concrete algorithm. Say you need convex hull algorithm. Just search it and you will find many implementations in various languages. It is very likely that the algorithm you need was already implemented and tested by somebody else.

Google code base contains a special branch for third-party and open source projects. There is pretty much anything you could think of — in many versions.

Google at localhost

Usually I was developing my project on a small local web server. One day my manager told me that I should test my project on the production web server. First, I did not understand but after his brief explanation I found a nice tutorial how to do that. When I was done with the tutorial my browser opens with familiar Google hope page. However, this time something was different. The address line says http://localhost:8888 instead of familiar http://google.com. I just stopped working for a minute and stared at my screen — I am running "Google" on my machine.

I know that it's not miracle to run "Google at localhost" because all Google services like search and ads are completely separated from the actual web server but I just really liked it. I even asked my manager if I could keep a print-screen of this beautiful remark and he kindly agreed so you can see it on the image below. It is real unmodified print-screen: no proxy, Photoshop, or some other trick.

My project

So what was my project? Unfortunately I cannot tell because it is not public yet, but stay tuned! Once it's public, I would be able to tell more.

Perks and fun at Google

Employees at Google are working hard. Google is making their life better by providing them a perks and opportunities to have fun and relax. This is true for interns as well since they are treated as regular employees.

For example every building has areas with comfortable sofas so you can have some rest between coding. Some buildings have even napping pods where you can take a nap after lunch to be fresh for afternoon work. There are nap pods that booked out a few days in advance but if you don't mind walking (or g-biking) there are always some available. Many buildings have ping-pong tables, pool tables, or even arcades that you can enjoy with your co-workers. I have to say that 10 minutes of ping-pong is fun and effective way to relax between programming sessions.

Figure 4: Pictures of some fun activities at Google.

Food at Google

One of the most convenient perks at Google is the food. Google serves for its employees (including interns) all meals including breakfast, lunch, and dinner. Some pictures of main dishes are shown below. I think that they do not need any more comments.

Figure 5: A lot of pictures of delicious food from Google's cafeterias.

Every floor has one or more so called "micro-kitchens" where you can find things like snacks, cereals, milk, non-alcoholic beverages, tea, coffee, and many more. Micro-kitchens usually have two coffee machines. One is automatic which will grind and prepare your coffee in a minute. The second one is a professional machine used in cafeterias by baristas. Before you will be able to use the professional machine you will probably have to watch a video tutorial that is internally available.

Sometimes a barista showed up randomly in the micro-kitchen for a few hours to help you make a delicious professional coffee. That was nice touch and as I discovered later they call him "pop-up barista".

One thing that I enjoyed a lot was the variety of available cereals. I was actually eating my breakfast in the micro-kitchen instead of going to cafeterias.

Transportation

Another convenient perk in Google are so called G-bikes, fancy looking community bikes that are available for Google employees in front of every building. G-bikes provide fast and convenient way how to move around campus. Google campus in Mountain View is quite large, about a mile (1.6 km) across and G-bikes are very convenient mean of transportation across this distance.

It was interesting to observe how bikes are getting distributed across the day. In the morning G-bikes were mostly near shuttle stops, parking lots, and central buildings. Around the lunch time G-bikes get accumulated near buildings where lunch was served. In the evening the G-bikes were again getting accumulated near the shuttle stops. Google have a special G-bike crew that takes care of the bikes, re-distributes them, and collects broken ones.

You might find G-bikes ridiculous but people are actually using them a lot. I saw dressed up managers in suit riding G-bikes with a laptop in the front bin. My fellow intern friend learned how to ride a bike thanks to the Google internship. I used G-bikes every day and I really enjoyed that experience. I was even chasing a shuttle bus on the G-bike just to avoid waiting for another one.

G-bikes were only useful for biking around Google campus. However, Google provided every intern with a nice bicycle for the length of whole internship. I was using this bicycle for going around San Francisco, shopping, and also biking to work a few times. I could always tell that Google interns are nearby just by recognizing the rented bike type (for example in train to San Francisco).

But that's not all. Google also offers a short term car rental which is free for all Google employees and interns. They provide variety of electric and hybrid cars that are available for renting up to about three hours. This is great for many occasions where bike is not enough. We were using this car for going to gym to do some climbing after the work for two hours — just perfect.

I even did my California driving test using a loaned car from Google! The inspector could not get over that it had no engine noise.

My favorite car was Ford Focus Electric (see below). I liked the interior and the silence when riding. The range of fully charged car was about 110 km (70 miles) which was more than enough for any 3 hours trip.

Intern activities during Google internship

Google organized a rich program for theirs interns. At the beginning every intern selected five preferred summer activities from a list that contained around 20 items. I had a chance to attend following activities:

  • Computer history museum visit,
  • summer intern kick-off party,
  • ropes course,
  • improvisation show,
  • cruise in San Francisco,
  • rafting, and
  • pottery painting.
Figure 6: Photos from events organized by Google for their interns.

Another way how to have fun with other interns was to self-organize some events. Intern mailing list was great place for that. There were many initiative interns who were coming up with great ideas. I enjoyed following events with fellow interns:

  • Facebook campus visit (*),
  • Bike party in San Jose (a few thousands of people biking through city, poor cars),
  • climbing at Planet Granite gym,
  • hiking at Big Sur park,
  • independence day in San Francisco (Pier 39 and fireworks at Ghirardelli square), and
  • ice skating.

(*) I have actually a funny story from the Facebook visit. Did you know that in order to visit the Facebook campus you not only have to have a Facebook account but also you have to friend the person that is inviting you there? Well, at that time I did not have a Facebook account so I created one in the lobby on my smartphone. I actually never logged back in to it so congratulation to Facebook for one more unused account. By the way you do not need Google account to visit Google campus (just saying ;).

Figure 7: Pictures of some other self-organized activities with fellow interns.

Other Google perks

There is no point listing all perks in Google so I will not even to try to do so but I can conclude that there is something for everybody. Having a small climbing wall or swimming pool next to your office is something that is I found quite cool.

This chapter might give you a feeling that an internship in Google is just about having fun but that's not the case. There is still 8 working hours per day and all those perks can be used in your free time. Many full time employees prefer to go home to see their family instead of playing ping-pong.

I would say that having all this perks it's very convenient but not something I would found necessary for my future job. If I want to go bowling/climbing/swimming I have no problem to go somewhere else in the city. But having all of those for an internship? That's really awesome!

Conclusion

Internship in Google was really awesome! I spent three months in sunny California working with a great people on interesting projects! Google is in my eyes a great company even though its scale is slowly getting quite scary.

I hope this post was interesting and maybe even beneficial to anybody interested in Google internship. If you are thinking about applying what are you waiting for? Just google "Google internship" and start filling out the application!

Good luck, have fun, and don't be evil! ;)

Plans for the next year

For the summer 2014 I basically had two choices, go back to Google or try something new. I was even talking with my former team at Google and they actually wanted me back. However, I have chosen to go somewhere else — to NVIDIA to be more concrete.

This decision was not easy but I decided to change because I find an internship a unique opportunity to try something new. I already know that Google is great so I wanted to compare it to something else. Maybe it won't be as good, but maybe it will. The only way how to know is to try. Don't forget that "better" or "worst" is very subjective here. Not everybody likes to do the same think but I want to do something I like and enjoy so I want to use the internships as a way how to figure this out. When you start to work full time, it's not that easy to try something new anymore.

I will probably write similar (possibly shorter) post about NVIDIA next year.

This post is licensed under CC BY 4.0 by the author.

© Marek Fiser. Content license: CC BY 4.0

Built with a home-grown static site generator.