Recent Updates

12/17/24: I caved and made a Bluesky🦋. Don't follow me. Don't follow me especially if you're a professor.

12/16/24: I finished the last of my computer engineering courses! I do not recommend taking 20 units, tutoring, applying to grad school, and research at the same time. I hastily wrote this blog-post-esque report on the research I was able to squeeze in this quarter.

11/25/24: I rewrote my Rust verification paper! I thank reviewer #3 for their excellent feedback. (here's a preprint🤫)

Research

Realistic Rust Verification for Software Engineers

Are automated Rust verifiers usable by programmers without a formal methods background? At LLNL, 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 the E-graphs, egg. I found that while Prusti was more user-friendly in terms of UI, Creusot 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 programmers to fix, and how can we design tools to make debugging them more efficient? I analyzed 10,957 Rust 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 and gamers view personal privacy, I surveyed 40 participants 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 WIPS paper, we focused on children's privacy in gaming and VR.

Student Orgs

ACM Cyber

I've been involved with running my school's cybersecurity organizations since junior year of high school! As a board member of ACM cyber at UCSD, I've organized teams for capture-the-flag (CTF) competitions in addition to hosting talks and workshops for other undergrads interested in cybersecurity. For the last two years, I've also been writing challenges for SDCTF, UCSD's annual offensive hacking game!

Source for the above challenge. Also in SDCTF 2024, my neocities site with a secret OSINT chall.

KK6UC

I'm also a member of the UCSD amateur radio club, KK6UC! I've been a licensed technician since 2023 and my call sign is KN6ZWF. Some of my favorite events are the seasonal field days and we're currently working on hosting a WinLink gateway on our repeater and restoring our software-defined radio (SDR) antenna.

Projects and Hacks

DiamondHacks

At DiamondHacks 2024, we built Pedal Pirates, a web app for keeping track where and when bike thefts occur on campus through publicly available police logs and crowd-sourced data. It was my first time working with React. We won first place in the security category! I intend to get this permanently hosted for the following school year and beyond!

Sean is in a lot of these hackathon photos. He is the GOAT sheep.

Red Pitaya

In this 24 hour hackathon, I worked on the IR morse tranceiver hardware, powered by the Red Pitaya FPGA board. With one hour left and most of our teammates jumping ship, we were able to synthesize the work of two teams and demo a transmitter written in VHDL with a JavaScript interface, and a receiver using SCPI to translate the signal. In the end we won first place!

H.A.R.D. Hack

After a trip to Round One, we were inspired to make different types of controllers to change the way we interact with browser-based games. We demoed a rhythm game using Infineon's CAPSENSE sensors and the SerialPort API. We won second place for the Infineon challenge!