Tuesday, October 29, 2013

Guest Blogger: Marcella Hastings E15 on Interning with Google


Basics
I’m a junior studying computer science and math through Engineering, and I spent this past summer in New York City, doing a software engineering internship at Google. I was a part of the Engineering Practicum program, which is a subset of software engineering, focused on easing rising juniors into the internship and industry world. There were 25 people in my program in NYC, and over 200 interns across all capacities in the office.

The Project
I worked with DoubleClick for Publishers on the core front-end team. DfP is part of the Ads network, and essentially provides a web app for publishers (groups that want to host advertisements on their website, like the NYTimes) to organize all their advertisers and ads. I created a front-end feature for the website, it’s basically a save button. I worked with another intern in the EP program, and we had two full-time hosts on the team. We designed and implemented the entire system, including actually putting a button on the page and then making it work when it’s clicked on.

Daily Life
Since I was doing a software-focused internship, significant portions of my days were spent coding. Usually, I would get in around 9 (we set our own hours), grab breakfast with a couple of interns, and sit down to work in the morning. I’d check in with my partner, who sat next to me, and we’d talk about design details, issues we were running into, and what the interns were doing that day. Google engineers can’t submit code to the codebase without getting it reviewed by another engineer, so I’d see if I had any reviews to go over and send back comments to my reviewers. Around 12:30 or 1 we’d go to lunch, sometimes with our team and sometimes with other interns. In the afternoons, I’d have meetings with my UX designer, go to a class or lecture with the other EP interns, and play a bit of ping-pong in the game room before going back to work until dinner.

Things I Didn’t Expect to Learn
I can go on for ages about the technical details and coding techniques that I learned, but that’s pretty typical at a software engineering internship. More interesting are the observations I made about working at a large company. Initially, I thought my project would take three or four weeks. If you isolate the save button, it’s not that hard: draw a button, and when it’s clicked on, grab the interesting data and put it somewhere accessible. However, integrating it into an enormous existing codebase is much more difficult. I had to understand what already existed, how it worked, and whether I could use it for my purposes. It was necessary to have a broader understanding of the moving pieces in the system and how they fit together in order to get my small piece working.

The Program
The Engineering Practicum program was awesome. I worked at a large company with a lot of resources and a philosophy that happy employees work better. Thus, their intern program was awesome.
Learning: We had weekly classes on both generally important ideas in software development and more Google-specific topics, including security, building reliable systems, and writing healthy code.
Speakers: At a company full of cool people, it’s remarkably easy to find speakers to talk about things they’re excited about. We had speakers ranging from the head engineer on Google Glass to Peter Norvig, director of Research at Google and creator of the PowerPoint Gettysburg Address.
Social: There were a million ways to get to know other people in the company, and every event open to company employees was also open to interns. I got lunch with my team every couple of days, but we also had larger events like a laser tag outing, a Grease-themed company summer picnic, and an all-intern boat cruise.

How Do I Sign Up?
Google has tons of internship opportunities for students of all different backgrounds. The largest group, of which I am a part of, is engineering interns, however there are also opportunities for people interested in design, user experience, sales and marketing, and product management. There is a smorgasbord of other ways to get involved with the Google community, including but not limited to summer camps, student ambassador programs, and open source projects, all of which are described on the Google Students page. Feel free to contact me if you’ve got questions!