Research Software Engineer II
Redmond , Washington
October 19, 2017
Program synthesis is a new frontier in AI wherein the computer programs itself---the user provides input-output examples or describes intent in natural language and the computer synthesizes an intended script. This is significant because 99% people who own computers do not know programming. Even for programmers, this can provide a 10-100x productivity increase for many task domains, and especially in the areas of data wrangling/preparation and code refactoring. Data wrangling automation is very useful for data scientists who may end up spending 80% of their time wrangling data. Code refactoring automation is very useful for developers who may end up spending 40% of their time in a typical application code migration scenario. Our team has developed a powerful and flexible framework for program synthesis and have several state-of-the-art solutions that are deployed in practice<> .

Our framework leverages both logical reasoning techniques and machine learning techniques (and combines them in unique ways) for doing program search and for resolving ambiguity in the example or natural language-based specifications. Our framework also supports development of APIs for rich interactivity and debuggability Our APIs ship within multiple Microsoft products including Excel (Flash Fill), PowerShell (Convert From-string and Convert-string cmdlet), and OMS (Custom Field feature), and are set to change the user experience in fundamental ways for many more. See this 5-minute video:> for a short demo.

The researcher will perform both research and engineering including development of new algorithms and their robust implementations. The researcher will lead design and development of some novel aspects of the framework working closely with other team members. The researcher will also lead the design and development of some individual program synthesis technologies that will be developed on top of this framework.

Basic Qualifications:
• 5 plus years’ software development experience
• 2 plus years’ experience in C#, C++, Java or Python
• PhD in Computer Science with specialization in Programming Languages / Formal Methods

Microsoft is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to age, ancestry, color, family or medical care leave, gender identity or expression, genetic information, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran status, race, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable laws, regulations and ordinances. If you need assistance and/or a reasonable accommodation due to a disability during the application or the recruiting process, please send a request to

A little about us:
Microsoft offers training and employment opportunities to help you turn your military experience and skills into a civilian technology career.

Know someone who would be interested in this job? Share it with your network.