What I Gained from Google STEP Internship at NYC

James
6 min readNov 2, 2022

--

In the previous post, I shared how I was able to land on Google STEP internship role: https://medium.com/@jo9347/how-i-landed-in-google-step-internship-12d90ccfe3c4

In this post, I would like to share what I learned last summer as Google STEP intern at NYC.

Google NYC Office

Google’s NYC Office

For Google STEP internship, you are assigned to a team based on your skills and business needs of Google. I joined the team located in New York City, and I was very happy since I never lived in New York City but I was always curious how the life is in NYC. After all, I grew up in cities in Asia, so I also missed things that cities can provide such as public transportation and nice restaurant on couple block away.

Google’s NYC office is located in 15th street of 8th avenue, right next to Chelsea market. I stayed in Brooklyn and commuted using L-train. The commute was around 40 minutes one way, but it wasn’t too bad since I was able to listen to podcast or read books without transferring the train.

Noodle Bar
Barbeque Station

The office is amazing with full of great amenities. I have only tried cafeteria in San Francisco office and NYC office, but based on my survey with employees at Google, many people told me that NYC office has the best food. Even with the short data, I completely agree with that because the food I had this summer was absolutely amazing. I was never motivated to go out of the office to get food because the great food was already served in the building.

Each floor of the office has unique theme, and it was very fun to explore the office with other interns. There is also a game room that has ping pong table, eight ball pool, and console games that interns often used. Lastly, the office has onsite gym, that I went almost everyday!

New York City

Outside of the office, NYC is fun city to explore! You can find things to do no matter what your interests are. There are tons of art museums if you are interested in art, there are concerts happening in various places, and sports events are happening weekly. I had a really great time in NYC, and I would love to stay there again if I get a chance.

What Did I Gain?

So now you know I had wonderful time last summer, but more importantly, what did I learn from the internship? After all, the most important goal of internship is learning.

  1. Understanding huge codebase

First of all, I have little bit of other internship experience at small start-ups in Korea, which means this was my first time working at big corporation. I did not have to read through enormous codebase to understand what I have to do. However, at Google, it was important to read through the codebase and understand what part I am changing and what kind of side effects it can generate. It was very overwhelming to process the flood of information, but I was able to learn how to browse through the codebase and understand what it is doing. You don’t have to understand every single minor details. If you can get away with function name or variable name, it’s great, but if the part is highly relevant to the work you are working on, maybe it is good idea to deeply understand what it is doing. Of course, I didn’t master “Code reading” skills, but working at Google definitely helped me to improve the skill and taught me that I don’t have to be overwhelmed with million lines of code.

2. Testing

I have been hearing the importance of testing in lot of places, but I never really felt that with my heart. At Google, I was able to learn the importance of good testing practice by writing unit tests and screenshot tests. It might feel like testing is not as important as writing feature and eating up too much time, but actually testing save tremendous time since it ensures your change is not creating any side effects and your change can be trusted on deployment. I was able to learn how to write readable and solid tests, and I believe it is one of the key skills I learned last summer.

3. Communication

Communication is one of the most important skills that software engineer needs, and unlike most of the people think, it is not easiest skill to improve. Often, I needed to explain what I have been working on and what kind of methods I have tried when I ask for help. I realized this is extremely difficult because giving exactly enough information to others is hard. You don’t want to give too little information since they will not understand, and you don’t want to give information that is necessarily needed since that would be inefficient and people wouldn’t read the entire message you have sent. Also, when asking design related question, taking initiative is important to practice engineering thinking. Instead of asking “What should I do?”, analyze pros and cons of option A and option B, and suggest what could be the better solution.

4. Code Review

Last summer was my first time going through strict code review. The startups I worked at previously did not have strict code review. They skimmed through my code quickly, but we did not create something like GitHub PR and nothing was blocking us to merge to main branch. At Google, not only getting tons of feedback through code reviews, I was able to review my podmate’s code and improve code reading skills and share knowledge I have. I think code review is great way to enhance learning since it makes you active in the process.

5. Divide and Conquer

If you are solving a big problem, that can overwhelm you. It is essential to divide the problem to subproblems and focus on a subproblem each time. This is important because it lets you focus on your current problem instead of getting distracted on worrying about other stuff. It also creates a small roadmap and help you to not solve the problem that is not needed to reach the goal. Just like divide and conquer algorithm, applying this framework can increase productivity tremendously.

Things I Hope I Knew

  1. Do not rush

I hope I didn’t rush myself too much when I am working on specific task. Try to keep up with the deadline, but read documentation and understand what you are doing to solve the problem. If you don’t do that, you are going around and will try to understand things later, which will end up taking longer.

2. Don’t be afraid to ask questions

Set specific time frame to investigate on what you are working, but if you are not having progress in that time frame, don’t hesitate and just ask questions even though it feels like stupid questions.

I believe STEP internship is great program for who are seeking experience in early career. I learned both hard and soft skills, and also enjoyed my time meeting new people. If you are considering this position, don’t hesitate and submit that application!

--

--