This is the second installment in a two-part series about DigitalOcean’s first internship program. In this post, we share more stories from interns in our inaugural class. (Read the first installment here.)
During my internship, I worked on an event error monitoring system which is used internally by the teams at DO. I owned many parts of the product from data discovery and data collection to metrics presentation. My manager always supported and encouraged me to make my own decisions about the project while teaching me how to use new tools and navigate the codebase. My service tracks event information as it progresses across the cloud with the help of some information from DO’s datastore. It then stores the metrics in the Prometheus server. These metrics are then visualized in a dashboard in various ways, using Grafana, allowing users to quickly and easily recognize different relationships between the events. The service provides better insight into event processing failures and paves the way for additional metrics collection.
My manager was conscious in making sure that I was using tools and technologies that are recognizable in the real world instead of using just DO’s internal tools. I got the opportunity to learn and work with the Go programming language, protocol buffers, Prometheus, SQL, and Grafana, among others. Working with so many technologies in such a short period of time has given me the confidence to pick up and try new technologies that I was previously nervous to use.
My team and I worked on a project for isolating private customer networks that involves building overlay tunnels. The design requires more active control of the network using SDN, as opposed to legacy network infrastructure like traditional routers and switches. I worked on the ping responder in IPv6. Because Echo requests and NS (Neighbor Solicitation) messages both use ICMP in IPv6, I've laid the foundation for an IPv6 Neighbor Discovery service as well. With this added control, we can eliminate excess traffic from traversing our physical network by creating a service the responds to ARPs and pings closer to the requesting Droplets.
A challenge for me was having to learn the Go programming language from scratch. It is quite different from the programming languages I had experience in. It was difficult to adapt at first, but now I feel quite comfortable using it and can also see a lot of benefits in its design. Also, learning the technical details of software-based networking and having a deep understanding of the project's architecture and how each part functions was a challenge I had to overcome for the success of this project.
DO wasn’t afraid to entrust the responsibility of such a complex project to an intern. Everyone has a singular goal: the success of the project(s) at hand. And they will do anything and everything to achieve that. All in all, the team has been very supportive and they sincerely cared about my growth. This makes me feel very fortunate to have been a part of this amazing team.
I was placed in the Frontend Infrastructure team under Phil Tobias. Unlike me, Phil is a remote employee working out of California, so I was initially unsure about how we would collaborate effectively. But DO has seemingly mastered remote work, because I don’t think I could’ve asked for a better or more supportive manager.
With the guidance of Phil and my DigitalOcean mentor, Iheanyi, I was able to construct a timeline that would map out the milestones for my internship project: the ChatOps system. The ChatOps system would serve as an alternative means for DO users to spin up or destroy Droplets through the use of a Slackbot named Sammy (Sammy the Shark is DO’s mascot). For Slack and other similar applications, bots can be called upon to perform special commands, such as reminding a user about a meeting or for silly things like posting GIFs. The hope was that by the end of my internship, I would have a working product that could be inherited by another team and eventually deployed to the public. I didn’t want to create something that would simply be put to the side, but rather something that would have real value to a customer. Whether it be managing Droplets, searching through community articles to answer user questions, or providing the user access to speed tests, I wanted the ChatOps system to be the jack of all trades.
The ChatOps system served as a creative catalyst for me, and it gave me the chance to see the evolution of something that I had built from the ground up. Furthermore, it inspired me to design other Slackbots for DigitalOcean, such as creating a Daily Stand-up bot for the Frontend Infrastructure team. For both of these products, I can say the most enjoyable experience was seeing my team members get excited when they saw the requested features or improvements implemented the very next day. For me, that was the most valuable part of my internship: feeling the joy and support from the consumers that you code for.
As DigitalOcean scales to support new customers and products, we need reliable tools to monitor our internal services. On the Compute Team, a subset of us focus on our fleet of hypervisor services. Hypervisors manage all kinds of Droplet events, including creates, destroys, and resizing. We collect and monitor tons of aggregated information about our hypervisors that allow us to ensure their health. While we previously had a method to survey hypervisor performance across the board, we lacked the tools to provide introspection to specific hypervisors. Given a problem with a hypervisor, it took specific domain knowledge to gain access to it and retrieve helpful information.
During my internship, I was responsible for improving our services and creating new tools to make this information more readily available. My new tools provide a straightforward way for engineers to observe the status of events and Droplet configuration on any hypervisor. This functionality reduces the time it takes to debug hypervisor problems. The new interfaces will help engineers transition our services to new internal architectures. These tools provide immediate value to our team, and they leave a framework for future extensions. It will be straightforward to expose this information in a GUI so that support teams can also benefit from it.
When I applied for this internship, I sought a technical and applied experience at a fast-paced company. This internship was a great fit for me as I was able to get an in-depth experience on an engineering team and learn more about my excitement for industry and research. From each conversation I’ve had with people on my team, I’ve been able to sample the kinds of exciting challenges that each person solves. In particular, I was able to speak with several engineers with research backgrounds. These conversations have been instrumental in helping me shape my career goals and decide what experiences I need to pursue in the future to reach them.
I’ve always been interested in tech startups and the VC scene. As a VC-backed startup, DigitalOcean was a perfect opportunity for me to get a look inside what it’s like to work for a late-stage startup. Additionally, DigitalOcean competes against large market incumbents, so it’s been very enlightening to see DO’s strategy and differentiation strategy as an “upstart” in the cloud infrastructure market.
I was definitely interested in working on the business side of a startup to get a handle for strategy, business models, and scaling. I think working in marketing here has definitely given me that experience, since I’ve been able to work on nitty-gritty details of user acquisition and help with community projects as well as remember marketing’s broader goals of market positioning and business strategy. My team—David, Hollie, Michelle, Andy, Mitch, and countless others—were always very willing to help me learn new things and understand how my projects would be useful for the organization as a whole.
Unlike other interns, I worked on a large variety of projects. The bulk of my work was with Hatch, our startup success program. I streamlined various parts of the Hatch process (such as onboarding and communications) and I worked on a lot of other projects such as our net neutrality activism. Interning at DO has given me a lot of experience with both Excel and Google Sheets. I’ve been using spreadsheets non-stop for various things, learning to script in both VBA (for Excel) and Google Scripts (for Google Sheets), and this is definitely a skill that will be very useful for me going forward.
I was on a search to find an internship that would allow me to accomplish a few things, like working alongside people who are good at—and love—what they do, being able to use new software or technologies, and working on something notable. I sought an environment that would give me the chance to see what the industry is really like, expose me to the type of work that I would want to do for my career, and the type of people I would work with.
At DO, I met a lot of people who enjoy what they do, and are always willing to help me in any way possible, whether it is by giving me an overview of something I don’t know much about, helping me with an issue I may be stuck on, or just helping me find the right resources. I feel as if I’ve gained a lot from the people alone, whether it be tips on using a certain tool or learning more about how to better work with others. In addition, I got the opportunity to use and in turn, learn, new tools that I had only heard of before. From starting to pick up a new coding language (Python), to figuring out how to write an automation script (Ansible), I definitely have many more much needed skills under my belt.
Having one big project for the entire duration of my internship taught me the importance of pushing through no matter what. I am now less intimidated by bigger projects, those that will take at least a few weeks to complete. This was an amazing opportunity because I received help from a passionate and intelligent group of people and I also given the chance to create something that has the potential to be of use to a sizable customer base.
Interested in becoming one of our interns? Apply for a spot in our 2018 intern class.
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.