Coding and Collaboration
Wednesday, August 2, 2017
This summer, I am interning on the Analytics team at Zuora, a subscription management and billing solutions company. The people I work most closely with are two other interns, Maddie and Breck, and my manager, Karl.
Our first project was automating a database test. The Analytics team created a new database service and needed end-to-end testing to verify that the values in the new database match up with the old one. Currently, our tests are automated using the Jenkins framework and the tests are run before adding a tenant to production. While creating these tests, I worked with our product manager and quality assurance engineers to debug the logic of the test cases when the numbers did not match up. It was exciting seeing our tests detect bugs in the new database and, therefore, be able to improve the new database service.
Next, as Zuora is moving from a one-database service into a distributed-database system, we worked on developing tools to allow for distributed systems. The first tool we worked with was Presto, a distributed query engine developed by Facebook. Our goal with Presto, was to create a Core connector and a Usage connector so we could use Presto to query and join data from both services quickly and efficiently. We were able to create a Core connector and then analyzed the runtimes and query plan to determine the efficiency. After analyzing results and meeting with the Presto team to discuss the limitations, we realized that Presto did not fit well with the pre-joined data sources in Zuora’s core database.
We were initially bummed about spending so much time on and not being able to use Presto, but we had to move forward. The next proposal was to create a Usage connector in the current Analytics data pipeline, which we are currently working on. This in-house solution is meant to be a quick fix and not a long-term solution as more and more database services are added.
What I think is unique about my internship experience is that while most interns work on a project on their own, Maddie, Breck, and I have been working on all the projects together. Therefore, through this internship, I have not only gained technical skills, but learned a plethora about teamwork and collaboration. Explaining what I’m currently doing and what I plan to do, checking in with my teammates, and breaking down one large task into subtasks have all helped me in terms of articulating myself better and being a better teammate.
While my internship is coming to an end next week, I am happy that I got the opportunity to intern at this amazing company and to have learned so much. I am excited to use the skills I’ve learned this summer at Duke and future internships and jobs!
Class of 2019
Majors: Electrical & Computer Engineering and Computer Science