Paradigm Programming in Rust
Can we use quantitative methodologies to decide which language features are idiomatic for a given programming language?
We designed 16 pairs of functional and imperative code snippets in Rust and conducted a code review quiz to find out which style was more readable!
Additionally, I analyzed 1.5 million functions from open source Rust codebases to see which features were most commonly used across different contexts.
Russet: Hardware Verification with Mealy Machines
How can we make formal verification tools more accessible to hardware engineers?
Russet is a formal verification tool for VHDL that represents specifications as Mealy machine state transitions.
I interned again at LLNL in summer '25
to work on Russet's Haskell codebase and demonstrated its effectiveness by verifying the
SPI protocol.
Realistic Rust Verification for Software Engineers
Are automated Rust verifiers usable by programmers without a formal methods background?
At LLNL in summer '24,
I conducted a case study using the Prusti
and Creusot formal verification tools.
Both tools were used to verify the correctness of the underlying union-find of an E-graphs implementation, egg.
I found that while Prusti had a smoother developer experience, Creusot's formalisms made it easier to verify more complex properties.
Situationally Adaptive Language Tutor (SALT)
Building on the work of REVIS
and the error analysis study I conducted over summer 2023, I designed a custom logging system for programmer actions in VS Code
to gather data on IDE interactions, errors, and HIR
inferences of Rust programmers participating in our study. I am currently working on discovering which
programming decisions (and mistakes) correlate to learning progression in the Rust programming language!
My goal is to build a tool that can provide personalized feedback to programmers based on their level of Rust expertise and background in other langs.
Rust Compiler Error Analysis
What are the most frequent and costly errors for Rust programmers to fix, and how can we design tools to make debugging them more efficient?
I analyzed 10,957 diagnostic messages recorded from students and categorized them into 1916 distinct resolution sessions to analyze error frequency and average time taken to resolve.
As a result, I found that particular ownership errors are among the most frequent and take longer on average to fix.
Privacy Perspectives in VR
To understand how VR users view privacy, I surveyed 40 gamers to find out which circumstances meet or do not meet their privacy expectations.
I found that greatest concern lies in how biometric data and third party data is handled, and those who use VR platforms more frequently have significantly lower privacy expectations than those who do only occasionally.
In our workshop paper, we focused on children's privacy in gaming and VR.