Research you can (really) use with Dr. Lenin Ravindranath Sivalingam

已发布

Researcher Dr. Lenin Ravindranath Sivalingam. Photo courtesy of Maryatt Photography.

Episode 35, August 1, 2018

Dr. Lenin Ravindranath Sivalingam is a researcher by trade, but by nature, he’s an entrepreneur, and a hacker with a heart of gold. It’s this combination of skill and passion that informs his work at Microsoft Research, driving him to discover and build tools that will make life both easier for developers and better for end-users.

Today, Dr. Ravindranath Sivalingam tells us why he is so passionate about what he does, explains how internships can literally change your life, and shares the story of how a hackathon idea turned into a prize-winning project… and then became the backbone of a powerhouse tool for gamers and their fans.

To learn more about Dr. Ravindranath Sivalingam, and how Microsoft researchers are working to make life more easier and more robust for everyone, visit Microsoft.com/research.

Related:


Episode transcript

Lenin Ravindranath Sivalingam: So, I tell people the freedom that MSR has, which is you can come here and be whatever you want. If you want to be a developer, just like building a product, yes, you can be that. If you want to be an entrepreneur, literally running startup, like, thinking about the business value of things, you can be that. And if you want to be an academic person, absolutely, you can be that as well. Here’s a place that you could come to and choose what you want to be. And you can keep switching what you are, as you progress your career here. Isn’t that amazing?

Host: You’re listening to the Microsoft Research Podcast, a show that brings you closer to the cutting-edge of technology research and the scientists behind it. I’m your host, Gretchen Huizinga.

Dr. Lenin Ravindranath Sivalingam is a researcher by trade, but by nature, he’s an entrepreneur, and a hacker with a heart of gold. It’s this combination of skill and passion that informs his work at Microsoft Research, driving him to discover and build tools that will make life both easier for developers and better for end-users.

Today, Dr. Sivalingam tells us why he is so passionate about what he does, explains how internships can literally change your life, and shares the story of how a hackathon idea turned into a prize-winning project… and then became the backbone of a powerhouse tool for gamers and their fans. That and much more on this episode of the Microsoft Research Podcast.

(music plays)

Host: Lenin Ravindranath Sivalingam, welcome to the podcast.

Lenin Ravindranath Sivalingam: Thanks. Thanks for inviting me.

Host: You’re a researcher in systems and networking at MSR. What gets you up in the morning? What are the big questions you’re trying to answer and the big problems you’re trying to solve?

Lenin Ravindranath Sivalingam: I’m a researcher in the systems and networking here and my research focus actually spans across the stack if you think about any systems; even from mobile to cloud applications. I think a lot about the developers who develop these applications, you know? How do you make their life really easy? What is, kind of, the hard challenges that they face? So, if you kind of look at a developer lifecycle—they have to build the application, they have to test the application, they have to deploy it, and your job is not done yet. You have to monitor it and iterate on it. So, how do you make each stage of the pipeline really easy for developers? Very specific challenges that you have to tackle.

Host: One thing I noticed when we talked before is that you’re incredibly passionate about the work you do. What makes you so passionate about the systems and networking research and why is it important to you?

Lenin Ravindranath Sivalingam: I think, at heart, I’m like a hacker. So, that’s how I was brought up. So, I was like a programmer and a developer at heart. So, a lot of the problems I try to solve in my research are very close to my heart. The kind of challenges that I face when I’m trying to build a big system, I’m trying to solve a consumer problem. I’m a developer. I want to spend like three months building this, right? The kind of challenges I face, I bring that back into my research so the next developer who comes in and who wants to build similar things, I want to make their life really, really easy. So, I think that’s where the passion comes from, because the problems are so close to the heart.

Host: So, you mentioned your focus is on two main areas of research interest. And your primary interest is developer productivity tools. Let’s talk about your work for developers. Tell us how and why you got interested in that line of research and what you want to accomplish.

Lenin Ravindranath Sivalingam: Absolutely. I think, last ten years, even through my grad school, every one of my projects kind of focused on, you know, a developer-centric perspective of things. How do you make it easy for developers to do a certain task? In grad school, I focused a lot on, you know, mobile developers. That was a time Android was coming up, iPhone was coming up, mobile developers were coming up. There were lots of new challenges we could actually go and solve. I think after I came to Microsoft, I shifted my focus towards the cloud. How do people build cloud scale applications, right? So, what are the challenges in building those applications? Today if you want to build a cloud application, it has many different components, OK? Even a very simple application. You want to build a notetaking application that you store something in the database and show it to people later. You have to build a front end, you have to build some sort of storage, and if you want to authenticate the users, you contact some authentication provider. So, lots of components off the bat, that you have to start. Even for a very simple application. Of course, cloud applications are typically built in a way that they are very highly concurrent. So, building cloud scale applications is challenging, and worse, the place where these applications run, which is your datacenters, are kind of fault-prone. Your network would be slow, your VMs could reboot, the external provider that you are contacting is not available, so you have to account for them. Today, it’s very hard for developers, to be very frank. So, I kind of go after those problems. I take like a specific instance of a problem. I built an application. I’m going to put it in the cloud. I’m not sure where it’s going to break, right? So, how do you enable them? Give them the insight, during their testing process, that these bad things can happen? So that you can address it up front before putting it out. Because after you put it out, you have, like, not many chances, ok? If a person comes to your application and it’s not available for the next two hours, you’re going to drive them away. So, you have be very careful in addressing these bugs before putting it in production.

Host: You talk about the four stages of the development lifecycle: write, test, deploy, monitor. Talk in general about the spectrum of research, if you can, that’s going on to make it easier for developers to tackle that, at various stages of the cycle, particularly as it relates to the cloud now.

Lenin Ravindranath Sivalingam: I’m pretty sure, you know, if you ask different people, there are different number of stages. So, from my perspective, based on a lot of developers I’ve talked to, and me being a developer, I categorize them, at a high level, to four stages. You have an idea and you build the application. That’s kind of the first stage. Once you build it, you do some form of testing to make sure that you don’t break it. And of course, the third stage is, it’s running in your desktop, so, I call that kind of the deployment stage. And we will talk about the challenges there. And finally, of course, you deployed your application. As I said, your job is not done. You have to monitor it, how it’s doing, right? With respect to your customers, in terms of performance, is it handling failures and all of that. So those are kind of the four stages. And I’ll maybe drill a little bit deeper into each of these stages.

Host: Would you? That would be great.

Lenin Ravindranath Sivalingam: Yeah, absolutely, and talk about kind of the high-level problems. So, in the building part of the stage, of course I think the trend where it is going right now is you want to make it extremely easy for developers to build their applications once they come up with an idea. I want to put three-four libraries together. I want to mix and match in a certain way, and have my application ready, in a couple of days, right? So that’s the trend with which even Microsoft is going. Lots of other companies are kind of going, right? So, you provide these really high-level libraries that can tackle everything for you so that all that you need to come up with is like an idea. And in that area, I’ve worked quite a bit, of course. There, how the research area looks like is, you take a particular domain that you know this is a very storage-centric application that the performance of storage should be, you know, really, really fast and reliable and all of that. So how do you abstract that to the developer? How do you provide tools to the developers so that they don’t have to worry about these things? Even if it’s extremely storage-centric, they don’t have to worry about performance, reliability and cost is, of course, a big issue today when you want to deploy something in the cloud, right? So, there are specific domains that we have taken. We’ve talk about video analytics too, right?

Host: Yeah.

Lenin Ravindranath Sivalingam: If you want to build an application that does video analysis to take the developer-centric perspective, how do I mix and match a few DNNs from here and there and put them together and run them efficiently and there I have an application for a domain? So that’s kind of the “build” part of the stage. That you want to kind of build tools that abstracts to the highest level possible. And then of course comes the test part of the stage, which is absolutely my favorite part of the stage, because a lot of developers just ignore it. I talk to so many developers and testing is the last thing that they want to think about.

Host: Why, why do you think that is?

Lenin Ravindranath Sivalingam: It’s kind of a very non-gratifying process, I guess. The creativity process is what is gratifying. You thought about something and you created something is very gratifying, right? Testing is sort of something that you have to do so that you retain your customers. And that makes it, you know, a very low-hanging fruit for doing research. You know the developer mentality that they don’t want to spend a lot of effort in testing systems. So, how do you make things as automatic as possible? You take an application, you press three buttons, seven hours later, it says you have all these kinds of bugs. That is the vision with which I tackle the testing research area. And we’ll talk about some specific projects in there which is one of my favorite recent projects which is getting like widely deployed in Microsoft. So, that’s kind of the testing stage, and of course there is this big deploying stage, when it comes to actually cloud scale applications. Not necessarily actually a big stage in mobile application or other domains. So, the deployment stage is kind of very crucial in cloud scale applications because you have a lot of choice, ok? So, when I actually go to Azure, it gives me, you know, three hundred different VMs that I can deploy. If I make a mistake, I play probably 10x more cost than I should have paid, right? So, that’s a really hard process for developers. They either under-spend, and actually hit some limits in terms of scalability, or people over-provision today. So how do you make them, optimally, you know, both spend their resources and cost? It’s a very crucial problem which I’ve looked at in the past. And finally, monitoring the applications, right? Monitoring is not very different from testing, by the way. The big problem there is you have to, kind of, scalability monitor an application, and when you find a bug, what kind of feedback do you give the developer so that they can fix it very quickly? If I just monitor and say, yeah, this customer came in and the request failed it’s not enough. So, the rich area that is you know, root-causing the problems. I’m monitoring an application, it failed, but give a feedback to developer that’ll give him very actionable fixes. And that’s something I focused on as well both in grad school and at Microsoft Research.

Host: Alright, so let’s drill in on your favorite part of the cycle right now which is testing. Talk about the specific projects you have going on there. I know this topic is near and dear to the developer’s heart.

Lenin Ravindranath Sivalingam: Absolutely. Especially I think—I’ll just focus on the cloud application testing part of it. So, I want to kind of reiterate the problems, which is you know I want to simply say modern cloud applications are just complex. As I said, they’re built in a very distributed way. The runtime, the way information flows, is very asynchronous. Because you want to handle a lot of requests at the same time. So, you have to be careful how you process the information. If you don’t process them in a consistent way, it kind of leads to these really hard-to-find bugs. The class of bugs that we call concurrency bugs, ok? These are really hard to find, and, in fact, when we go through and talk to some teams who have faced these problems, you know the way they solve these problems? They think, ok, they hit a concurrency bug. But the problem is they take hours and hours finding all the combinations of code that could have actually occurred.

Host: All the permutations.

Lenin Ravindranath Sivalingam: All the permutations and combinations that could have come to hit the concurrency bug, right? So that’s really hard for developers. So, my focus has been how do you go after these hard-to-find bugs and find them before they’re deployed to production? Because after you hit it it’s very hard to find. And if you hit it these are kind of the RAD bugs that bring your system down. So, I also want to point out another hard-to-find bug which is when you deploy to the cloud, as I said, this is a very fault prone environment. When you’re actually testing your program in your computer, none of this is a problem. It’s a single mission. You test all of it. Everything works. You move to the cloud, suddenly your service is not available. That’s it. Your application is not working anymore for the customers, right? So that’s another hard-to-find bug that you want to predict before it happens. So, these are kind of—sometimes the combination of both, ok? So, we actually built a system that can find these hard-to-find bugs before a system is deployed to production. And, before going into the system, I also want to talk about how people do that today. You tell a team, yeah, your system is highly concurrent. You can hit concurrency bugs. How do you find it today? There are two extremes. On one extreme, that people don’t put any extra effort, is, I will put my system in a staging deployment, run a lot of stress tests for one week, and I’m going to pray and hope that I will get some concurrency bugs there, right? Some teams also kind of like re-route their part of user’s traffic to the staging deployment so that they’ll find something. The coverage is of course very low but in in terms of developer effort nothing, right? I’m just running it for a week and checking what is going on. So that’s one extreme. On the other extreme—actually, there are very sophisticated tools like TLA+, which also actually came out of Microsoft Research, where you model your system, you express it in a different language, and the language can reason about these two categories of bugs. So, both these concurrency bugs and fault-tolerance bugs. The problem there is, this is additional, it’s like significantly additional effort for the developer, right? Which is, you have to separately maintain this modeling language. As you update your code, you have to update the model. So, there are two extremes. Now, let’s see where our project kind of fits. So, this specific instance of the project actually achieves the best of both worlds. Which is, we make it similarly zero effort for the developer. Just run your existing tests. Stress tests. Put it in a staging deployment on all of it. But we take these sophisticated algorithms that the systematic testing tools like TLA+ have, and apply it on that environment, ok? So, it’s kind of the best of both worlds. All we say is, don’t change your behavior. All that you are doing is some form of testing, do it. But do it with our tool. And suddenly our tool kind of amplifies your test to explore all these paths to find what would happen in production.

Host: So, is this still in research or is this…?

Lenin Ravindranath Sivalingam: No, it is actually it’s getting widely deployed in Microsoft and we have achieved quite a bit of success in actually finding—I won’t say how many bugs, but like we have found tons of bugs. I mean like critical bugs that could have happened in production.

(music plays)

Host: There are some amazing research projects going on in live video stream analysis. Tell us about your research in this area and what technical challenges are you addressing? What methods are you using to solve them and what results are you seeing?

Lenin Ravindranath Sivalingam: I have like a simple story why I got into it, right? I’ve been a very developer-focused person. Why did I get into kind of live video stream analysis, right? Two reasons. I think for the last fifteen years, analyzing video has fascinated me, you know? Since the time we got a webcam at home, and I actually figured out that you can program that webcam to read pixels out of all the images that are coming in, I’ve been building like all sorts of small applications as like side projects. One of it is you know we got a birdfeeder at home. And then I set up basically a camera, and write a program to say, “Does a squirrel ever come to the birdfeeder?” Right? So, this has been kind of a very fascinating thing for me, since I was very young. So that’s one reason. I have always continued keeping this live video analysis as one of my side projects. The number two thing is, over the last two to three years, computer vision has become mainstream, and in fact, our research community and our team started embracing it because we are systems people, and of course these are kind of large scale systems that consume a lot of resources. So, we started taking that route. But I got into it, again, because of the developer perspective that I had, which is you know, how do I make it extremely easy for developers to build cloud scale computer vision applications? How do you mix and match these things in a certain way so that you can adapt it to your domain? So that’s how I got into it. Again, from a very developer centric point of view. But it has taken its own form and it’s like we are running with it.

Host: So, let’s talk about the—one of the best applications of that technology: HypeZone. This is a big thing. And most of our listeners – if they’re gamers – will know all about it already. But what’s cool about it? What’s different about it?

Lenin Ravindranath Sivalingam: Again, a little bit of a story how we created the HypeZone. I was going into this developer centric view of, you know, how do you make it extremely easy for developers to build computer vision application, and we actually took an instance of it. And we participated in the Microsoft one-week Hackathon. There were like 18,000 participants and like 4,000 projects. So, we had an instance of it, which tackled kind of a specific application. And we actually won the grand prize. In fact, we pitched this back to Satya. So, that is where, actually, a lot of focus on live video stream analysis for consumers started. So, something like HypeZone is a gaming area which is a lot to consumers. So, once we won the hackathon, of course there was lots of teams in Microsoft who came back to us and said you know, wow, you have a cool technology. You should apply it to what we have and see if we can create some real unique experiences. So, HypeZone is actually a set of channels on Mixer. For people who don’t know what Mixer is, Mixer is a game streaming platform where people actually stream their gameplay to the entire world. So that’s what Mixer is. What is HypeZone? HypeZone is actually a set of channels in Mixer that continuously shows you, down to the wire, interesting games that are going on in Mixer. Like in all the thousands of streams that are in Mixer, what’s the most interesting game that is going on right now? So, let’s take an example game, Fortnite, which is kind of a cultural phenomenon right now. Everybody knows it. Either you are playing it or your kid is playing it. So, you take a game like Fortnite. A single game takes like 30 to 45 minutes for people to finish. It’s typically kind of the end game that is like super interesting. So how do you analyze all live video streams that are coming into Mixer, finding who’s playing that really intense end-game, and showcase it in a very dedicated channel? This is like the NFL Red Zone of Fortnite, right? And you keep showing it. And this has been like hugely successful, right? People see like, interesting content all the time. It’s not just about the viewers, by the way. The streamers get so excited getting highlighted on the HypeZone. Because if you look like at a platform like Mixer, you have certain celebrities that people follow, and typically, these up-and-coming streamers are not very visible. What the HypeZone did was, if you’re a good gamer, you’ll get featured to, you know, thousands of people who will watch you. So, streamers get super excited when they get featured on the HypeZone. So, this worked out as a win-win for us. Consumers were so happy because it was interesting content. Streamers are so happy because you know, they get featured on it.

Host: So, let’s drill in on the technology behind it a little bit, because you talk about the Hackathon and, and what, and what goes on there is like you say for, for people who love to solve problems and hack stuff. It’s awesome. What kinds of things can we talk about that you could share with our listeners about the technology that is underlying this live video stream analysis?

Lenin Ravindranath Sivalingam: I mean off the bat as soon as I said, you know, you have thousands of streams coming on Mixer. You have to literally understand every one of them to pick out the super interesting nuggets. Think about the scale, right? It’s such a huge scale. Think about the cost that you have to spend, to go do these applications, right?

Host: Insane, insane.

Lenin Ravindranath Sivalingam: It’s insane, and of course the business has to work out. So, the biggest challenge is, basically, how do you scale these things, from, literally, at every level of the stack? Let me start with something like DNNs, right? So, as I told you, this is all computer vision. You read pixels off the screen. You run some sort of DNN on top of them to find whether the game is interesting or not.

Host: And by that is deep neural network?

Lenin Ravindranath Sivalingam: Deep neural networks. And of course, people know, I think most listeners know here, that you know they are computationally intensive operations that we have to run. So how do you make it extremely efficient so that you can run them parallel on, you know, tens of thousands of streams with as little resources as possible? And that’s been kind of the biggest challenge that we faced since the Hackathon. The Hackathon was itself an idea, right? Oh, here are thirty streams, you know? Here are some cool stuff that you can do. But when you go into the real world, you start facing these systems problems. So, starting from DNN to, you know, how do you efficiently, kind of… you’re taking about, you know, a few missions consuming tens of thousands of streams from the Internet which is massive, right? So, you have like thousands of viewers on a same location. So how do you do that efficiently? So, lots and lots of systems works that have gone into just making sure this thing runs. And of course, we have other challenges too.

(music plays)

Host: Lenin, you followed a very unique path to Microsoft Research. Tell us the story, and it’s a good one, of how you started as an undergrad in India and ended up as a PhD at Microsoft Research.

Lenin Ravindranath Sivalingam: Absolutely yeah. I do think it’s kind of a unique story. I attend a lot of events where you know, I get to inspire people to come to Microsoft Research and I tell different parts of the story to different people because you know, it’s kind of inspiring to them. So, I joined Microsoft as a researcher in 2014. So, it’s going to be four years. But I’ve known Microsoft Research for more than a decade. So, my path to Microsoft Research was unique in a way that, you know, I was one of the very initial undergraduate interns at Microsoft Research in Redmond while I was doing undergraduate in India. So, Microsoft Research has like a pretty awesome undergraduate program, by the way. So, it’s not just grad school researchers that we get as interns. We also go after undergrads. Because that’s kind of the right time to inspire people to, you know, pose to you a research career. Because most of them, at least the school I went to, my path would have been, you know, join a software company and grow that way. Coming to Microsoft Research completely changed that thinking process for me. So, I was one of the eight undergraduates, in 2005, to be selected by Microsoft Research Redmond through their India Intern Program to come and intern here. I still work for the same group, by the way, with the same set of people. So, it’s been like a very long relationship for me. So, I wasn’t ready to go to grad school. And after finishing my undergraduate internship here, the last day I remember my manager talking to me, you know, about what grad school is, actually. I didn’t know about it. Like three awesome schools that you could go to, you know? It might be Stanford, Berkeley, I didn’t know about anything. So, I went back and I thought about it and I said you know, if I want to have the creative freedom that I enjoyed during my internship, it’ll be worthwhile for me to actually pursue grad school and a research career. The funny part is, as I went through grad school, right after finishing undergrad, just before starting grad school, after starting grad school, I did seven internships as a Microsoft Researcher.

Host: Seven??

Lenin Ravindranath Sivalingam: Seven! With the same team! I mean like, that’s why I said, it’s a very long relationship I have kept at Microsoft Research. And I’ve always wanted to come back here. I mean, lots of reasons for it. Especially, I think, this is actually the place in the industry which will give you that creative freedom to pursue your passion. My passion is you know, I want to be a hacker and I want to make more hackers, right? So, this is the place to be.

Host: Hacker disciples.

Lenin Ravindranath Sivalingam: Yeah.

Host: How do you do seven internships? I mean it’s like, you keep coming back and they say keep coming back? I mean…

Lenin Ravindranath Sivalingam: Yeah. That’s kind of a good question. So, especially like the four internships, three or four internships I did during my grad school like including a year-long internship I did here, it was very project-oriented, by the way. So, you actually work on a project for three months as an intern. Of course, you go back to grad school. Researchers here try to maintain relationship with the intern so that you, kind of, do it as a long-term project. But there is an aspect of a project that you would miss out if you don’t come back, which is, you know, productizing it, right? I want to see it through. So, I had the passion on every project that I did, which is hey, I had this cool idea. Yes, we did publish a paper, but I think this can create a real-world impact. And that’s what kept making me come back here, because I know I have to be here to see that through. So that’s how it happened. In fact, after a particular internship I stayed back actually for a year, and year and a half. In fact, changing my visa. And like, I went through a complicated process. But that passion kept me here. Which is like, you know, there is a path to real-world impact. And Microsoft Research is awesome that way, you know? Microsoft is an awesomely big company that’s doing so many different things. And when you do something that’s really cool, there’s always a way to make a real-world impact through certain channels.

Host: So, talk a little bit about why it’s a different here from say, where a researcher might end up in academia or even more, applied research at another company.

Lenin Ravindranath Sivalingam: Yeah, so I think the number one thing, in my opinion, that the reason why I encourage people to come to Microsoft Research, is actually the creative freedom. You can come here and be whatever you want with your creative thinking process. In fact, I have seen many distinct kinds of people here. People who are very academic-focused, you know? They come up with an awesome idea but they want to contribute back into the research community. So, they write papers and you know they’re very visible in academia. The other set of people I’ve seen is like entrepreneurs, literally, right? You come here, you have an idea. You say I want to run it as a startup. Of course, when you run it as a startup you don’t give away ideas to people, right? By publishing papers? And I have actually have operated in both modes. So, I tell people the freedom that MSR has, which is you can come here and be whatever you want. If you want to be a developer, just like building a product, yes, you can be that. If you want to be an entrepreneur, literally running startup, like, thinking about the business value of things, you can be that. And if you want to be an academic person, absolutely, you can be that as well. So, if you think about that, if you go to academia, of course you’ll be a very academic person. If you go to an applied place, to other companies, you’re probably involved in some product that you are building. If you go to a startup, that’s a different level of excitement. Here’s a place that you could come to, and choose what you want to be. And you can keep switching what you are, as you progress your career here. And isn’t that amazing?

Host: Lenin, as we finish up here, what advice would you give to the next generation of researchers? As… I mean, you’ve sort of given it already. I mean just the excitement with which you share your stores is infectious. But what would you say to people if they were you know, in your position, undergrad, grad, and thinking about what their next steps might be for a career?

Lenin Ravindranath Sivalingam: I mean there are a lot of problems in the world to solve. Like here’s the thing, right? We will never get saturated with respect to the problems that we need to solve. And I think if you’re undergrad and you’re kind of hearing this podcast, I would highly encourage you to, you know, think about what you can impact in this world, you know? What kind of real world problems you can go off and solve? And think about career opportunities that will get you there. Which is how do I go impact some real-world things? Of course, similar advice for a grad student. You’ve already taken that path, which is you know, I’m going to do research which is about looking long ahead in terms of where the world is going, picking some problems and solving those problems. My biggest advice to grad students, of course, is, yes, you came to a problem, you solved it in a certain way, don’t stop at just publishing it and moving on to the next problem. Take a problem, see it through. See it through its real-world impact. And that’s what gives you the enormous gratification that you will enjoy for your life.

(music plays)

Host: Lenin Ravindranath Sivalingam, thank you for coming in and talking to us today.

Lenin Ravindranath Sivalingam: Thank you.

To learn more about Dr. Sivalingam, and how Microsoft researchers are working to make life easier and more robust for everyone, visit Microsoft.com/research.

继续阅读

查看所有播客