Listening To:

Updates

🏆 I was awarded the NSF GRFP Fellowship!

👩‍💻 I'm now advised by Joshua Sunshine in the Software and Societal Systems Dept!

🏭 I moved to Pittsburgh to start my PhD at Carnegie Mellon!

⚛️ I'm interning for a second year with the ROSE compiler group at the Lawrence Livermore National Laboratory!

🔱 I graduated from UCSD with a BS in computer engineering after finishing my last quarter abroad in Rome!

Blog

Research

New!

Optimizing Tree Borrows

Miri is an interpreter for Rust that checks for undefined behavior in executable programs, but it can frequently have runtime overheads of over 1000x native execution. I'm collaborating with researchers at Cornell on profiling Miri and implementing Tree Borrows more efficiently.

New!

Finding Aliasing Bugs with BorrowSanitizer

When Rust programmers write unsafe code or foreign function interfaces to C/C++, their programs are vulnerable to aliasing bugs that violate Rust's safety guarantees. BorrowSanitizer is an LLVM sanitizer for finding aliasing violations to the Tree Borrows model.

Usable Programming Paradigms 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.

Hobbies

WRCT

I DJ for WRCT, our free-form college radio station at Carnegie Mellon. This semester, I play a lot of dream pop and shoegaze at 3pm on Thursdays. You can find previous playlists on my show's page.

Me in the basement of the university center reading PSAs that tell you to ride a bike more often.

ACM Cyber

During undergrad, I was involved in UCSD's cybersecurity club, ACM Cyber. As a board member, I organized teams for capture-the-flag (CTF) competitions in addition to hosting talks and workshops for other undergrads interested in cybersecurity. Since 2023, I've also been writing challenges for SDCTF, UCSD's annual offensive hacking game!

Sometimes we forget to book a room for presentations (kickoff '24, SDCTF '25) and have to give them on one of the kiosks around campus that we pentested.

Ham Radio

I've previously been a member of UCSD's amateur radio club, KK6UC, and now you can occasionally find me on top of Hamershlag hall with W3VC! I've been a licensed technician since 2023, and my callsign is KN6ZWF.

You found Hamershlag!