As with all great internships, I started this summer at Agari being delightfully bombarded with various acronyms and different technologies to learn. But though there was such a wealth of new information, within weeks, I found myself making real contributions to the product and essentially being treated as a full-time engineer.
I came into this 10-week internship after my junior year at U.C. Berkeley mainly hoping to learn something new and dive a bit further into security than what had been taught in school. I definitely achieved that, diving deep into Elasticsearch among other things.
Through working on Elasticsearch, I was able to jump into the codebase and get more familiar with the structure of Agari’s data pipeline and infrastructure as well as the details of Elasticsearch itself – the structures of nodes and shards, and how to interpret the status of the cluster.
One major project I completed was transforming a collection of complex queries on the web application’s Message Dashboard page to use the Elasticsearch aggregations instead of Postgres, improving the performance of the page dramatically. Through working on writing these queries, I gained familiarity with the Rails app, the Ember front-end, and some of the general structure of the codebase as well, which ended up serving as a wonderful introduction to the type of work I’d be doing.
For the rest of the summer, I continued to explore Elasticsearch and how it’s monitored in AWS. Having had no experience working much with AWS and other cloud services, I was working in a completely different territory, touching everything from the Elasticsearch service to EC2, Lambda, S3, and Cloudwatch.
Coming out of this internship I have a much deeper knowledge of not only how Elasticsearch works but how to implement it in a real production system and where it excels over database queries.
And of course, the internship experience included more than just work and projects; the atmosphere and camaraderie at Agari was not only conducive to learning, but also simply fun.
Looking back over the course of my internship, I jumped into a new codebase with a ton of moving parts and found myself making contributions in Ruby, Java, and Python and working in-depth with Elasticsearch, surpassing my expectations for the productive summer I’d hoped for.