Friends, I have some big news!
After defending my Ph.D. in 2014, I joined Intel Labs as a research scientist. While at Intel, I’ve gotten to work on some really cool stuff with great collaborators, but for a while now, I’ve been contemplating returning to academia, and last fall I decided to quietly start applying for a few faculty positions.
Mine was a relatively small-scale job search, and I didn’t tell too many people that this was what I was doing. I didn’t necessarily expect things to work out. But they did! I am absolutely thrilled to share that two weeks ago, I accepted an offer to join the Baskin School of Engineering at UC Santa Cruz as a tenure-track assistant professor of computer science. I officially start in July, and I’ll be teaching starting in the fall. I’ll be joining an amazing group of faculty, including Peter Alvaro, Faisal Nawab, Owen Arden, Lise Getoor, Cormac Flanagan, Carlos Maltzahn, and many more.
I’m excited to be a Banana Slug, and it seems like my daughter is pretty stoked, too.
My research story
When I was working on my application materials back last November, my friend Neel Krishnawami advised me to make up a narrative that would connect all the work that I had done, from LVars to ParallelAccelerator to neural network verification. At first, I despaired of ever being able to come up with a coherent story to connect the different things I’d done. But the more I thought about it, the more I realized that not only did I have a story, I actually believed in the story I was telling! As I wrote back in February:
If there’s one theme that ties together all the stuff I’ve been working on or studying in the last several years, it’s that a high-level representation of programmer intent (commutative operations on lattice elements in the case of LVars; aggregate array operations in the case of ParallelAccelerator; the ReLU predicate added to the theory of linear real arithmetic in the case of Reluplex1) enables optimizations or smart scheduling choices that would be difficult or impossible otherwise.
I structured my job talk around this theme: that choosing the right high-level abstractions to express a software system not only does not compromise high performance, but actually enables it.
The folk wisdom in computing is that in order to be efficient, things have to be low-level and “close to the metal”. But it turns out that choosing the right high-level domain-specific abstractions can actually be the key to unlocking efficiency, whether we’re talking about lazy SMT solving, or about high-performance DSLs. To me, this is one of the most beautiful ideas in computing.
I thought about adding some more details here about my plans for future research, but it would make this post way too long. So for now, I’ll just say: if you’re interested in doing a Ph.D. with me at UCSC to explore interesting ideas in the intersection of programming languages, distributed systems, and verification, you should get in touch!
One more thing
As anyone who’s ever read this blog already knows, I’m incapable of shutting up about !!Con, the conference of lightning talks about the joy, excitement, and surprise of computing that I co-founded with a group of friends in 2014. (Our fifth annual conference in New York just wrapped up today; videos will be available soon!) !!Con has been such a success that the demand for what we’re doing is much greater than we’re able to meet. This is a great problem to have, but it means that we’re constantly having to disappoint people. There’s only so much that our small team of volunteers can do.
The long-term solution to our inability to meet demand is for there to be a lot more conferences inspired by !!Con, in a lot more places, organized by a lot more people. A new generation of conference organizers will need to step up. But in fact, that’s already happening — EnthusiastiCon, Hello, Con!, and StarCon are three examples. It’s incredibly exciting to me to see all these conferences thrive.
Somehow, though, as supply has increased, demand hasn’t lessened. If anything, the demand for !!Con has only increased as more and more people experience the magic and fun of this conference format. This year, we got nearly 300 talk proposals, the most we’ve ever had. It’s clear that we need to expand, not only to better serve our existing audience, but also to better serve those who can’t easily travel to New York for the weekend — a group that includes me, especially now that I’m a parent.
How did this come about? As part of negotiating my offer from UCSC, I asked the department to provide financial and logistical support for bringing a version of !!Con to campus, and they enthusiastically agreed to do so. (In fact, my department chair and other future colleagues already knew about !!Con, because I’d written about it in my application materials.) As I see it, !!Con isn’t just a fun side project, but actually an integral part of my outreach mission as a scientist and educator, and I can’t tell you how much it means to me that UCSC is putting their money where their mouth is and supporting that mission!
Finally, we have two goals for !!Con West. First, of course, we want to put on another great conference in the !!Con tradition. Second, though, we want to incubate a new generation of conference organizers. By the time we’re done, every member of the !!Con West organizing team will have the skills and experience to go out and launch their own conferences, if they want to. If that sounds like something you want to do, fill out this form to apply to become a !!Con West organizer. Join us!
I want to point out that I can’t take any credit for the idea of extending the theory of linear real arithmetic with a ReLU predicate – that was all Guy Katz, with the assistance of the rest of the Reluplex team at Stanford. But when I meditated on why I liked the idea (and, more broadly, the idea of creating high-performance domain-specific solvers) so much, I realized that it fit right into the rest of the story that I was trying to tell. ↩