the homepage of

Justin Lubin

Hello there! My name is Justin Lubin. I love computer science, mathematics, piano, and crochet. Most of all, I am passionate about research and education: not only trying to discover beautiful results, but also sharing what I learn with others.

I aspire to be a professor of computer science so that I will be able to combine two of my deepest passions, computer science theory and teaching. I hope that one day I will be able to pay off the debt of gratitude that I have to all the wonderful people who have taught me in my life by passing on the knowledge that they have imparted to me to the next generation.


My goal is twofold: to develop elegant theories and to make them usable by humans.

To that end, I am very interested in programming language theory and draw great inspiration from the study of human-computer interaction.

I currently work with Professor Ravi Chugh at the University of Chicago, and have been doing so for a few years. I also worked with Professor Jonathan Aldrich at Carnegie Mellon University during the summer of 2018. Many, many thanks to both of them for their extremely helpful guidance!



Sketch-n-Sketch @ UChicago

Sketch-n-Sketch is a bidirectional HTML and SVG editor. Users can write and evaluate programs to produce output, as usual, but they can also directly manipulate the output of a program to change the program itself. Two important goals of this project are (i) to provide an environment that makes it easier for users to develop complex and reusable content, and (ii) to develop theoretical machinery necessary for more general-purpose output-directed manipulation and bidirectional editing.


Deuce @ UChicago

Deuce is a structure-aware code editor equipped with direct manipulation capabilities for invoking automated program transformations. Deuce’s aim is to provide human-friendly structural interactions on top of familiar text-based editing.


Wyvern @ CMU

Wyvern is an object-oriented, capability-safe language focused on security, modularity, and language extensibility. Specifically, I have done work on Wyvern’s capability-based effect system by developing theory (and implementing it in the compiler) to make it more usable for programmers.


I won first place in the SPLASH 2018 Student Research Competition for Approximating Polymorphic Effects with Capabilities!
I am excited to present a poster for Approximating Polymorphic Effects with Capabilities at the Midwest Programming Languages Summit 2018.
I am honored to be accepted to Carnegie Mellon's Research Experiences for Undergraduates in Software Engineering (REUSE) program. Catch me in Pittsburgh this summer!





In my free time, I like to compose music. Here are some of the pieces that I've composed (and am still working on). All my pieces are composed in the wonderful and open-source music notation software Musescore.

Longer pieces

  • Lofty Stars (mp3 | pdf). Wind Quartet, December 2018.
  • Wind Quintet in C (mp3 | pdf). Wind Quintet, November 2018.
  • Reflections (mp3 | pdf). String Quartet, October 2018.
  • Dive (mp3 | pdf). Orchestra, August 2018.
  • Travels (mp3 | pdf). 8-Bit, August 2018.
  • Outset (mp3 | pdf). 8-Bit, June 2018.

Shorter pieces

  • Realizations (mp3 | pdf). 8-Bit, July 2018.
  • Lessons (mp3 | pdf). 8-Bit, August 2018.


  • Minuet and Trio in A (mp3 | pdf). Piano, May 2018.
  • Caged Bird (mp3 | pdf | annotated). Chorale, April 2018.