Alex Rudnick: CV


Machine translation. Natural language processing and machine learning. Open Source. Expanding access to the world's information through human language technology and education.

Current research

Broadly, my research is about improving machine translation for the world's under-resourced languages. I am working on helping systems make better word choices through word-sense disambiguation techniques, concretely focusing on the Spanish-Guarani language pair. This involves both gathering more training data through crowdsourcing and making better use of the resources that we already have available.


Professional experience

Software Engineer: Google

Mountain View, September 2014 - current. Google Translate team at Google Research in lovely Mountain View, California.

Software Engineering Intern: Google

Mountain View, May to August 2012. Google Translate team at Google Research. Worked on the language identification system in the pipeline for training very large language models from the web, so that the text in any given web page can be used to train the appropriate language model. Used C++, MapReduces, very large data sets, and some Python.

Mountain View, May to August 2011. 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 at Berkeley.

New York, May to August 2010. 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. Applied speech recognition software to the problem of music identification.

Software Engineer: Google

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.

Publications, tech reports, and workshop presentations


Course Instructor

Google Tech Exchange: Machine Learning
Spring 2019. Co-teaching an introductory class about machine learning for undergraduates from HBCUs and HSIs who are spending a school year in Silicon Valley!
B490: Natural Language Processing, Indiana University
Fall 2012. Taught a special topics course on Natural Language Processing for about thirty undergraduates at Indiana University. Covered basic ideas from linguistics and machine learning, sequence models and tagging, context-free grammars and parsing. Gave overviews of speech recognition and machine translation.

Teaching Assistant

Google Tech Exchange: Machine Learning
Fall 2018. Helped run a class on machine learning for undergraduates from HBCUs and HSIs at Google.
B553: Probabilistic Graphical Models, Indiana University
Spring 2013. David Crandall's class on probabilistic graphical models, covering Bayes Networks, Markov Networks, exact and approximate inference on them, and some applications from computer vision and NLP.
B651: Natural Language Processing, Indiana University
Fall 2010. Michael Gasser's introductory NLP course; wrote some new homework assignments, introduced the ideas behind automatic speech recognition and grammar extraction.
C211: Introduction to Computer Science, Indiana University
Fall 2009, Spring 2010, Spring 2011. Gave weekly discussions, lab sections, and well-attended office hours for Indiana's 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.
CS2130: Languages and Translation, Georgia Tech
Spring 2003, Fall 2003, Spring 2004. Georgia Tech's course covering C programming and basic ideas behind 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.

Other Teaching

Hacker School
December 2013. Hacker in Residence. Met with Hacker School students, had discussions and pair programming sessions on their projects, and gave talks and workshops about NLP.
Institute for Computing Education, Georgia Tech
Summers 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.

Professional service and Open Source contributions

Other research experience

Center for Complex Networks and Systems Research (CNetS)

Fall 2011 to Spring 2012. With the Center for Complex Networks and Systems Research (CNetS), helped develop Truthy, a web-based system for analyzing and visualizing the diffusion of information on Twitter, particularly political content.

Contextual Computing Group

Fall 2006 to 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.

Contextualized Support for Learning lab

Fall 2006 to 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 Mark's CS 1 and 2 classes.

Adaptive Personal Information Environments group

Spring 2006 to Spring 2007. With Graham Coleman and Charles Isbell, worked on SWIMM, a software 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.

Learning By Design group

Summer 2005 to 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.

Electronic Learning Communities group

Fall 2001 to 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 (12 marathons so far), yoga, juggling, cycling. Playing the drums. Reading philosophy, history, linguistics, popular science, and a lot of news.