By John Roach, Writer, Microsoft Research
After a handful of years writing code for the telecommunications and design automation industries, computer bugs got the best of Sriram Rajamani. He witnessed firsthand how poorly constructed code caused programs to crash and swung doors open for hackers.
Microsoft research podcast
Collaborators: Silica in space with Richard Black and Dexter Greene
College freshman Dexter Greene and Microsoft research manager Richard Black discuss how technology that stores data in glass is supporting students as they expand earlier efforts to communicate what it means to be human to extraterrestrials.
“I saw how difficult it was to build real software and real computer systems that work reliably and perform in a way that helps users and society,” says Rajamani, who in August became the new managing director of Microsoft’s research lab in India.
“And I started to compare that to how people build bridges. Bridges don’t fall down all the time. Why is that?”
The answer, he discovered, involves experience gained over time – the software industry is about 70 years old; people have been building bridges for millennia, long enough for a formal design and engineering process to take root and hold.
For example, civil engineers use mathematical models to verify that bridge designs will perform as advertised. “We know that before we build the bridge,” Rajamani says.
To get rid of the bugs in his code, Rajamani solicited advice from computer scientists at the University of California at Berkeley who specialize in formal methods for programming hardware and software.
“I liked what was being done there so much that I decided I would leave my job and go do a PhD on this topic,” he says.
The switch to a research career focused on building strong and reliable computer systems is emblematic of a trait that observers routinely note about Rajamani: He always picks problems to work on that generate impact.
“He tackles problems that are hard but important and whose solutions are useful and deployable,” says Jeannette Wing, corporate vice president, Microsoft Research. “It is very rare to find a researcher who can span the spectrum from basic research to scalable solutions.”
Device driver bugs
After graduate school, in 1999, Rajamani joined Microsoft’s research lab in Redmond to work on the design of bug-free software, a critical issue for the company. Windows, the flagship operating system, was running more than 90 percent of the world’s computers and it was facing criticism that it crashed too frequently.
Research suggested that many of the 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.
To squash these bugs, Rajamani joined forces with Thomas Ball, an expert in program analysis who also had recently joined Microsoft’s research lab.
“We worked well together because we had a common goal, which was device driver quality, but we brought to it different perspectives,” recalls Ball.
The collaboration resulted in a so-called device driver verifier, a type of quality assurance program that checks for bugs before the drivers are run, thus heading off a driver-caused system error.
The project substantially improved Windows reliability and brought widespread recognition to the researchers within Microsoft and throughout the industry.
A magnet in India
In 2006, Rajamani was among a handful of rising stars in Microsoft’s research organization recruited to join the company’s newly opened lab in his native India. Mid-career experts in algorithms, machine learning, security, programming languages, systems and human-computer interaction were also lured to the lab.
The strategy, explains Rajamani, was to use star power to attract and retain talented computer scientists in India, bucking the trend of India’s top graduates moving to the U.S. and Europe for jobs.
Aditya Nori, for example, joined Rajamani’s group shortly after the lab opened. He’d just earned a PhD in theoretical computer science in India and read about Microsoft’s new venture in the newspaper.
“The first two years were like a second PhD for me because I switched fields,” he recalls. “And Sriram was a mentor. I learned a lot from him. He led by example and that is very important, especially for people who are young and starting off their careers.”
One of the group’s early projects, Yogi, involved improvements to the device driver verifier that enabled bug checking both before and during operation, which added another layer of protection against crashes.
Another project focused on security and privacy in the cloud, an area that Rajamani was eager to explore in order to stay on top of technology trends and adapt his research accordingly.
To tackle the problem, he collaborated with Manuel Costa, a researcher in Microsoft’s Cambridge, U.K., lab, and Sanjit Seshia, a professor in the department of electrical engineering and computer sciences at the University of California at Berkeley, to design methods for programming new so-called trusted hardware in the cloud, and verify the security of programs that run on this hardware.
As Rajamani’s earlier research did, this latest project is having impact.
“There is a growing community that is starting to work on this topic of verifying programs running on trusted hardware,” Seshia says.
Microsoft, he notes, is interested in the work as a way to provide security guarantees for its cloud service, Azure.
Rajamani’s eye for good problems, Seshia adds, also bodes well for the future of Microsoft’s research lab in India.
“That quality is what you’d like to have in a technical leader,” he says.
Unique opportunities in India
Nearly 1 billion people in India currently lack access to the Internet, but new connections are growing quickly. Researchers expect 250 million people in India to come online in the next few years.
“And then another 250 million after that,” Rajamani says, explaining that a major opportunity for the India lab is to design systems that use technology to improve the lives of these new-comers to the Internet, and build on the experience to design solutions for other markets around the world.
India, he explains, is representative of much of the world outside of the U.S. and, as a result, can serve as a testbed for the services that make technology meaningful and valuable to the next billion people.
Microsoft researchers in the India lab’s Technology for Emerging Markets group, for example, have already spent more than 10 years exploiting the country’s wide adoption of mobile phones to address needs in healthcare, education and agriculture, Wing notes.
“As new lab director, Sriram is enhancing these efforts by bringing in researchers in other areas, such as systems and machine learning, to work with Technology for Emerging Markets to create new technologies to address these concerns,” she says.
Rajamani says he is bullish on finding and tackling problems that will impact markets everywhere around the world.
“Our dream is not to just design stuff for India,” he says. “I think of India as a testbed that looks very different, but a lot of our researchers are very international, they have lived in the U.S. or Europe, and so I hope it gives a different point of view to design systems that are applicable more broadly.”