Written by: Alexandria Storm
This summer I participated in the 12-week Google CodeU Program. I developed my leadership skills and team collaboration by taking a Program Management role in my technical project. The program is designed to introduce undergraduates to the Google community by completing a technical open source project, providing professional resources, and an invitation to the Google Student Retreat which I attended this August. It was my first experience with remote work collaboration and working on a larger group project. I was on team 18, with a Google Engineer Kevin Workman as our supervisor and three other students from Harvard, Columbia, and the University of Washington. While we were all situated in different locations, we communicated regularly to collaborate and held bi-weekly Hangouts meetings.
MVP of the Technical Project
The first portion of the program was learning how to implement industry best practices such as contributing to open-source software using Github and Git, conducting regular code reviews with teammates, extending an existing codebase, and designing new components and interfaces. The main programming language used was Java, which I had previous experience with in my Data Structures class. I learned new Tech Stacks such as JSP (JavaServer Pages), CSS, and HTML for web development. In our first meeting our team decided to require two teammates approval before merging pull requests to our master branch in order to get comprehensive feedback. It was the first time I had used Github for a collaborative big project, so I learned how to write useful code reviews and how to work with constructive feedback. This included fostering positive code review culture in both giving and recieving constructive criticism. Considering that we had generalized guidelines for our project, I found it useful to ask my teammates why they decided to implement their approaches and how they were the most practical solutions. Often times having teammates explain their code was a learning experience for both me and a way for them to reflect on their logic and pick out any errors.
In our meetings, we brainstormed an MVP product with split sections for each member to focus on. This included stylized text capabilities, an activity feed, an admin analytics page, and my portion, the profile pages. Our MVP was an engaging chat application that had conversations, chat rooms, a live updating display of actions, and profiles for users. I created a general profile page accessible in the navigation bar containing links to all of the profiles in the database, and clicking on a profile link across the website opens that user’s information page.
Open Source Project
After we finished our MVP, we began our open-source project. It was an exciting opportunity to create any features we wanted on the working website. We decided to build a translation chat app to bridge the language barrier between users of different backgrounds. I personally use WeChat to communicate with my family outside of the United States. Unfortunately, we do not speak the same language and the application only has a manual translation option which often times distorts the meaning of my family’s dialect. Our project solves this problem by eliminating the steps to translate messages in between. Upon registration, each user is prompted for their primary language so our website can translate all of the messages sent to them by other people into it automatically. For example, if a user chooses Spanish, all of their messages will show up in Spanish even if they are replying to someone who speaks Russian. Since we used the Google Translate APIs, the site supports the translation of all of its languages as accurate as possible.
Practicing Program Management
I noticed that even after breaking down the project into parts, it was extremely complex to put all the features together. The number of bugs and git challenges was overwhelming in completing the project by the deadline. In making the product come together as a whole, I took a Project Management type of role. I fixed bugs on the site related to our whole team’s code, fully tested our features, and was in charge of deploying and updating our live site link with Google App-engine. I additionally designed the UX experience and helped facilitate putting together the teammates’ features cohesively. I wanted to work on the User Interface because it is a really important factor in making a products usability enjoyable and easy.
When a big project comes together with multiple people working on individual features, putting parts together can cause the most problems. I noticed that our Google Translate feature worked for some of our team members but not on my server. I found that there was an error in getting the translate permissions and storing the API key, so that was a difficult bug to fix that took some extra research into the documentation and testing. As a part of the debugging, I addressed many security bugs concerns with our UI and codebase ensuring that logging in and information was only available to the correct users. Our data storing intially was insecure and accesible to the wrong users and on the wrong pages.
Finally, I redesigned the UX experience and styling adding gifs to the homepage, a standardized minimalist theme, and general usability design. In the showcase, we got really positive feedback on our website about our translation feature and UI from other CodeU students.
I loved the program because of the great support and positive reinforcement the team provided. My advisor Kevin volunteered his own time on top of his work to help our team succeed and answer any technical questions we had. He was incredibly patient and genuinely invested in our learning and growth. Kevin and the other Google Program Supervisors Nicki Anselmo and Rachel Brady made sure to thank me and my teammates for our contributions. They gave me assistance and postive reinforcement throughout the entire process when I took actions of leadership to help lead and organize our team.
During the technical project I completed 3 mock technical interviews conducted by Google Engineers and got valuable feedback that I never had access to before. I also partcipated in different workshops such as resume consulting with a recruiter and how to succeed in interview processes.
Google Student Retreat
After completing the program, I was invited to fly out for the Google Student Retreat in Mountainview California. I spent three days at the Googleplex and Sunnyvale campus meeting other students from CodeU and Google Scholarships Winners. One of my key takeaways was that there is no singular path to get into tech. I met students from all across the world and from all kinds of inistitutions and backgrounds, eaching bringing their own unique perspectives. We participated in workshops like the Art of Networking and got to hear Keynote speakers like Diana Skaar.
Overall, the program taught me not be afraid to ask for help and how to ask the right type of questions. Be specific in what you are asking, and lead questions by describing what you already understand about the problem. Finally, teamwork and the ability to collaborate with others is imperative to succeeding professionally.