About me...

I am a PhD student in EECS at MIT, working with Dr. Sep Kamvar. My research interests broadly include Human Computer Interaction and Software Systems. I am currently working on Jabberwocky, a software development stack for social computation.

I am also working on Bricolage, a web design tool that allows content to be automatically transformed into the style and layout of any webpage on the internet. Additionally, I am developing Gitti, a graphical source control application for Mac OS X. Gitti is currently in private beta and I am getting very positive feedback.

I received my Master's degree from the Department of Computer Science at Stanford University where I was advised by Dr. Scott Klemmer in the HCI group.

In the past, I have worked with Microsoft developing virtualized datacenter solutions in addition to serving as a Software Engineer for Freescale Semiconductor and Arizona State University's Technology Office. I graduated summa cum laude from Arizona State University with a BSE in Computer Systems Engineering and previously graduated as high school valedictorian.


Jabberwocky UIST 2011

Abstract: Jabberwocky is a social computing stack that consists of three components: a human and machine resource management system called Dormouse, a parallel programming framework for human and machine computation called ManReduce, and a high-level programming language on top of ManReduce called Dog. Dormouse is designed to enable cross-platform programming languages for social computation, so, for example, programs written for Mechanical Turk can also run on other crowdsourcing platforms. Further, machines and people are both first-class citizens in Dormouse, allowing for natural parallelization and control flows for a broad range of data-intensive applications. Lastly, Dormouse includes notions of real identity, heterogeneity, and social structure. We show that the unique properties of Dormouse enable elegant programming models for complex and useful problems, and we propose two such frameworks. ManReduce is a framework for combining human and machine computation into an intuitive parallel data flow that goes beyond existing frameworks in several important ways, such as enabling functions on arbitrary communication graphs between human and machine clusters. And Dog is a high-level procedural language written on top of ManReduce that focuses on expressivity and reuse.


Flexible Tree Matching IJCAI 2011

Abstract: Tree-matching problems arise in many computa- tional domains. The literature provides several methods for creating correspondences between la- beled trees; however, by definition, tree-matching algorithms rigidly preserve ancestry. That is, once two nodes have been placed in correspondence, their descendants must be matched as well. We in- troduce flexible tree matching, which relaxes this rigid requirement in favor of a tunable formulation in which the role of hierarchy can be controlled. We show that flexible tree matching is strongly NP-complete, give a stochastic approximation al- gorithm for the problem, and demonstrate how structured prediction techniques can learn the al- gorithm’s parameters from a set of example match- ings. Finally, we present results from applying the method to tasks in Web design.


Bricolage Best Paper - CHI 2011

Abstract: The Web today provides a corpus of design examples unparalleled in human history. However, leveraging existing designs to produce new pages is currently difficult. We introduce a novel structured-prediction algorithm, Bricolage, for automatically transferring design and content between Web pages. Bricolage learns to create coherent mappings between pages by training on human-generated exemplars. The produced mappings can then be used to automatically transfer the content from one page into the style and layout of another. We show that Bricolage can learn to accurately reproduce human page mappings, and that it provides a general, efficient, and automatic technique for retargeting content between a variety of real Web pages.

Paper WWW

Weblines CSCL 2011

Full Title: Weblines: Enabling the Social Transfer of Web Search Expertise using User-Generated Short-form Timelines

Abstract: Web search encompasses more than fact retrieval; it is a primary entry point for learning. Exploratory search tasks are attempts at such learning and require cognitive, strategic, and interpretive work from the user. The pathways of such searches are likewise complex and nuanced. The present study attempts to enable the human work that goes into conducting exploratory searches to be efficiently captured and transmitted to other learners. By this method, web search expertise can transfer socially and implicitly between users instead of developing individually or through directed learning. The system we deployed uses an existing metaphor, the timeline, to structure insights from searches. We refer to these semantically meaningful representations as ‘weblines’. We deployed a live system to 81 users in three user populations. The resulting weblines were delineated into four types. Successful weblines were those that participants used to iteratively reflect upon the insights of their searches.


Understanding How Users Map Regions Between Web Pages

Abstract To assist novice users in creating web pages, we envision a tool that automatically transforms an existing web page into the layout and design of another. In order to achieve this vision, one must develop a learning algorithm that is capable of mapping regions between web pages. To do so, an in-depth understanding of user behavior is necessary. Thus, we seek to understand how users map regions between web pages. There were two fundamental questions that were asked: (1) do users map web pages consistently and (2) what motivates their mapping decisions? A custom interface, which asked users to select corresponding regions between two web pages, was utilized in a Mechanical Turk study and in a lab study. We found evidence that indicates that users do map web pages consistently and discovered that users tend to create mappings in a manner that preserves the hierarchy of the pages while also pairing semantically salient elements.


Affective Learning Companion

Abstract There have been many studies demonstrating the link between affective and cognitive learning, but this link is often ignored in our, “one-size fits all,” education system. This paper introduces an on-screen virtual agent that can assist educational professionals with achieving a balance between a student’s affective state and cognitive learning; an affective learning companion. The affective learning companion ascertains a user’s emotions and responds in a manner that improves the user’s affective state in the short-term, and improves learning in the long-term. It does so using a platform consisting of three sensors (skin conductance glove, pressure sensitive mouse, and posture sensing chair) and facial recognition software. With this system we hope to be able to analyze users and determine their current affective state including boredom, fatigue, frustration, and excitement.


Personal Projects

Gitti gittiapp.com

Gitti is a Git Client for Mac OS X designed to ensure that users never have to touch the command line. With a highly modular and organized interface, Gitti logically separates each step in your Git workflow to maximize your efficiency.

Gitti is currently in private beta.

LineHive linehive.com

As we browse news stories, we make mental connections between pages. 'Hyperlink storytelling' is putting those links together to create mini-stories. Our algorithms automatically create timelines to make your mini-story a mini-beauty. Thinking through linking. Browse the connections others make of the same news stories.

CastleQuest idyllico.com/castlequest/

Castle Quest is an interactive game to get kids excited to do math. Kids learn math immersed in a physically interactive video game. Visual and auditory feedback create a fun learning experience. Kids answer basic math problems to blast cannon balls at their competition.

CastleQuest is implemented using RFID readers which communicate to a Flash application over TCP.


iLogger, is a journal authoring application that automatically analyzes journal posts to create a timeline of events. It uses a definition list of user-defined regular expressions to identify time expressions and associated data (related text and relative date). These time expressions are then arranged into a timeline so a user can get an idea of his or her activities over a time frame.


A simple yet useful front end to GPG. Just drag a file over a drop zone, type in a password and Encryptosaurus will encrypt the file using a symmetric cipher.