Interview with Matt Might

This post presents an interview I did on March 10th, 2015, with Matt Might, a PL researcher who is an Associate Professor in the School of Computing at the University of Utah.

Matt Might headshot

Matt Might

Matt has made strong scientific contributions to the field of programming languages, and he has done much more. He maintains an incredibly popular blog on wide-ranging topics (13 million pageviews since 2009 on topics from abstract interpretation to how to lose weight to how to be more productive). He has also become deeply committed to supporting people with rare diseases, including his own son, Bertrand, who was the first person diagnosed with NGLY1 deficiency. His work on rare disease propelled him to the White House: He met the President on January 31st, 2015, and he took a position in the Executive Office of the President to accelerate the implementation of the Precision Medicine Initiative on March 21st.

We had an engaging conversation covering all of these topics. It is too long for one post, so this post is the first of two.

Can you tell us about your academic background?

Georgia Tech! (Laughs.) I spent eight years there: two and a half years to get my Bachelor’s degree (in 2001), one and a half years to get my Master’s (in 2003), and four years to get my PhD (in 2007). During my freshman semester I really took to computer science, and thought then that I might get a PhD. Later, while I was getting my Master’s, I was approached by Olin Shivers, a professor at Georgia Tech (now at Northeastern) who had been my compilers instructor, and he suggested the idea specifically. I was convinced and stayed on to work with him.

When did you know you wanted to be a professor?

I did not imagine I would become a professor until the last year of my PhD—I had always thought I would go to industry. I had a job offer from the CIA that I turned down to go to grad school, and I had a startup at the end of grad school (which was building a C program analyzer) that I let go to become a professor. My last year of grad school was really exciting and pushed me toward academia. Plus, my wife became pregnant during that last year with our son Bertrand. As a father-to-be, I was well aware that most startups fail but most professors get tenure!

How did you get interested in programming languages?

My first semester as an undergrad I took a class called languages and translation. We built a couple of compiler-like things, and I really enjoyed that. I later came to be interested in static analysis. I wanted to analyze programs in dynamic, higher-order languages (like Scheme) so as to automatically optimize their performance. Since then a lot of my focus has been on applying static analysis for the purpose of ridding programs of bugs and vulnerabilities. My startup was a first move in that direction, and good funding has kept me doing it. But I still maintain the dream of making dynamic languages really fast.

Do you have a favorite paper you’d recommend others to read?

That’s easy: Abstracting Abstract Machines (AAM), co-authored with David Van Horn. AAM is a systematic way of deriving a static analysis (in a style called abstract interpretation) from a programming language’s mathematical specification. There are actually three versions of our paper—the original ICFP version, a shorter version published as a CACM research highlight, and a longer version published in JFP. My favorite is the JFP version (which no one reads!). We wrote it with grad students in mind. In particular, we transliterated all of the formalisms into Haskell code and put that side-by-side with the math. The hope is to help students build the understanding to start using the ideas. 1

How did you get involved with rare disease diagnosis?

My oldest son, Bertrand, was born after I defended. When Bertrand was about three months old and I was interviewing for jobs, it started to become clear that not all was well. After I’d started at Utah, some test results came back saying that Bertrand had something very wrong with him. He was in a struggle for his life.

As it turns out, Bertrand had a very rare disease, one that had not been identified, and thus had no possibility of being diagnosed. I began to dive into medical research. The more I read, the more I realized that the source of his problems was probably genetic. I talked to some biology profs at Utah about getting my family’s genomes sequenced, but it cost way too much at that time—about $50,000 per person! Fortunately, a new process called exome sequencing became available soon afterward at two orders of magntiude reduction in cost. The exome covers about 1% of the genome, but the one (the protein parts) where problems can often be found. The exome analysis uncovered Bertrand’s underlying problem (the previously unknown disorder we now call NGLY1 deficiency) and it pointed the way to a series of treatments.

So ever since Bertrand was small (he’s 8 now) I’ve had a split existence, pushing along the state of the art in both understanding rare genetic disease and in understanding programming languages. It was like having to get tenure twice! But having a special-needs child changes your priorities. After Bertrand’s diagnosis in 2012, I wrote a blog post about it.

The diagnostic odyssey also made me think a lot about science, and in particular what it means to get a PhD. So while we were still searching for a diagnosis, I wrote “The Illustrated Guide to Getting a PhD.” This was an early fusion of my two worlds. When you get a PhD it feels like a huge thing, but compared to all that we know, it’s just a tiny contribution. One dent at a time. We were just a few dents of knowledge away from diagnosing Bertrand. We are seeing the dents to save his life take shape now.

How did being a PL researcher affect your approach to understanding medicine and biology?

Approaching medicine from the point of PL gives you a powerful mindset. I think of a cell as a computational device. It’s a weird model of computation, but is one nonetheless. One PLish part is cellular metabolism, which is (in large part) about turning one thing into another. Reactions are transformations. In fact, you can model them using a language called Kappa (which translates to the pi calculus). When you write in it, it feels like you are writing Scheme macros. Reagents on the left-hand-side, and what you want them to become is on the right-hand-side. This is like graph (not term) rewriting. So, PL formalisms can be used to describe the reactions, which can provide insight into the functioning (and malfunctioning) of cells. I should say, though, that this way of looking at things is more recent for me; for a long time it was just bioinformatics.

You’ve been on sabbatical at Harvard medical school, and now you are heading to the White House. How did these things come about?

After Bertrand’s diagnosis, I used my blog (which was already quite popular) and social media to seek out other people who might have Bertrand’s condition, so as to form a community. It worked. In 2014 our family’s story was published in the New Yorker.

At the same time, President Obama was working on an initiative in support of precision medicine, and this article and the original captured the ideas of precision medicine in a very real way. The President and I met for the first time in January 31st, 2015, and since then I’ve been helping with the effort on a volunteer basis. This new job, which starts March 21, is half-time, so that I can continue the hunt for a cure, and it will last for a year.

The goal of the President’s Precision Medicine Initiative is to lay down a scientific foundation for precision medicine; another way of understanding this term is “data driven medicine.” The goal is to develop the capability to map a patient to a disease and then to a drug. That’s the grand vision.

A key enabler is the genome. There are other things too, like the transcriptome, but the genome is the big one. In the first phase, the goal is to recruit one million Americans to donate health and genetic data on a continuing basis and use it as a genetic telescope. Scientists will study it and figure out how mutations might affect people who have them. Mutations are common, and most are benign. But some will not be. And now we’ll have a database to crowdsource it. We can zoom in on end-effects of these mutations. Once we’ve got this, we can figure out how to treat these problems. It’s really exciting.

This is the end of part 1 of the interview. My next post will conclude the interview, covering topics such as blogging, productivity, social media, and privacy.


  1. David Van Horn also recently put together a hands-on tutorial on abstracting machines using PLT Redex.

1 Comment

Filed under Abstract interpretation, Bioinformatics, Dynamic languages, Interviews, Program Analysis, Science, Scientists

One Response to Interview with Matt Might

  1. Pingback: Interview with Matt Might, Part 2 - The PL Enthusiast

Leave a Reply