I am currently a research resident at Redwood Research, where I build infrastructure for interpretability research on large language models.
I received my M.S. and B.S. in Computer Science from Stanford University, with a minor in Electrical Engineering, specializing in artificial intelligence and systems. My graduate work focused on machine learning systems and my undergraduate work focused on performance engineering.
I spent a year as a machine learning researcher at Stanford and as a data science intern at Gladstone Institutes. Before that, I was a research intern twice at UC San Francisco.
In my free time, I enjoy spending time outdoors backpacking, birdwatching, and golfing, as well as playing strategy games such as chess, crossword, and poker.
Developed a ResNet-18 hardware accelerator through digital design, verification, synthesis, and physical design.
Built a language model with custom GPU kernels, distributed data parallel training, and optimizer state sharding.
Built a graph neural network user-article recommender system on the Microsoft News Dataset (MIND).
View Report →Forecasted daily price changes in binary event contracts backtesting on 10K+ time-series samples from Kalshi.
View Code →Benchmarked PPO, DDPG, SAC, and TD3 policies on a 1,000 sample states from the Point Maze environment.
View Code →Designed a rasterization hardware accelerator with micropolygon bounding, edge traversal, and backface culling.
Developed a five-stage pipelined processor for the MIPS ISA with hazard detection, forwarding, and stall control.
Implemented register renaming logic in a pipelined RISC-V processor to eliminate write after write and write after read hazards.
Benchmarked parity, checksum, and Hamming error-correcting codes in 8×8 2D Torus routers using BookSim.
Defined Intel's Remote Action Request for remote TLB shootdowns through memory transiency models.
Developed a compiler for the Cool programming language with lexical analysis, parsing, semantic analysis, and MIPS code generation.
Built an operating system with thread scheduling, user program execution, virtual memory, and file systems.