What I Learned From an Open Source Internship

This past summer I was an intern on the Android Open Source Project (AOSP) team at Google. This was my first real jump into open source development, previously having just hosted some of my personal projects on GitHub with no expectation that they would be cloned or used by others. This of course is very different compared to the scale of engagement that AOSP receives from the Android community. I wanted to write this blogpost to talk about what this open source internship experience taught me about the benefits of open source software development for me (and other developers), for the software itself and for the development community as a whole.

How Open Source Benefited Me (And Could You as Well!)

As is the case with starting any new role, my internship provided a good opportunity to build my network. The unique benefit that working on open source projects afforded me was that, in addition to just being able to network within my team and other close teams at Google, I was able to expand my network with some of the external contributors to the project as well. This expanded network also allowed for a wider range of experiences that I could learn from. While I learned a ton from the members of my team, I also learned from the external contributors. They taught me things ranging from better testing practices to ways to ensure my code was compatible with older versions of Android that needed to be supported. Open source work is also a very strong portfolio point, giving contributors the chance to point to public code they have written to showcase their skillset to potential future employers or clients. Being a student just building my brand, this was a big benefit for me.

How Open Source Benefits the Software

Open source software gains many benefits itself from being accessible to the general development community. Firstly, since many developers, with many different past experiences, can contribute to the code, the quality of the software can be maintained at a higher level. All the different viewpoints the developers bring allows for things to be noticed that others might have missed or not considered. This also plays a factor in catching issues during code reviews. During my internship there were a few times where external contributors provided good feedback on my changes during the code review process, which ultimately led to higher quality and more robust code.

How Open Source Benefits the Community

Open source development also benefits the community that it is a part of. One way it does this is by allowing the community to have transparency into what large companies, such as Google, prioritize working on. AOSP provides Android developers the chance to see what work is being done on various Android libraries and the OS itself much earlier than some of the features may be released. Open source also allows developers the chance to influence the direction that the tools they rely on are taking. By being able to see the code changes being made, and being able to participate in the code review process, developers can voice their opinions on what features should be focused on. This can lead to better designed tooling, since the developers who will be the end users can provide feedback earlier on in the development process, instead of just filing feature requests after launch.

Summary

My experience this past summer working on AOSP at Google has taught me a lot. While I was always interested in open source development, particularly how it fits in to the Android community, I hadn’t had much experience working with it myself. Now, after getting my first taste of it, I hope to be able to contribute more to the open source ecosystem and encourage everyone else to do the same!