We are a team of researchers and engineers working to create state-of-the-art programming-by-example and other technologies for data wrangling and other application domains of program synthesis. This is a revolutionary charter since 99% of computer users lack programming skills, and data scientists spend 80% of their time wrangling with data. The team includes:
Sumit Gulwani leads the PROSE research & engineering team at Microsoft that develops program synthesis technologies for data wrangling and incorporates them into real products. Sumit’s programming-by-example work led to the Flash Fill feature in Microsoft Excel used by hundreds of millions of people. Sumit has co-authored around 50 patent applications, published 110 papers in top-tier conferences/journals across multiple computer science areas, and delivered 30 keynotes/invited talks at various forums. He was awarded the ACM SIGPLAN Robin Milner Young Researcher Award in 2014 for his pioneering contributions to end-user programming and intelligent tutoring systems. He obtained his PhD from UC-Berkeley, and was awarded the ACM SIGPLAN Outstanding Doctoral Dissertation Award. He obtained his bachelor’s degree from IIT Kanpur in 2000, and was awarded the President’s Gold Medal.
Ranvijay has more than 18 years of experience in software industry and more than 10 years in managing product development. He is a BTech from IIT Kanpur (India) and has been a part of the founding team of three startups in the US and in India. Prior to joining Microsoft, Ranvijay managed the Research and new product development efforts of a Healthcare Product company based in Bellevue, Washington. He shipped a Health Information Exchange, a Healthcare Analytics Platform, and a Patient Master Data Management solution that uses advanced record linking capabilities to match Patient records across care settings. Ranvijay is very excited about the possibilities of Program Synthesis by Example technologies.
Vu obtained his PhD at the University of California, Davis in 2015, and his BEng at Vietnam National University in 2006. His PhD focuses on automatic program generation to help improve the quality of critical software and make programming more accessible to end users. His work has led to hundreds of bug reports/fixes in GCC and LLVM and important shipped features in Microsoft PowerShell and Operations Management Suite (Azure OMS). He is currently working on (predictive/by-example) text extraction, tree-based extraction and transformation, and predicate/conditional learning.
Daniel recently completed his PhD at the University of Washington working with Dan Grossman and Sumit Gulwani on program synthesis and is now a Research Software Engineer in the PROSE team. In addition to work on programming by example, his code has been deployed as the hint mechanism in MSR’s Code Hunt programming game.
Mark has been at Microsoft for 15 years, spending about half of that time in MSR. He graduated from Carnegie Mellon University and spent a year nearby working on certifying compilation and proof carrying code with Cedilla Systems. At Microsoft, he worked on Bartok, an optimizing ahead-of-time compiler and runtime system for C#, for a long time. As part of that work in MSR, he contributed to research in garbage collection, software transactional memory, and the Singularity managed OS project. He then worked on generics, separate compilation, and System C# as part of the Midori incubation effort. After a year and a half learning about Azure Storage, he is excited to have returned to the field of programming languages on the PROSE team.
Alex is a PhD student at University of Washington, Seattle, USA, and a researcher/software engineer at Microsoft. His passion lies in research and implementation of solutions that automate repetitive programming tasks for engineers, consumers, and educators. Alex initiated the program synthesis framework that forms the core of Microsoft PROSE SDK, and continues to lead its development. Before joining the team, he worked on automatic problem generation for intelligent tutoring systems in Center for Game Science, programming languages for data wrangling, and linguistic algorithms for Yandex.
Mohammad’s background and interests are in formal methods for reasoning about computer programs. He holds a PhD in Computer Science from Imperial College London and a Masters in Mathematics from the University of Cambridge. He works on the development of techniques and tools for program synthesis through natural interaction paradigms such as programming by examples, natural language, or a combination of such approaches. In particular, he is interested in the applications of these techniques for data wrangling tasks such as extraction, formatting, cleaning, or transformations in various data formats including spreadsheets, text documents, and richly formatted documents. In the PROSE Team his current focus is on developing examples-based and fully automated synthesis technologies for information extraction from web pages.
Danny has worked in the software industry (both inside Microsoft and out) for over 25 years. He first started at Microsoft in 1997 working on the Outlook team, and then spent nearly 15 years alternating between shipping products like Excel, Live Meeting and the Entity Framework and participating in incubation efforts for very interesting technologies which usually didn’t ship in the form originally targeted. Outside of Microsoft he has worked as a Unix System Admin in the Idaho State University computer center, founded an early Internet Service Provider, helped INRIX with their traffic data web services, and served as CTO of a startup building RFID-based inventory tracking systems for small businesses, among other endeavors.
Abhishek graduated with a PhD from the University of Pennsylvania, in 2016, advised by Rajeev Alur. His dissertation explored techniques for synthesizing distributed protocols and loop-free programs. He has contributed to development of the SyGuS language definition, and has also developed SyGuS solvers which have been primarily based on enumerative program synthesis strategies. His research interests include formal methods and program synthesis, and he very much enjoys building systems to demonstrate the practicality of his research.