Natural language processing and machine learning. Machine translation. Open Source. Expanding access to the world's information through human language technology and education.
With Michael Gasser's HLTDI group, building a machine translation system for under-resourced languages, such as Quechua and Amharic, using synchronous dependency grammars. As of 2011, working on a related tools for cross-language word-sense disambiguation to help with lexical choice during the translation process. Goals for the near future include acquiring grammars and training data via active learning and crowdsourcing.
Mountain View, May 2011 to August 2011. Worked with the Google Translate team at Google Research. Developed Google Translate's phrase-sense disambiguation system, using C++, MapReduces, and very large data sets. Also helped develop curriculum for a new introductory CS class to be taught at Berkeley.
New York City, May 2010 to August 2010. Worked with the Speech team at Google Research. Parallelized code to build finite-state transducers, using MapReduce in C++. Made small patches to OpenFST. Investigated integrating models of phoneme durations with the current weighted-FST based software.
Atlanta, July 2007 to July 2009. Worked as a software engineer in Google's Atlanta office with the Google Web Toolkit team. Focused on user interface components, internationalization and accessibility features. Built a new online documentation browser, which was used for the GWT 1.5 documentation, and can optionally be used with any project hosted on Google Code Project Hosting. Helped build and launch the Google Plugin for Eclipse, extensions for the popular Eclipse IDE which make it easier for Java developers to use GWT and Google App Engine. Maintained documentation, answered questions from the community, and built helpful samples in Java and Scala.
Fall 2010. Helped teach Michael Gasser's introductory NLP course; constructed some new homework assignments, introducing some of the ideas behind automatic speech recognition and grammar learning. Did a bunch of grading.
Fall 2009, Spring 2010, Spring 2011. Gave weekly discussions, lab sections, and well-attended office hours for an introductory CS class in Scheme. Wrote class-infrastructure software, including a web application to assign lab partners and a system to manage student programming contests.
Summer 2005, 2006, 2007. Media Computation summer camp at Georgia Tech. Taught high- and middle-school students media concepts and basic programming with Python, Alice, and Scratch. Played frisbee and went on scavenger hunts around the campus. For Summer 2006, helped teach Media Computation workshops for high school computer science teachers.
Spring 2003, Fall 2003, Spring 2004. TA for Georgia Tech's CS2130 "Languages and Translation", which covered C programming and basic compilers. Wrote new assignments and automatic grading programs, including an auto-grader that could distinguish non-recursive, recursive, and tail-recursive solutions. Taught weekly recitations and review sessions.
Fall 2006 - Summer 2007. For Thad Starner's Contextual Computing Group, developed classifiers for finding typographical errors made on mobile QWERTY keyboards, particularly accidentally repeated keystrokes and near-misses. The classifiers take into account letter frequencies, n-gram frequencies, keypress timing information, and keyboard layout.
Fall 2006 - Spring 2007. With Mark Guzdial, helped develop JES, the Jython Environment for Students. Added functionality for LOGO-style turtles and animations, improved speed, usability, maintainability of code and documentation. Occasionally filled in giving lectures for Dr. Guzdial's CS 1 and 2 classes.
Spring 2006 - Spring 2007. Worked on SWIMM, a music-player that uses machine learning to model the listener's preferences and play songs in an appropriate order, based on signal features extracted from the songs and their ID3 metadata. Updated the interface and functionality to convert between sound formats, helped clean up existing code.
Summer 2005 - Spring 2006. Built web applications for Janet Kolodner's Kitchen Science Investigators project, a study on teaching children science concepts through cooking. This included software to help children easily upload images from digital cameras and manage their online lab notebooks.
Fall 2001 - Fall 2002. Worked on Amy Bruckman's MOOSE Crossing, a text-based online world for teaching children programming concepts. Helped develop the world, the server code, and the related curriculum. Spoke to the community, often in person; made weekly visits to local after-school Computer Clubhouses.
Distance running (marathons), juggling, and cycling. Playing the drums. Reading philosophy, history, linguistics, popular science, and a lot of news.