This past June, DigitalOcean welcomed its first-ever group of summer interns (who we endearingly called “minnows”). For 10 weeks, our interns worked in teams across the organization—from data to cloud engineering to marketing—based out of both our New York City HQ and Cambridge, MA office. (If you’re interested in becoming a Minnow, apply for a spot in our 2018 intern class (UPDATE: applications are now closed), or send us your questions at email@example.com. We’re hiring interns for various teams including Product Management, User Experience, Engineering, Data & Analytics, and Marketing & Communications. And in the meantime, learn more about the hiring experience at DO.)
The program was the culmination of years’ worth of research, planning, and recruitment. We knew companies large and small were reaping enormous quantitative and qualitative benefits by introducing internship programs, and we took a lot of care to craft something that would be an enriching experience for our interns, while providing real value to the teams they would be working with. We feel fortunate to have been able to support a talented cohort of people. (Three of them recount their experiences later in this post as they share what they worked on during the program.)
To answer the question of when the right time would be to start an intern program, we considered a few things: How much does leadership buy into the concept? Can the program be structured in such a way that interns and their mentors get the guidance they need to be successful? Can we recruit a set of talented and diverse interns to bring added value to the company? For us, it started with a simple premise: how can we pay back our experiences to our community, especially younger technologists who love using DO to learn about tech? We wanted to pay it forward to young people who wanted to work in the cloud and help build the next set of great companies.
At a startup, every team member’s time is critical. We knew we wanted to structure a program that allowed students the opportunity to network with our employees, learn from them, and contribute to the organization. Orienting their growth, with some guidance from the people who love developers and want to build tools for them, helped identify other areas they could explore. We were lucky to have this first set of great interns and we look forward to having more of them join our ranks in the coming years!
(The Inaugural 2017 DO Intern Class. From top left to top right: Luke Grgas, Sasha Krutiy, Alisha KC, Evan Mena, Jordan Shea, Devin Morgan, Mariano Salinas, Anand Vyas, Kevin Wei. From bottom left to bottom right: Shweta Agrawal, Moises Eskinazi, Andrew Rouditchenko)
For more on our inaugural class of interns, read some of their stories below. (We’re publishing a second post with even more intern stories later this fall—stay tuned!)
DigitalOcean invests a significant amount of time and resources into monitoring for Droplets being used in DoS attacks, which I’ll call the Flood Monitoring System (FMS). The FMS uses data structures called FloodAlerts and FloodOccurrences to track when a Droplet has been flagged for “flooding” and to record information about the Droplet while it is flooding. This information then gets sent to an internal team that manually combs through the provided data and determines whether or not a flagged Droplet is acting legitimately or maliciously. However, as DigitalOcean’s customer base grew, the need to automate or semi-automate this process was becoming more serious. But, before DO could begin automating the FMS, certain infrastructure changes needed to be made.
I also had to create a dashboard that displays real time, visual representations of information derived from the FloodAlert and FloodOccurrence (FAO) data. Because this job heavily involved distributed systems, some of the technologies that I worked with included Apache Kafka, Apache Hadoop, Apache Hive, and Apache Spark. Other technologies that I used included Golang, Python, gRPC, and PrestoDB.
Both parts of this project were technologically challenging and forced me to learn a substantial amount in a short amount of time. I was very fortunate that the team I worked with knew their codebase and their tech stack inside and out and were incredibly willing to answer questions when I had them.
I was looking for firsthand experience owning a product and making an impact. I felt that owning a product as a PM intern would be valuable because it was actionable and results-oriented. I wanted to further hone my leadership skills, and learn how to scope down to an MVP feature and release it within a few weeks. My DO summer project was to improve One Click Apps, responsible for setting the vision for the product, and coordinating all aspects of One Click Apps product development, from creating the business case for adding new features to deciding when and what features should be retired.
It was valuable to compare the product’s historical metrics with the success criteria, to see how it had been performing over time. I took time to research what users were really like and what goals they were trying to accomplish. I analyzed the data, looked at customer support tickets, and interviewed a few customers to figure out the problems users were having.
The next step was to find solutions to these problems. I began by building hypotheses related to customer behavior and emotion. I had to wear several hats throughout the summer: I was responsible for identifying opportunities in the One Click Apps, launching two new One Click Apps to market, oversee them, and analyze metrics to ensure that they met the adoption goals. From writing specifications, prioritizing features, finalizing go-to-market, writing documentation, analyzing data, and coordinating with internal teams, I did it all.
As a hobbyist developer I’ve worked with many different programming languages and technologies to create things that I wanted for myself. While I tried to include what I considered to be relevant industry tools, such as git, into my independent workflow I’ve always wondered just how different the real world was from my solo and small team projects. During my internship, I was given the chance to participate in the development environment and cycle on the Insights team. I got the chance to work on a real feature that will provide value to both the company and end users. My code received the same care during review as a full time engineer, and getting feedback on my work as a software developer was wonderful.
My project for the summer was to provide users a way of establishing webhooks for alerts related to their Droplets. A webhook is a way for an application to provide real time information to another application over HTTP. As an end-user you’ll register your webhook, receive a request with a challenge message on your webhook URL from DigitalOcean then verify that you control that URL by responding with the challenge message. Once the URL is verified it will be sent JSON payloads with information related to alerts when they occur. This is a fantastic addition to alert notifications as webhooks allow end-user developers to act programmatically when alerts occur. Rather than receiving an email or slack notification, a developer could write a small program that would receive webhook payloads and do nearly anything with them. They could log alerts and generate graphical output, make use of DigitalOcean’s API and adjust their server’s storage size automatically, or a myriad of other countless options. I developed this particular feature from end to end, working in EmberJS in the UI and writing request handlers in Go on the backend.
In our next post, we’ll hear from interns who worked on our Cloud Engineering, Marketing, Networking, Data, Compute, and Frontend Infrastructure teams.
Danny Arango is a Senior Tech Recruiter at DigitalOcean. He’s passionate about building diverse teams and finding the right fit for the right people at the right time. He’s also a raging Arsenal fan (both in the positive and negative sense) and will debate anyone on the merits of 1994 being the best year in hip hop history. Follow Danny on Twitter @ElPibe627.