A close-up photo of Justin Lubin smiling.

Justin Lubin

Final-year CS PhD candidate, UC Berkeley (advisor: Sarah E. Chasins)

Programming languageshuman-computer interactionbiology

Faculty Job Market I’'ll be on the CS faculty job market in Fall 2026! (Application materials coming soon.)

Programming by Navigation (PBN) Resources: original paper at PLDI ’25 (presentation, repo) ◦ Honeybee (PBN for scientific analyses)PBN for debugging proof search at PLDI ’26 (repo, as a tactic in Lean) ◦ PBN for user-schedulable sparse tensor algebra compilation at LATTE ’26pedagogical PBN in ~50 lines of Pythonexample biology paper using Honeybee

Writing scientific programs is hard. We can’t verify the correctness of them by looking at their outputs; because what these programs are supporting is science, if we knew what the outputs of these programs should be, we wouldn’t need to run them in the first place. Additionally, due to subtle scientific and statistical assumptions, verifying these programs line-by-line is challenging even for computational scientists and is entirely out of reach for many experimental scientists. On top of that, scientific programs can take weeks to run! This is assuming, of course, that we’ve managed to get something to run in the first place; programming a scientific analysis requires decomposing the scientific question into an exact, ordered set of particular analysis steps and building on dozens of independently-developed tools, each with their own calling conventions and data structures. Finally, throughout the process, there are judgment calls based on biological expertise that go into every decision, and different valid programs can mean the difference between one scientific conclusion and another.

A photo of Justin in an experimental biology laboratory. He is wearing a lab coat and safety goggles and holding a pipette. He is standing, smiling, next to a an open lab notebook and machine displaying data that has been collected.
Me in the wet lab running my first independent experiment!

I am a programming languages researcher, but these are all facts I’ve learned in my deep collaboration with the Nuñez Lab, where for the last four years I’ve worked with them to contribute to our understanding of the regulatory principles of the human genome, both experimentally (see right!) and computationally (Nat. Commun. ’25, preprints 1, 2, 3). Along the way, I’ve worked with them to co-design and build Honeybee, a programming system that enables them and other experimental scientists to analyze the rich data they produce in the wet lab. This system is built on a technique I’ve developed called Programming by Navigation (PLDI ’25, PLDI ’26), which the MIT Programming Languages Review selected as a 2026 research highlight.

Outside science, I’ve applied Programming by Navigation to help programmers debug proof search (e.g. Rust trait errors, failing search tactics in interactive theorem provers) in collaboration with Max Willsey (PLDI ’26) and to help performance engineers precisely control state-of-the-art sparse tensor algebra compilers in collaboration with Olivia Hsu (LATTE ’26, in progress).

Conference and Journal Publications

For more, please see my CV or Google Scholar. (∗ = equal contribution, † = research mentee)

Preprints

Fun Stuff