Neel Sundaresan is a Partner Director at Microsoft Cloud and AI Division where he leads projects in infusing AI into software development. Prior to Microsoft he was the head of eBay Research Labs and eBay Data Labs. He was also a research manager at IBM research and was a founding CTO of a CRM company. He has a PhD in computer Science from Indiana University Bloomington and a degree in Computer science and in mathematics from IIT Mumbai. He has over 100 technical publications and over 160 issued patents. He is a frequent speaker at national and international conferences.
Upcoming Abstract Summary
Teaching a Machine to Code:
There has been extensive work in machine learning in speech, vision, text, and machine translation. One new area that is gaining a lot of interest is program synthesis. With the availability of vast amount of open source code in a wide variety of languages from sources like github and also associated textual information from platforms like stackoverflow, the field is ripe for using the latest advances in machine learning techniques for automation in software engineering in general and program synthesis in particular. While programs are highly structured as they obey the syntactic and semantic structures imposed by the compilers the intent behind the code is only human decipherable. By using associated comments, and PR reviews along with the signatures from code structures machine learning techniques can be applied to implement code completion and also assist in other software development processes like automated testing, risk analysis, and review processes. We will discuss how we have used machine learning and, in some cases, deep learning methods to assist in this automation. More specifically I will talk about deep learning techniques for understanding programs beyond semantics for identifying intent and idioms and match them with comments so as to automate and create assistive tools to the software developer during editing, building, PR, CI/CD workflows of software deployment. Mundane tasks during software development can be automated while more complex tasks can be alleviated with assistive AI solutions. We will walk through examples, experiences on what worked and what didn’t work in deploying such models to production.