My first Engineering Kickoff at Delphix - hackathon
I recently joined Delphix as a member of the technical staff after graduating from the University of Illinois at Urbana-Champaign with a Masters in Computer Science. I wrote a blog post at the end of the past summer about my experience interning here, and what a great time I had. I chose to come back in part because of my great internship experience.
After I graduated, I was really looking forward to starting new projects at Delphix. Shortly after returning to Delphix I was able participate in the Engineering Kick Off, or EKO for short. The Delphix Engineering team holds this twice per year, and all of the members of the Engineering, QA, and the Support organizations attend a three day summit (including product brainstorming sessions, a hackathon, and team bonding events) in California. I had a great experience, and it helped get me more excited about the product that we are building.
The theme of this EKO was "scaling Delphix". Delphix is growing very quickly, so we discussed both how to scale as an organization as well as how to scale our product. The first day was held in San Francisco, and the following two days were at our headquarters in Menlo Park. EKO started off with several interesting talks on the topic of scaling Delphix.
Our CTO and CEO discussed some of the challenges that would come with scaling as an organization, and our Vice President of Engineering talked about some of the challenges to scaling the Delphix product as the size of Delphix customer deployments grows. Following this we had breakout groups which focused on different aspects of scaling the Delphix Engine. My breakout group discussed scaling our user interface to be able to more easily deal with many objects.
After making a list of areas that could be improved in the product my sub group further split into several groups which each discussed a few user interface related points from our main list of user interface areas to improve. I, along with four others discussed ways to navigate, filter, and visualize large numbers of different objects in the Delphix engine.
Half of my internship from the summer before had dealt with how to do these visualizations, so it was a topic to which I enjoyed returning. We closed out the day with a company party at Lucky Strike for some bowling. The next day I woke up early to take the bus down to Menlo Park. In the morning I worked with my sub-group more on ideas for the Delphix UI.
We created several mock up screens of what our idea would look like if it were to be implemented. The plan was to present these at a poster session on the third day where all the groups would show off their different ideas. The second half of the second day was a company hackathon. We split into new teams to focus on prototyping out some new improvement to the Delphix product. I partnered up with a group looking to improve the Delphix API calls and tools that interact with Delphix.
For my project I decided to build a Jenkins plugin that interfaced with the Delphix Engine. Jenkins is a piece of software for automating software building and testing. I gained a large amount of experience with it while I was in graduate school working on a research project, so I thought I would apply that experience to Delphix. I ended up starting development on the plugin around 1 PM and worked through the night on it because the ideas I had for it were turning out so well. I think most people ended up going home and coming back the next morning to work on their ideas.
The plugin that I developed offered tight integration between Jenkins and Delphix. In Jenkins you would provide your connection details for Delphix in the main Jenkins configuration screen. The configuration screen for a job would then allow you to select source databases to provision virtual databases from as part of the job. The virtual databases would be created during the job before the build step so that they could be used for testing.
After testing is done they are destroyed. The output logs of the virtual database setup are included in the Jenkins build logs, and if the user cancels the build job then the provisioning of the virtual databases is also cancelled. After putting the last few touches on my Jenkins plugin during the third day I went and helped my poster team present our ideas for scaling the Delphix Engine GUI as well as look at other team's projects.
People were able to vote for their favorite projects on cell phones while walking around and viewing the different presentations. My favorite presentation was one on how to distribute data in a Delphix Engine across a series of data nodes. My team ended up winning the vote with our GUI ideas, which was super cool. After the poster session, we had hackathon presentations.
My team presented the work that they did on improving the Delphix API, and I presented my Jenkins plugin, which was a lot of fun. It was exciting to see all the different ideas that people had dreamed up in such a short time and reminded me of all the great engineering talent we have here. A bunch of them were in areas of the product with which I didn't have a lot of experience, so I learned a lot. There were three judge awards to top projects as well as an audience vote for the favorite audience project. My team won the audience vote, which was pretty cool.
Since the hackathon, one of my teammates has mentioned the plugin to a number of customers, and there have been several customers interested in it. So, we are planning to continue development of it. I really enjoyed EKO. It has been great to come back to Delphix and be able to have such a large impact in such a short amount of time.