My internship at Coursera

14 August 2014

Editor’s Note: Meet Shadaj Laddad, one of Coursera’s summer interns. In this expository blog post, Shadaj shares the day-to-day adventures of working at Coursera this summer. Thank you for all your hard work, Shadaj. We will miss you!!

This summer, I got the opportunity to do an internship at Coursera. As part of the Infrastructure team (go dragons!), I learned a lot about Coursera and did a lot of things! This was my first internship experience, and I enjoyed every bit of it.

My first day was jam-packed with activities to get me started. During the orientation, I got set up with a shiny new Macbook Pro and learned about Coursera’s values. Waiting for me at my desk was a welcome package complete with Coursera M&Ms and a T-shirt!

My first task was to have the whole Coursera website running on my laptop. Luckily, there was a tutorial on our docs website that went through the process of setting up the website. Still, I ran into a few issues along the way, but with the help of my mentor, Brennan, I was able to find a fix for each.

Once the whole website was set up, Brennan told me to add a note to the set-up tutorial explaining what to do in the situation I had run into. Making the change was simple, but pushing it was the tricky part. I had never done a code review before, so I had no idea what to expect. After installing Phabricator command line tools and committing my changes I pushed my first diff. And after resolving some comments on the notes I had added, I pushed all my changes to the main branch. Whee! I made a commit on my first day!

To get started with working on Coursera projects, I was given a few tasks to improve our services. I had already comfortable programming in Scala and using Play, but there were a lot of tools I hadn’t even heard about. This was a wonderful combination to allow me to be productive immediately and learn as if I was drinking through a hose. These tasks included things like displaying the configuration being used in deployed services in Quack, our internal deployment service, and moving over the User APIs to Naptime, our new library for writing REST APIs. Since the User APIs are super important, there were a lot of comments on my code. Sixteen rounds later my code was finally approved to be landed onto our master branch and was deployed to the public facing Coursera site.

After working on these projects, I moved on to my primary project, the Coursera API Explorer. The API Explorer lets you view documentation about Coursera’s APIs and make requests to them. To start, I wrote a design document listing the tools I would use (and why I wanted to use those tools) and the features the explorer would have. Coming from a Scala background, I decided to write the application with Scala.js.

One of the first tasks I had when I started building the explorer was to decide on how I would store information about resources. I looked at many existing options, but none of them had everything I wanted so I decided to come up with my own format for storing resource information. This resulted in a separate project to generate JSON Schema from model classes. And this was my first open-source project at Coursera (Github)!

API Explorer

Through the weeks at Coursera, I learned about the unique culture at this company. It’s not surprising to see someone in a Domo costume walk in during lunch, hand out pieces of paper to employees, and see those employees run out. Speaking of lunchtime, every Thursday food trucks come to our parking lot and we get food from them (yummy Thai Iced Tea!) instead of from our cafeteria. On Mondays we have Show and Tell, Tuesdays we have Tech Talks, and on Fridays we have All Hands. All of these events provide great ways to interact with members of other teams and get an idea of what is going on at Coursera. There were enough interns at Coursera that I never felt by myself. Almost every day I would play a game of foosball with a fellow intern and sometimes a game of table tennis.

Towards the end of my internship, I got to go on an awesome field trip to Santa Cruz with the other interns. We took a bus to one of the docks in Santa Cruz and went sailing! There was pizza and drinks on board, and we even got to see some sea lions! We had a great time, chatting about what we were working on at Coursera and enjoying the cool wind in our face.

Us on the boat

I had a great time at Coursera, thanks to the help of many people. Special thanks to:

  • Brennan Saeta for being an awesome mentor, patiently teaching me things I didn’t know and always being there to answer questions

  • Nick Dellamaggiore for getting me started with tasks that were challenging but not overwhelming

  • My fellow interns, Jonathan Zong and Lawrence Xing, for interesting conversations and heated foosball games

  • Everyone else at Coursera for creating an amazing environment to work in

Shadaj Laddad
Want to work with us? Join Us!