I'm a tenure-track Assistant Professor at Carnegie Mellon University,
in the School of Computer Science, primarily affiliated with the Institute for Software Research.
Formerly...
I was the co-founder and Executive Director of the Scala Center at EPFL, where I was also a research scientist. I was also an Assistant Clinical Professor in the College of Computer and Information Science at Northeastern Univeristy.
Research

I'm interested in various flavors of distributed and concurrent computation, often from the perspective of programming languages:

  • data-centric,
  • data-intensive (big data),
  • eventually-consistent (edge computing)

A major recurring theme in my work is composability. I seek to enable the construction of complex distributed systems via the composition of well-understood components that are correct by construction.

Some of my projects include programming models and type systems to facilitate the design of new, functional distributed systems, such as distributable closures, flexible, extensible, and performant serialization, asynchronous and concurrent programming via futures and promises, and deterministic concurrent dataflow.

I work on and around the Scala programming language  

Publications
Recent Work
Simplicitly: Foundations and Applications of Implicit Function Types
M. Odersky, O. Blanvillain, F. Liu, A. Biboudis, H. Miller, and S. Stucki
ACM SIGPLAN Symposium on Principles of Programming Languages (POPL'18)
POPL 2018
A Programming Model and Foundation for Lineage-Based Distributed Computation
P. Haller, H. Miller and N. Müller
Journal of Functional Programming (to appear)
JFP 2018
Function Passing: A Model for Typed, Distributed Functional Programming
H. Miller, P. Haller, N. Müller, and J. Boullier
ACM SIGPLAN Systems, Programming, Languages and Applications: Software for Humanity (SPLASH'16), Onward!
SPLASH 2016
Full Publication List
Book
Distributed Programming
Heather Miller, Nat Dempkowski, James Larisch, Christopher Meiklejohn
A textbook about the building blocks we use to build distributed systems. These range from the small, RPC, futures, actors, to the large; systems built up of these components like MapReduce and Spark. We explore issues and concerns central to distributed systems like consistency, availability, and fault tolerance, from the lens of the programming models and frameworks that the programmer uses to build these systems.
Open Source

Most all of my work is realized in the context of open source Scala.

Member of the Scala team since 2011.

I've worked on: Futures and Promises, Spores, Pickling, the Scala standard library, documentation, and a compiler fix here or there.

I co-founded the Scala Center.

Our goal: Do The Right Thing for open source Scala and its community.

Academia ↔ Industry

I co-created the Curry On conference with Jan Vitek in 2015.

Our goal: Industry and academia should have a talk! Or rather, they just need to talk in general.

Curry On is held in a different European city year-to-year, and it will always be co-located with one of the top academic conferences in programming languages (ECOOP, PLDI so far). So far we've done it in Prague (2015), Rome (2016), and Barcelona (2017). Up next, Amsterdam!

Service
General and/or Program Chair
Curry On 2015, 2016, 2017, 2018
TFPIE
Trends in Functional Programming in Education
2018
Scala Symposium 2013, 2014, 2017
PMLDC
Programming Models & Languages for Distributed Computation
2016, 2017
Organizing Committee Member
OOPSLA
Object-Oriented Programming, Systems, Languages & Applications
2018
ECOOP
European Conference on Object-Oriented Programming
2015, 2016, 2017, 2018
External Review Committee Member: PLDI 2018, ECOOP 2016, ECOOP 2013, Scala 2013
Program Committee Member
POPL
Symposium on Principles of Programming Languages
2019
ICFP
International Conference on Functional Programming
2018
OOPSLA
Object-Oriented Programming, Systems, Languages & Applications
2017
ECOOP
European Conference on Object-Oriented Programming
2019
SPLASH Onward!
International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
2018
TFP
Symposium on Trends in Functional Programming
2016
SLE
International Conference on Software Language Engineering
2016
Scala
Scala Symposium
2016, 2018
OBT
Off the Beaten Track
2018
IFL
Implementation of Functional Languages
2018
PLE
Programming Language Evolution
2015
DSLDI
Domain-Specific Language Design and Implementation
2015
SAC
Symposium on Applied Computing
2016
Teaching
Carnegie Mellon University
17-356 Software Engineering for Startups Spring 2019
Northeastern University
CS4240 Large-Scale Parallel Data Processing Spring 2018
CS7680 Special Topics in Computer Systems: Programming Models for Distributed Computation Fall 2016
EPFL
CS 206 Parallelism and Concurrency Spring 2016
CS 212 Reactive Programming and Parallelism Spring 2015
MOOC
Big Data Analysis with Scala and Spark
I'm beyond fortunate to work with many folks at CMU and beyond who are far more talented than I:
CMU Team
Kevin Clancy, PhD Student
Christopher Meiklejohn, PhD Student
Zeeshan Lakhani, PhD Student

Collaborators at Large
Philipp Haller, KTH Royal Institute of Technology