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.
News!
I am recruiting PhD students interested in distributed programming! Particularly at the intersection of machine learning, programming models/languages, and distributed systems. If that sounds like you, don't hesitate to reach out!

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
Method overloading the circuit
C. Meiklejohn, L. Stark, C. Celozzi, M. Ranney, H. Miller
ACM Symposium on Cloud Computing
PDF
SoCC 2022
Service-level Fault Injection Testing
C. Meiklejohn, A. Estrada, Y. Song, H. Miller, R. Padhye
ACM Symposium on Cloud Computing
PDF
SoCC 2021
Heard it Through the Gitvine: An Empirical Study of Tool Diffusion Across the npm Ecosystem
H. Lamba, A. Trockman, D. Armanios, C. Kästner, H. Miller, B. Vasilescu
ACM Symposium on the Foundations of Software Engineering
FSE 2020
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), Barcelona (2017), Amsterdam (2018), and London (2019).

Service
General and/or Program Chair
ICSE SEIP
Software Engineering in Practice
2022
Curry On 2015, 2016, 2017, 2018, 2019
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, 2019
External Review Committee Member: PLDI 2018, ECOOP 2016, ECOOP 2013, Scala 2013
Program Committee Member
ICSE
International Conference on Software Engineering
2021
POPL
Symposium on Principles of Programming Languages
2019
ICFP
International Conference on Functional Programming
2018
OOPSLA
Object-Oriented Programming, Systems, Languages & Applications
2017, 2019
ECOOP
European Conference on Object-Oriented Programming
2019
SPLASH Onward!
International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
2018, 2019
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
15-440 Distributed Systems Fall 2022
17-400 Data Science and Machine Learning at Scale Spring 2021
17-400 Data Science and Machine Learning at Scale Fall 2020
15-440 Distributed Systems Fall 2020
10-405 Machine Learning for Large Datasets Spring 2020
17-356 Software Engineering for Startups Spring 2020
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
Christopher Meiklejohn, PhD Student
Matthew Weidner, PhD Student
Huairui Qui, MS Student
Ria Pradeep, Undergrad
Luke Dramko, Undergraduate/REU Student

Collaborators at Large
Philipp Haller, KTH Royal Institute of Technology
Peter Alvaro, University of California, Santa Cruz