I'm an Assistant Clinical Professor at Northeastern University,
and the Executive Director of the Scala Center at EPFL where I am also a permanent research scientist.
I'm going on the academic job market!
Here are my application materials: CV | Research Statement | Teaching Statement

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  

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!
Full Publication List
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!

General and/or Program Chair
Curry On 2015, 2016, 2017, 2018
Trends in Functional Programming in Education
Scala Symposium 2013, 2014, 2017
Programming Models & Languages for Distributed Computation
2016, 2017
Organizing Committee Member
Object-Oriented Programming, Systems, Languages & Applications
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
International Conference on Functional Programming
Object-Oriented Programming, Systems, Languages & Applications
SPLASH Onward!
International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
Symposium on Trends in Functional Programming
International Conference on Software Language Engineering
Scala Symposium
2016, 2018
Off the Beaten Track
Implementation of Functional Languages
Programming Language Evolution
Domain-Specific Language Design and Implementation
Symposium on Applied Computing
Northeastern University
CS4240 Large-Scale Parallel Data Processing Spring 2018
CS7680 Special Topics in Computer Systems: Programming Models for Distributed Computation Fall 2016
CS 206 Parallelism and Concurrency Spring 2016
CS 212 Reactive Programming and Parallelism Spring 2015
Big Data Analysis with Scala and Spark
I'm beyond fortunate to work with many folks at both EPFL and Northeastern who are far more talented than I:
EPFL Team (Scala Center)
Ólafur Páll Geirsson, Software Engineer
Jorge Vicente Cantero, Software Engineer
Guillaume Massé, Software Engineer
Julien Richard-Foy, Senior Software Engineer
Martin Duhem, Software Engineer
Darja Jovanovic, Community/Communication Manager
Sylvie Jankow, Administrative Assitant
Fabien Salvi, System Administrator
Northeastern Team
Kevin Clancy, PhD Student

Collaborators at Large
Christopher Meiklejohn, IST, Portugal and UCL, Belgium
Nat Dempkowski, HubSpot
James Larisch, Harvard University
Philipp Haller, KTH Royal Institute of Technology