Georgina Xu's CPT Project 2019

From CSclasswiki
Jump to: navigation, search

Program Introduction

During summer 2019, I worked as an Software Engineering Intern at Google Sunnyvale office, in California. The Software Engineering internship is a 12-week to 14-week program that is designed for computer science students to experience being a real software engineer in the industry. I got the internship as a return offer from my Engineering Practicum internship last year. After receiving the offer, I was matched with the Corporate Engineering Team in Sunnyvale and had an amazing summer working with my intern hosts.

Project

Background

Corporate Engineering is a big and important infrastructure team at Google, which supports multiple Google applications. My team specifically is developing a Smart Building System, that is responsible for keeping track of all resources in Google buildings, including air conditioning, lighting, indoor route suggestion, etc. One product that is already launched internally by my team is Google Shortcut, an indoor version of Google Map, which tells Google employees how to get to a specific conference room from their current location.

Project Description

My project in the summer was dedicated to the lighting part of the Smart Building System. We worked with a third-party system, called Enlighted, which provided us various data of all the lights in Google buildings, including light level, temperature, x-y location, etc. Since Enlighted system only provides real-time data and does not keep track of historical data, it is hard for our engineers to do machine learning analysis. Therefore, my main job was to create a pipeline from the Enlighted system to our own database. Our own database contains one Entity for each light in the building, and we push new data to each Entity every once in a while.

Technologies and Languages Used

  • Google Cloud IoT Core
  • Java

Reflection

I really enjoyed working on my project this summer because it feels like a product that completely belongs to me. Rather than continuing on someone else's product, I designed this project myself. I implemented it, fixed all its bugs, guarded it with tests, and handed it back to the team for future production. I had a great time working with other engineers on the team. It really taught me what a real development cycle in the tech industry looks like.

Having so many Google engineers review my codes every day, I learnt how to write clean and concise codes, be responsible for what I wrote, and be grateful for other people's comments and help. Thanks to my two intern hosts who always encouraged me to speak up during team meetings, I learnt to express my ideas and not to be afraid of disagreeing with my teammates. I felt like an actual contributor on the team, instead of an intern who was told what to do.