A personal investigation at Delphix: I found my passion in CS, but will I love the industry?
Written by Jordan Hendricks (Brown University '14 ScM '16)
When I decided to take an intro CS course my senior year of college, I wasn't necessarily expecting to like it. In fact, I didn't know what to expect at all. Studying computer science had never even been on my radar as something I could study, much less excel at.
But after enjoying a course my junior year that had a small bit of Python programming, I decided to take at least one introductory CS course before I left college to round out my otherwise generally STEM-heavy undergraduate education in chemistry.
I chose one of Brown's two most popular intro courses to sample before committing to it on my final schedule. One of my close friends who had taken the other large intro course (CS 17, for the #brownmafia reading) advised me to take it instead. "I think you would like it more," he told me at the time. "In fact, I'm scared you're really going to like it." My friend, having taken the class and familiar with my strengths as a problem solver and thinker, of course did not literally mean he didn't want me to like the class.
Rather, as my friend, he was worried that I would enjoy the course so much that I would deeply regret not having taken it sooner in my college career, with the chance to take more CS classes after. The bad news: my friend was right. I did enjoy the course. I fell in love with the material from the first class I attended.
I spent a few joyful hours poring over the first homework, completing it the night it was assigned. I soon started worrying that it was my senior year, and I couldn't take more classes in CS as an undergraduate. (Looking back now, if I had taken CS 17 my freshman or sophomore year, I almost certainly would have majored in CS.)
The good news was that while I could no longer take classes as an undergraduate, I could still make time to study more. I decided to put leaving Brown on hold and stick around for another two years to complete a master's degree in CS. A year into it now, I have not once regretted my decision to do this. But one giant question still remained: I may love CS, but will I love working in the tech industry?
When I started at Delphix this summer, I set out to answer this question.
I began working on a project for the AppData team, which builds infrastructure for virtualizing all types of data (beyond databases, which is the first type of data Delphix set out to clone). I found the AppData team interesting because the product they build is generic: AppData has found what we think is the necessary "recipe" for virtualizing lots of types of data -- from databases to interactive applications to generic files.
In computer science, this type of programming is known as "abstraction": the notion of generalizing out parts of a system so that each individual component is only concerned with one main concept or purpose. Abstraction prevents code duplication, helps isolate problems when debugging, and makes systems generally easier to understand.
Abstraction is one of the most useful concepts I have learned while studying computer science, and it is a powerful one. That being said, designing well-abstracted systems is a really difficult problem, and it is one I have found a lot of joy tackling throughout my computer science career. Working with the AppData team gave me an opportunity to work on a team that very clearly aligns with my priorities and values in CS with those of the company.
Because AppData infrastructure is used for most new data platforms Delphix adds to its product, this means that the work I have done this summer won't just affect one new database, or application. It will improve all of them! My code could span multiple customers and different types of data. That is a really satisfying impact to feel as an intern, who is here for such a brief time.
Of course, there have been many other benefits to interning at Delphix: the prevalent culture of mentorship and my brilliant mentors who have invested so much time in my success, the cool product Delphix develops (both technically interesting and valuable for our customers), and the generally stimulating environment that helps me scratch intellectual itches I don't always get to while working on my specific project (Delphix book club, anyone?).
At the beginning of this summer, I set out to answer a question of whether I would enjoy working in tech. But perhaps this was the wrong question to ask. As much as I love abstraction, I cannot abstract out my experience at Delphix to all tech companies (an absurd thought to say the least).
So I proposed a new question: Is it possible for me to love working in tech? And more concretely, will Delphix allow me to use my CS knowledge in the ways that I find fulfilling and stimulating, while making a living in the industry? Luckily for me, the answer to that question has been a resounding yes.