I am a researcher at Microsoft Research in Cambridge. My research concerns application of machine learning and natural language processing to software engineering and programming languages to create smart software engineering tools for developers. In the era of “big code”, code is a form of data that can be manipulated by machine learning methods to provide useful software engineering tools, interfaces and insights. I focus on developer tools with a strong machine learning component, while using problems of this area to motivate machine learning research. The core challenges in my research rests in developing machine learning methods that can handle probabilistically the multifaceted and highly structured aspects of source code.