Will P.L.
Crichton
Assistant Professor of
Computer Science at
Brown University

I lead the Cognitive Engineering Lab at Brown. Previously, I completed my PhD at Stanford, advised by Pat Hanrahan and Maneesh Agrawala, followed by a postdoc at Brown, advised by Shriram Krishnamurthi. My research goals are to:

  • Empower people to use the world's coolest programming languages.
  • Make programming as rigorous about human factors as about correctness and performance.
  • Design better tools for thought using concepts from PL and systems research.

I do research primarily between PL and HCI. I build systems like program slicers Github star iconStar count for willcrichton/flowistry, document languages Github star iconStar count for nota-lang/nota, and type system visualizers Github star iconStar count for cognitive-engineering-lab/aquascope. I develop theories like working memory for programmers, psychometrics for programming language learning, and typed templating for System F. I work on systems languages like Rust, proof assistants like Lean, and UI tools like the browser. My Rust research has been used by over 100,000 developers to date. My research garden (below) explains my current interests in greater detail.

I am recruiting PhD students this cycle (AY 2026-27). If you are interested in joining my lab, take a look at the page below:

If you want to take CS 1377: Tools for Thought in Fall 2026, please do not email me asking for an override. There will be a signup form on the first day of class. Overrides will prioritize students who can only take 1377 in AY 26-27.

Research Garden

This is where I grow my ideas. Click on the sections that interest you.

Concepts

Research interests focused a broad vision for the future.

Technologies

Research interests focused on a particular system.

Talks

Posts

Publications

This is a representative set of my publications. Click the button above to see an exhaustive list.

Conference Papers

Workshop Papers