This spring I graduated from Claremont McKenna College with a dual degree in physics and mathematics. Like many new graduates I found myself in the uncertain position of what I could, and more importantly what I should, do after graduation. Fortunately, I met some really cool people at a Harvey Mudd career fair who offered me an internship at Inktank, working on Ceph, a truly awesome project that attempts to solve one of the hardest challenges in computing today.
I have never failed to be amazed by the simple joy of using computers to solve interesting problems which attempt to capture the computational beauty of nature, which if you believe your analysis professor is somehow connected to the nature of counting itself. One of the things that I enjoyed most about college were the amazing opportunities to augment my basic education in the basic sciences, since I suppose fundamental is probably a matter of opinion, with slick software like IPython and SAGE, although I admit when I was feeling lazy I would have to resort to Mathematica. Another other thing I really enjoyed about my liberal arts education is that there were plenty of opportunities to allow my mind to drift to thoughts such as the VNC-into-a-server model of interacting with computational resources, and how poorly this scaled even in the case of a (tiny) class and how much worse the experience would be with even a slightly larger pool of users.
Working as a TA also exposed me to another reality: many student in science classes aren’t super interested in working with the bare metal of a machine since they have “actual” problems to solve and the like. All of this led me to the obvious conclusion that I should spend my time working on powerful tools to solve computational challenges simply and elegantly — an idea embodied by Ceph. I truly love tools like IPython’s notebook interface that when combined with some cool parallel features can provide a powerful and easy to use interface for scientific computing that just doesn’t suck. The good folks at Resolver Systems also provide a wonderful tool for collaborative development in Python.
How does this all fit in with my internship at Inktank? I love open source and I dream of helping to develop the tools students want to use. The Ceph distributed file system and object store provide infrastructure to meet the challenge of supporting today’s and tomorrow’s data loads from the canonical sequencing data to that large NumyPy array you decided to store to disk in a panic. Ceph provides the scalable backbone for computing platforms at the very edge of computing technology, which is exactly the sort of thing I wanted to do with my degree in the first place: make great tools that help other people do better work. I have to say that life is pretty good here on the bleeding edge of computing.
Coming from a natural science education, I am many, many years away from being an agile samurai as I stand in pure amazement as I watch the architecture of open source applications goes up around me, and sometimes I even get to add a brick or a window. One of the things that has made my time at Inktank so enjoyable is the how well Sage has been able to give me tasks that play to my strengths rather than my multitude of weaknesses as a software developer. My first task was to analyze the CRUSH algorithm which Ceph uses to deterministically distribute data among participating object storage devices. I was tasked with learning about the statistical distribution of CRUSH object placements. This was a fantastic opportunity to tiptoe into C++ programming, the idea of which had previously terrified me as a happy go lucky Python programmer, while using things I learned from this wonderful book in the probability class that I decided was cooler than the physics course which would have led to a single major in physics, sorry Maxwell but they didn’t want to teach me this in school.
The atmosphere at Inktank, and DreamHost since I have the pleasure of working in the downtown L. A. office, is simply amazing. I get to have interesting conversations about all manner of things and even suck up some golden nuggets about business development, my degree still does say Claremont McKenna after all, and stretch the limits of my ability each and every day. I also get to work on something that is amazingly cool and I could not imagine a place that I would more rather be. The week that I began my internship the Inktank offices were still located in the DreamHost suite located in the Aon center which was amazing because although my desk was wedged into a corner by a support column, there was a window that overlooked downtown Los Angeles from the 50th floor and the dart board above my head, presumably hand drawn by overworked devs years before my arrival, simply gave me an excuse to focus my thoughts when I had to take a break from looking at screens. For someone unwilling to cut their hair, Inktank is really a wonderful place to be.