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
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). 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
ICFP
International Conference on Functional Programming
2018
OOPSLA
Object-Oriented Programming, Systems, Languages & Applications
2017
TFP
Symposium on Trends in Functional Programming
2016
SLE
International Conference on Software Language Engineering
2016
Scala
Scala Symposium
2016
OBT
Off the Beaten Track
2018
PLE
Programming Language Evolution
2015
DSLDI
Domain-Specific Language Design and Implementation
2015
SAC
Symposium on Applied Computing
2016
Teaching
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 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