People of Language Design and Implementation

An interview project in conjunction with PLDI 2019  

Michael Carbin

Interview with Michael Carbin

Michael Carbin is an assistant professor at MIT.

 

BL:Tell me about life before academia

MC: Starting out, I had planned to really be a professional soccer player, coming into high school. I loved to play competitive soccer and I was trying to figure out how to make that leap. I grew up across the bay from Stanford and I always thought I would go there and play soccer. That's really where my heart was at the time. Then, coming into high school, I broke my leg. That took me out of commission coming into soccer. And I actually started to program around then.

BL:That was like 2000?

MC: No, I broke my leg in 1998. I'm older than that [laughs]. I always liked playing with computers, taking apart computers, and then, with this broken leg I thought to myself, maybe professional soccer isn't going to be the path forward. I remember buying some book, like "Small Business Networks for Dummies" and I thought I might go into IT. I started with that and at some point my brother stepped in and said something like "if you want to get into technology, you want to be a programmer. that's what you want to do, because that's where the cool stuff is." I started doing calculator programming. We programmed our algebra books into our TI-89 calculators.

BL:Were your parents in tech?

MC: My mom was a registered nurse and my dad had a PhD in chemistry. He became an industrial chemist and then realized that chemistry was not for him. He wanted to work for himself, so he went off and became a dentist. He went back to school and left chemistry to be a dentist. At that time, opportunities for African-Americans were not that great, not a lot of mobility, so he wanted to work for himself. That's also something he always told me: "You always want to work for yourself." Whether that meant to do research or be independent somehow, he always said to work for yourself.

BL:That is a solid piece of dad wisdom to have passed down.

MC: My brother also had two pieces of advice: "Never mess up your taxes and don't buy meat for less than a dollar".

BL:Also seemingly good advice. So you got into programming and then eventually you went on to college.

MC: Yes, I went to Stanford.

BL:You followed your dream, but not not to play soccer?

MC: I actually got injured again, a broken hand, in high school and quit playing soccer. By the time I made the Stanford decision, I was headed there and likely to study something in engineering. It was around this time that I got more into programming, helping my brother make his website. He was the author of a children's book, Artie the Astronaut, and he was also a real supporter for children's education. I learned to program by helping him set up the backend for his website. I got into programming, writing a lot of Perl

BL:Oh Perl! Everyone doing IT kind of stuff started with Perl

MC: Yea, Perl's really a wild ride... I went from soccer to computer science, but eventually I ended up at Stanford.

BL:When you were in college, were you aware that Stanford has some people that are pretty notable in our field? Or were you not tuned into that yet?

MC: When I got there, I knew I needed to work for myself. I perhaps thought about chemical engineering. I thought I'd do computer science, I might get into programming. And I got there and got into computer science and really enjoyed it. I really enjoyed the systems programming course there. It got me down to the level of C and it got me a bit hooked. It didn't really hit me that I wanted to do PL or compilers until I took Alex Aiken's compilers course. You see, writing a compiler is very therapeutic for me. I sit there every year when I teach my course at MIT. Going through the material it takes me back to that time. My girlfriend broke up with me the summer before that undergrad compilers class. I was a total disaster, didn't want to get out of bed. And this compilers class really distracted me. It took my mind off of everything. It was also just key to the way I think about the world. I really fell in love with compilers taking that class. So I took Alex's class and then Monica Lam's class. While I was a student in Monica's class, I asked Monica "I want to try to do some research" and she told me to take her PhD research seminar class.

BL:So you showed up and said "hey research sounds like something I've heard of, I'd like to try it" and it worked.

MC: Yes, and Monica was definitely one of my mentors. She left a strong impression on me, to go and do exactly what you want to do, regardless of what the community might be saying. In that class, I actually ended up reading Martin [Rinard]'s Failure Oblivious Computing paper and it really got me thinking. I thought, "this makes a system more reliable, but how can we make it more usable?" And when I got to MIT to go to graduate school that was what I ended up working on. A lot of students come into graduate school and search for a topic or end up switching topics; I got lucky. When I was doing my dissertation, I looked at what I was doing and said "wow, I did what I wanted to do!"

BL:Did you have a clear vision of what you wanted to do from the start?

MC: I came in barely knowing what types were. It's funny, I wrote my first static analysis paper with Martin. We were trying to identify if approximate computing transformations could interfere with other code; a non-interference analysis. And I was using this static analysis tool. And I gave this draft to Martin and he looked at it for two minutes. he said "Clearly, you need to learn how to write a paper". Especially when he looked at the formalism. I certainly didn't expect when I started that so much of my dissertation would be dedicated to program logics. I didn't realize that I would be doing so much to give meanings to programs and reason about their behavior. And that meant that I needed to learn about this whole field of program semantics and logics. I said "that's what I want to do" and it opened a Pandora's box of things that I needed to learn to do that.

BL:Are you more of a formalist? Or more practical?

MC: I am interested in principled boondoggles. I like to have a practical or semi-practical motivation. Take approximate computing: We can take programs and make them faster or more energy-efficient. We can do that, but it isn't immediately going to work. It isn't going to be happening in 2 or three years. What I like to take away from it is the meaning. What are the semantics? We can use that to then define the abstractions. That's a guiding principle to research for me. Use experience to build principled abstractions for a domain. I can say that now about approximate computing, after doing this for ...n years. I very much believe in this: put a system out there that mostly works, something that shows promise. You build it out, then you say *why* it works.

BL:You mentioned that you were at MSR for a few years. How was your experience at MSR compared to your experience since you've been at MIT?

MC: What I like about MIT is the passion and the intensity. People really care about the problems and they're out there, trying to solve them. You're surrounded by students and enthusiasm and that's the exciting part (and also sometimes the draining part) about being at MIT. I experienced some of that intensity while I was at MSR, especially during my interactions with them while I was an undergraduate and even in my first year of graduate school. When I was there a while later, after getting my PhD things seemed a little quiet for me and I felt like I was missing the energy and the enthusiasm of having students around that I was getting while I was at MIT.

BL:Then you moved to MIT, had a kid, and started a research group all in the same year. How has it been with all of that happening at the same time?

MC: It was definitely a wild time to be building up a research group. We've gotten to a critical mass now, with five or six students. In the beginning it was slow and it was tough, especially having a child and sleeping, at most, three or four hours per night.

BL:I'm curious about the impact that having a baby daughter has had on your career

MC: There are a few things. You have a kid and you realize that the world isn't entirely about you. And with that comes the realization that everything in the world isn't attached to your personal success as an individual. It's great to have this experience, but you realize that the reason you're here is for this kid. You just don't have to have the existential crisis of "why am I working on this?" If I find myself working on something now, it should be because I or my students actually want to work on it. Of course, there's the tenure process and you do some minor optimization for that, but it doesn't feel tactical and arbitrary like it sometimes may have felt. And the tradeoff with having a kid is that there is a year of your life where you don't get any sleep, so you can't think straight. Once in a while I can look back and see how much more sense I am making now than I was then; it is really like a sense of recovery.

BL:There's also a lot of travel working in academia. That must be a challenge, too.

MC: Yea, I basically refused to do any travel for about six months. It's really hard to just take off with a family. We don't have family support out here, so it was very hard for me to just leave. I'm much more careful about where I'm traveling and the amount of time. I have to think about the positives and the negatives of travel more carefully. I don't measure my time gone in days any more; it's drop-offs and day-care transitions, bed times. These are the units of missed effort, versus days.

BL:It sounds difficult to balance the responsibilities of parenting with the expectations of academia.

MC: I think that is an interesting thing about academia. The set of people that we see there, how the extenuating experiences people have really shape them and their careers. Having the freedom of having a family to support you when you make a decision to have a child, or having two parents to help buy a house, or having family responsibilities. It can substantially change the experience that you have that may then show up in, say, your publication record. It's unclear how tailored our process may be to include people that come from difficult or different or alternative circumstances. And when I organize something like PLMW this comes out. Any time I talk about my mother passing away during graduate school, it always ends up pulling someone out. They then see "Oh, hey, there is a way to survive", even though their life is not following the perceived path that apparently successful people follow.

BL:PLMW has been quite successful now.

MC: Yes and I've been participating since around 2016 and I was an organizer in 2017 and 2018. I am a strong believer in PLMW.

BL:It seems like a useful forum to understand how people in PL and computing fields are not just research cyborgs.

MC: It's true, you can really get the human side of people, especially understanding not just how to be successful, but also, the students love hearing failure stories. For a long time, the only interaction you have with people is through their research papers. And some students probably think "I can hardly read these papers, these people must be super-people!". Then, you see them in person and its totally different.

BL:Like learning the sad story of Mike Carbin's destiny to be a star soccer player. Thanks for taking the time to meet today.