S.O.S: Summer of Open Source!
This summer I had the most extraordinary privilege of doing something I loved, and having fun while doing it. Towards the end of May I received notice that I had been accepted as an intern at Mashery, the API management company headquartered in San Francisco. My internship was with the Developer Outreach team and I would work on the company’s open source projects, a reflection of some of their marketed products, and attend hackathons as a Mashery representative. I might not have known exactly what I was getting into, but to me it seemed like my dream job had come calling, and I might end up having an experience of a lifetime.
I spent the summer working mostly on Mashery’s open source version of I/O Docs, found here. I/O Docs is an easy-to-configure interactive API documentation system and a core feature of the Mashery product. That I got to work on something that has exposure to many developers was amazing! Even now that I’m back at school I see evidence of an active community on the I/O Docs GitHub page. This project alone broadened my computer engineering horizons. Going in to Mashery I did not know Jade (template engine), Node.js, or even Javascript, the primary components of the open source version of I/O Docs. Nor had I actively engaged with developer communities outside of my school. By the end of the summer I felt like a pro, and I have to say that Mashery’s amazing developer evangelist Neil was a great mentor throughout the whole process. He was a great guide in pointing the way, giving advice, and discussing what would be best to work on. As a result of his guidance, I can say I did a lot of great work over the course of the summer:
Klout V2 & HTML Tags
I began my summer by associating myself with I/O Docs, mostly through content updates and enabling some features that were important, but had never been implemented due to time constraints. These were simple but key upgrades to I/O that helped my to familiarize myself with the structure and function of the software. I started with updating the repo's sample JSON configuration for Klout to their v2 API. I also added the ability for HTML to render in the Jade template output.
Express 3
Updating I/O Docs to reflect the changes in the Node.js framework express was something Neil and I spent a significant amount of time on and, funnily enough, completed just as the wonderful contributor Jed Wood submitted a pull request with the same update! We took Jed’s beautiful code and rolled with it, and I’m proud to have come up with a final product so similar to his.
OAuth 2.0
Adding OAuth 2.0 compatibility to I/O Docs was definitely the challenge of my summer, but it was a lot of fun to tackle. OAuth 2 is an upgrade to OAuth, an authentication flow that provides security and authorization for APIs. Tackling OAuth 2 led to me learning more about APIs than I had even conceived at the beginning at the summer, and it was a great and fulfilling challenge. The four separate flows of OAuth 2, three of which were implemented during my summer of open source fun, allows for increased security in API calls as apps need to be authorized in some way or another before they can retrieve user-level (in most cases) information. This was definitely my success of the summer.
Intel XDK Demos Featuring Mashery APIs I also worked on adding and updating a few of the demos for Intel’s XDK, an HTML 5 app building platform. These were fun and simple to work on, and an important contribution in that they helped keep the sample apps fresh and operational.
I learned so much over the course of my internship, short though it was. Besides tackling open source projects I also attended hackathons as a Mashery representative, sat in on strategy and development meetings, and learned more about social media than I ever imagined. But the people made up the experience too. I want to express my gratitude to Delyn, Neil, Sarah-Jane, and Amit from the Developer Outreach team. They helped provide such an amazing experience, full of passion for the craft, the city and the people. I may have learned a lot about software and professional interactions, but I also walked away from this summer having learned a lot about people, and a lot about myself.














