the homepage of

Justin Lubin

Hello there! My name is Justin Lubin. I love computer science, mathematics, music, cooking, 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 can combine these two passions. 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—and adding something to it in the process.


My goal is twofold: to develop elegant theories and to make them usable by humans. To that end, I am interested in programming language theory and human-computer interaction.

In particular, I am interested in designing and leveraging type systems and language constructs to make programming languages, environments, and tools more accessible, intuitive, and powerful.

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 along with Professor Alex Potanin from the Victoria University of Wellington during the summer of 2018. Many thanks to these great people for their extremely helpful guidance!


Student Research Competitions



I presented Type-Directed Program Transformations for the Working Functional Programmer at PLATEAU 2019 and had a great time meeting people at this lovely conference!
I had a great time meeting people and presenting Program Synthesis with Live Bidirectional Evaluation at MWPLS 2019/PurPL Fest!
I’m very excited to be attending the Oregon Programming Languages Summer School this year!
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! All my pieces are composed in the wonderful, open-source music notation software Musescore. Stars () denote my current favorites.

Longer pieces

  • An Impossibility (mp3 | pdf). Cello & Piano, January 2020.
  • Florescence (mp3 | pdf). Orchestra, September 2019.
  • Sonata in G Minor (mp3 | pdf). String Quartet, April 2019.
  • Invention in D Minor (mp3 | pdf). Keyboard, January 2019.
  • 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). Synthesizer, August 2018.
  • Outset (mp3 | pdf). Synthesizer, June 2018.

Shorter pieces

  • Ring (mp3 | pdf). SBB, November 2019.
  • Jam (mp3 | pdf). Game Boy Synthesizer, April 2019.
  • Realizations (mp3 | pdf). Synthesizer, July 2018.
  • Lessons (mp3 | pdf). Synthesizer, August 2018.


  • Benedictus (mp3 | pdf). SAB, March 2020.
  • Kyrie (mp3 | pdf). ST, February 2020.
  • Morrow & Deseora Town (info) June 2019.
    • Marielle (mp3 | pdf). Morrow Town
    • Felix (mp3 | pdf). Morrow Town
    • Cordelia (mp3 | pdf). Morrow Town
    • Reduction (mp3 | pdf). Morrow Town
    • Marielle (mp3 | pdf). Deseora Town
    • Felix (mp3 | pdf). Deseora Town
    • Cordelia (mp3 | pdf). Deseora Town
    • Reduction (mp3 | pdf). Deseora Town
  • Lucas (info) April 2019.
  • Minuet and Trio in A (mp3 | pdf). Keyboard, May 2018.
  • Caged Bird (mp3 | pdf | annotated). Chorale, April 2018.

The Shards of Mt. Lampora Play! ▸

As my final project for the functional programming class that I took at the University of Chicago, I created The Shards of Mt. Lampora, a 2D platformer written using the Elm programming language featuring modular music that I composed myself.

As the player moves throughout the world and collects the shards it contains, the music responds dynamically. These musical details (along with some other information about the creation of the game) are further described in the brief presentation that I gave before demoing my game.

If you’d like, you can click here to play The Shards of Mt. Lampora! You can also view the source code for the game here and its sheet music here.

My Bookshelf

In an increasingly paperless world, where should we display the books that are most important to us? Here is as good a place as any other for me! Inclusion in my bookshelf does not necessarily indicate full agreement.

Computer Science

  • Purely Functional Data Structures Chris Okasaki


  • Frankenstein Mary Shelley
  • One Hundred Years of Solitude Gabriel García Márquez
  • The Aleph and Other Stories Jorge Luis Borges
  • The Little Prince Antoine de Saint-Exupéry
  • The Sound and the Fury William Faulkner


  • Algebra: Chapter 0 Paolo Aluffi
  • Linear Algebra Done Right Sheldon Axler
  • Principles of Mathematical Analysis Walter Rudin

Music Theory & Composition

  • Concise Introduction to Tonal Harmony L. Poundie Burstein and Joseph Straus
  • Classical Form William Caplin
  • Gradus ad Parnassum Johann Joseph Fux


  • Ludomusicology: Approaches to Video Game Music Edited by Michiel Kamp, Tim Summers, and Mark Sweeney
  • Sound Play: Video Games and the Musical Imagination William Cheng


  • The History of Sexuality Michel Foucault
  • The Marx–Engels Reader Edited by Robert C. Tucker
  • The Structure of Scientific Revolutions Thomas Kuhn
  • The Souls of Black Folk W. E. B. Du Bois