So, you want to do computer science research but you don't want to be squirreled away in academia where your projects find few real-world applications. You want to develop a new programming language, or new cryptography, or work on artificial intelligence. You want to do cutting-edge research, but you also want the work you do to make its way to widespread use.
If this describes you, Microsoft may be just what you're looking for. In 1991, Microsoft became the first software company to create its own research organization: Microsoft Research  (MSR). Today, with 750 employees at six locations, MSR is one of the largest corporate computer science research labs in the industry. What is it like to work there? What kind of projects do they do? How do you get a foot in the door? To find out, read on.
MSR spreads its efforts over six facilities, with about 350 of the 750 or so MSR researchers residing at the Redmond, Washington facility. Microsoft Research Cambridge (Cambridge, UK) opened in 1997 and employs more than 75 researchers who focus on programming languages, security, information retrieval, operating systems, and networking. Microsoft Research Asia (Beijing, 1998) employs more than 150 researchers working on next-generation multimedia applications and Asia-specific computing technologies. Microsoft Research Silicon Valley (2001) has more than 25 researchers with an emphasis on distributed computing. Microsoft Research India (2005) employs 20 researchers working on digital geographics, multilingual markets, and technology for emerging markets, among other projects. Microsoft's Bay Area Research Center (formed in 1995) has 6 researchers investigating scalable servers and virtual communications.
Research projects vary widely. Areas of particular emphasis include machine learning, data mining, and security. "We're also looking into concurrency, the idea that you have several processors in a machine and how you can make efficient use of that through the design of software and hardware," says Henrique Malvar, the director of the Redmond research lab. The breadth of the research spectrum is by design, he adds. "We hedge our bets across many different areas of research."
Microsoft Research has little hierarchy, with two broad classes within the ranks of Ph.D.-degreed employees: researchers and senior researchers. A third category, research software development engineers, doesn't require Ph.D.s, although many have them. Their job is to support researchers by translating ideas into code and workable software prototypes, as well as contributing to the research itself. Research groups tend to be small, averaging 10-15 in size.
Researchers vary considerably in background, although naturally, most come from computer science or electrical engineering. Most, but not all: other MSR disciplines include psychology, sociology, mathematics, and physics. "We do look for a background in software … but if a person is very strong in their area and has a ton of good ideas and can translate that into software, that's good enough," says Malvar. "We look for people with lots of initiative, who come up with ideas and want to push them forward."
Like academia, only different
The atmosphere is informal, with researchers designating their own work hours. "But as soon as some conference deadline comes up, you see us working like maniacs to finish … papers, just like we did when we were in school," Malvar says. The dress code is equally informal. "I'm a director and you won't see me in jacket and tie."
Informality also extends to the genesis of new research projects. MSR takes a bottom-up approach, with most of the ideas coming from the ranks. Any researcher can approach the directors with an idea, and if it's deemed interesting enough, he or she becomes the manager of a new group. Most new projects bud off from existing groups that have grown large. Seniority is not a factor in such decisions; ideas are judged solely by their merit, Malvar says. "It's kind of a motivator for younger folks … they don't have to wait for X number of years before they can propose something."
Once established, the research group almost immediately gets in contact with product teams whose work the research might affect; MSR has contributed to most existing company products. MSR looks 5-10 years down the line and works to develop technologies that will shape future user experiences, and it has the freedom to choose its projects because its funding is not tied to any particular product line. Nevertheless, "we talk to product teams to try to understand what they're looking for … we take their needs into consideration to try to do things they'll be able to use," Malvar says.
In fact, the contact between MSR researchers and product teams goes beyond conversational: MSR researchers also participate in product development, from acting as consultants in designing the product's architecture to writing code. Some move from research into the product team. Such moves can be temporary or permanent, and the flow can go both ways, with product developers doing stints in research.
"The best examples are when the product team gets engaged early in the [research] process. They get excited about working with us and then put their main architects to work with our researchers. [The architects] get to be co-authors on papers and patents," says Malvar.
Open door, insert foot
So, how do you get in? One way is to take advantage of Microsoft's ties to academic research. To keep developing state-of-the-art technology, the company maintains contact with the academic community by going to conferences, editing journals, talking to professors, and asking them to send their best students the company's way. That means there is plenty of opportunity to meet Microsoft researchers and get a feel for the organization.
After that, the logical step is to consider MSR's internship and postdoc programs. The Redmond lab alone typically has 200 summer interns, mostly filled by graduate students. The Redmond lab also has 5-10 postdocs in any given year. MSR's other labs also offer internship and postdoc opportunities. Interns and postdocs work under the guidance of a researcher or senior researcher but have freedom to propose new projects and work on novel ideas. Those positions are an excellent way to learn about the organization, and Microsoft has hired interns and postdocs to permanent positions, Malvar says.
Opportunities at MSR are not limited to employment. Microsoft also supports academic research through fellowships that last 2 years and provides tuition, a stipend, funding to attend one conference per year, and a laptop. Fellows are automatically offered an internship, although there's no obligation to accept. MSR also supports early-career faculty with the New Faculty Fellowship program, which provides $200,000 funding over two years. The money comes with no strings attached and the university keeps rights to any intellectual property that results from the support. So whether you aspire to a computer-science career in industry or academia, Microsoft Research should probably be on your radar.
Jim Kling writes from the Seattle area.