Blog

A Delphix Internship Experience

Thumbnail
Written by Matt Ritter (Delphix Intern, Winter 2014)

Written by Matt Ritter (Delphix Intern, Winter 2014)

Delphix moves fast. I arrived for my first day and hit the ground running. Within an hour, I was online for the daily engineering meetup. I was introduced to my manager, Shubho (who currently holds the most tenure out of anyone on the engineering team, having been at Delphix for over five years), and my mentor, Ankur.  

These two engineers were dedicated to getting me on board and making sure my experience went as smoothly as possible. Shubho and Ankur introduced me to the codebase through a handful of bugs. I was working in middleware, an enormous Java class hierarchy coupled with various scripting methods to talk to remote client machines.

In a few days, I was pushing to trunk. From there, I got started on my real internship project.  For the next ten weeks, I was going to build support for SQL Server Availability Groups, a High Availability solution for SQL Serveron topof Windows Clusters.  

That's a mouthful, but it means that where there was one server with databases on it, now there could be several. Sets of databases could be kept in sync across multiple nodes. My desk was quickly covered with diagrams from the whiteboard, and I buried myself in Microsoft documentation.  

Before long, I had picked up some handy database administrator skills to play with Windows Clusters, and we had started discussing an implementation. I spent the next two months pounding away on Java code and Windows Powershell scripts.  

I craftily recycled existing sections of the code base, and I developed a nose for when to build entirely new parts.  After a few weeks, I was discovering metadata about Windows Clusters and persisting it into our internal metadata store.  

I spent hours pouring over debug logs and stumbling over edge cases, but my mentor was always around in case I got really stuck.  Eventually, I had recreated our entire database virtualization process for a cluster, rather than a single server. I had grown into an expert on Availability Groups.  

I prepared an hour-long presentation to the engineering team to share my implementation.  I switched from coding to meeting with the GUI team, the QA team, and any other group that would be impacted by my changes.  

My decisions directly affected the product, and I felt like a real team member. My last week was a celebration of the Delphix 4.0 Dune release, during which engineers from all three offices collaborated in Menlo Park. We spent our time bowling, brainstorming, and competing in hackathons.  

It was a grand finale after I had learned the ropes. I came away from Delphix with a serious development project under my belt and significantly more understanding of enterprise application development. I tell people it's like Git for terabytes of data, but that's just the start of a mile-a-minute ramble about one of the coolest technologies out there.