People of ACM - Sriram Rajamani
March 26, 2019
What was a special challenge, as well as a unique opportunity, for Microsoft opening a research lab in India?
The opportunities are many. India provides a unique testbed for research and innovation, due to many spoken languages, wide disparities in socioeconomic conditions and diversity of people. Innovations inspired by living and working in India have the potential to offer solutions to challenging problems faced by much of the developing world. We have a huge population of young people here, and a growing economy, which also present big opportunities. The challenge is that the computer science research ecosystem in India lacks critical mass when compared to the West, in spite of its large and strong undergraduate programs. We mitigate that challenge by recruiting PhDs worldwide (both from India and from abroad), and we have been very successful at our worldwide recruitment. At the same time, we have worked with young undergraduates from India and actively collaborated with CS academia in India to collectively improve the research ecosystem.
Personally, I moved to Microsoft Research India in late 2005 (a few months after the lab was set up) from Microsoft’s Redmond, Washington lab, to do technical and research work. In addition to doing technical work, I built a programming languages group which has done very good work and created a reputation for itself worldwide. I have taught courses in universities in India, and co-supervised PhD students here. About three years ago, I took on the role of leading MSR India. Consequently, I have had the experience of working in various roles in the lab—as a researcher, group manager, and lab director.
With Tom Ball, you received the Computer Aided Verification Award in 2011 for development of the SLAM/SDV software model checker. What prompted you to develop it?
My PhD thesis at UC Berkeley was on formal verification of hardware, using a technique called model checking. When I graduated and joined Microsoft Research, I met Tom Ball, who had a lot of experience in compilers and program analysis for software. We had complementary backgrounds and collaborated well. We decided to work on using formal methods such as model checking and theorem proving to improve software reliability. We started looking at Windows OS reliability, and the data we had collected suggested that many of the Windows crashes stemmed not from the operating system itself, but from bugs in device drivers—snippets of code that control communications between the operating system and devices such as the keyboard, screen and printer. Our collaboration resulted in Static Driver Verifier, a quality assurance tool that checks for bugs before the drivers are run, thus helping fix driver-caused system errors before they happen. The project substantially improved Windows reliability and brought widespread recognition to the value of formal methods within Microsoft and throughout the industry.
What new avenues of research are your teams at Microsoft Research India exploring? What are you personally working on these days?
Our work in Microsoft Research India spans four areas: algorithms and data science, which covers mathematical foundations of big data algorithms; machine learning and AI, which is such a popular and important area today; systems, which spans compilers, programming languages, networking, storage, security and privacy; and technologies for emerging markets, which studies the role of technology in socioeconomic development.
Many of our projects are interdisciplinary and span multiple areas. For example, we are working on how to run machine learning algorithms on very small and low-cost chips. This requires developing new theories, new ML algorithms, new compilers to make these algorithms run on such small devices, as well as research on what kind of end-to-end applications this technology can enable. As another example, extreme classification is a new sub-area of machine learning which originated in our lab. As its name suggests, extreme classification classifies objects into millions of categories.
Another project, called Datamap, is about understanding how to think about data privacy policies, how to enable data owners to state such policies, and how to build systems that enforce these policies as customer data travels through the cloud and user devices. We are also excited about a new MSR initiative, called 99Dots, in which we have developed a low-cost system to monitor tuberculosis patients, and help them adhere to their medication regimen. The system is widely deployed and over 200,000 tuberculosis patients have been served using the system.
These days, I am personally working in the intersection of programming languages and machine learning. Together with some colleagues, I am working on how to combine program synthesis ideas and machine learning ideas, in order to build systems that are both robust and flexible at the same time. We believe these systems will be able to address problems such as extracting structured information from heterogeneous unstructured data (such as machine-generated emails or web pages).
What advice would you offer a younger colleague just starting out in the field?
Follow your passion and find problems and areas that most resonate with you. Research is a marathon exercise, and it often takes a researcher many years to make a mark—so it is important that you work on problems you like. Also, collaborate with people who have different expertise than you, so that you learn from others. Take a long-term view and do work that tackles real problems that many people care about, rather than count the number of papers that you publish. It is more fulfilling to produce a few key results that change the way a field evolves, rather than a long list of incremental publications.
Sriram Rajamani is Distinguished Scientist and Managing Director of Microsoft Research (MSR) India. He has worked in a wide range of areas including hardware and software verification, type systems, language design, distributed systems, security and privacy. His current research interest is in exploring the intersection between programming languages and machine learning.
He was the General Chair of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2015). He is active with the Indian chapter of ACM SIGSOFT, where he co-founded the Innovations in Software Engineering Conference (ISEC) series. Rajamani currently serves on the editorial board of Communications of the ACM as Co-Chair of CACM’s Regional Special Sections. He was named an ACM Fellow (2015) for contributions to software analysis and defect detection.