The bug bit in high school -- I had built my first computer from scratch, and in discussions with my best friend, we decided with a few other "investors" (friends) to try and sell built-to-order computers on eBay. We opened a bank account, dubbed ourselves "Grey Matter Computing," and started researching builds. It was equally as exciting as frustrating, but I've learned that's par for the course with starting virtually any business. Grey Matter had a short but successful lifespan, being put on indefinite pause as the summer completed and we all went our separate ways for college.
Act II took place midway through my undergraduate degree. Observing the absurd margins the college bookstore enjoyed on textbook buy-back, and the hesitance people had about selling their books on online stores like Half.com, I built a business by buying friend's books for often twice what they could get from the bookstore, and then selling them on Half.com myself. Besides being successful (and less frustrating than my last experiment) and helping to pay my way through college, it gave me exposure to some of the, let's call them "less well-trodden," parts of Philadelphia. You simply can't put a price on those kinds of life experiences.
Catching up to the present, my current company began over four years ago when my best friend approached me to see if I would assist as the technical lead for a business he and two former professors from the University of Delaware were starting. The resultant on-line business, Social Security Choices, was designed from the ground up to help people find mathematically optimal answers regarding the best time to claim Social Security benefits, and perhaps more importantly, what you lose by claiming at sub-optimal times. Despite entering with the full intentions of doing everything for free in exchange for the valuable experience, I rapidly became absorbed with the business-building side of things in addition to my technical duties, and was offered an equal part of the partnership when we left stealth-mode. This is, by orders of magnitude, my most successful and most risky (in terms of time and capital investments) venture to date, and I suspect I'll be burning my nights and weekends on it for years to come. If I've peaked your interest, I have plenty more information regarding my specific involvement on the Company page.
I wasn't always as obsessed with high-performance storage as I am now. In fact, if you spoke with me in high school or even parts of my undergraduate, I would have suggested that I was more of a networking and high-performance computation character. However, as I spent more and more time towards the end of my undergraduate degree researching and building clusters from the ground up (often of heterogeneous machines that were other people's trash, or making clusters with live-CDs out of my college's computer labs after hours), I quickly recognized storage was the major bottleneck in all of my clusters. Beginning my Ph.D. with the intention to to continue my passion for networking and HPC with just a small focus on storage, that rapidly transformed into a full-blown passion for storage and a focus on its use in HPC and other distributed systems like the cloud.
Beginning my fifth year in my Ph.D. program, I've had the amazing experience thus far of collaborating with some brilliant minds towards some serious storage solutions. Specifically, the three major figures in my academic development have been my advisor at Penn State, Mahmut Kandemir, my advisor when on internship at Panasas/Carnegie Mellon, Garth Gibson, and my best friend in graduate school and collaborator Myoungsoo Jung. My research interests span the storage stack, and include, but are not limited to: distributed file systems for HPC and cloud environments, NAND-flash based SSD architecture, the interplay and use of SSDs and other NAND incarnations in those distributed file systems, and how the storage stack can be made more transparent for collaborative I/O across layers (all the way from the application down to the device). That's all quite high-level, I know, so I would encourage you to see the Research page if you'd like more details.
In debating what term or terms best described my varied and lengthy experience with code, I decided I exhibit more tendencies towards being a "mechanic," one exposed to a large variety of code and who is just as happy to pick up existing code and tune it to his liking as he is to build code from scratch, than a more traditional "programmer" or "architect." Over the years (since age 13) I have learned and worked in over two dozen languages and "played mechanic" in hundreds of different code bases. Some of these were entirely original works of code I built from the ground up, but a larger portion were either collaborative code bases I built with scientists or colleagues in other professions or applications I use on a day-to-day basis but didn't like some specific thing about them. These projects range from one-hour hack sessions such as getting Vim to parse and format C files in a special way, to half decade long projects that have evolved considerably and are spread across multiple languages and tens of thousands of lines of original code.
For more information on the languages I currently enjoy coding in, and a summary of past and current projects, please take a look at my CV.
Beyond my professional and academic roles, I also enjoy the labels of loving husband, washed-up NCAA Division I cross country runner, avid baker, hot wing addict, and a bit of a clean freak.
If you'd like to know more about this kind of stuff, well, all I can offer is to share a beer and some conversation next time you bump into me. Or you can read my blog -- there's sure to be some interesting tidbits up there soon.