Software engineer fascinated by computer hardware and the systems built upon it.

UC Davis graduate passionate about graphics pipelines, simulators, and CS education tools. Experience leading development on RISC-V simulator deployed as a teaching aid and independent projects surrounding graphics pipelines and physics visualizations.

Also a creative working on thinky puzzle games and nostalgic websites. Trying to claw back a small piece of that old internet individuality.

VRV: Virtual RISC-V
[[engineer]] 2023 -- present

VRV: Virtual RISC-V

RISC-V System Emulator for Education

RISC-V system emulator, primarily meant for teaching assembly programming and computer organization concepts.

VRV implements the instruction set RV32IMF_Zicsr (32-bit base integer + integer multiplication/division support, single-precision floating point support, and control and status registers support) and offers two privilege levels: machine and user modes.

  • Simulation backend assembles, links, and executes RISC-V assembly programs.
  • Configurable M-mode system file defines kernel functionality, e.g. trap handlers.
  • Execution supports both simplified std input and an MMIO TTY device interface.
  • Project maintains a CLI frontend and a QT GUI frontend with extensive debugging capabilities. Actively working on a javascript+WASM frontend to run on the web.
  • Used in UC Davis course, reported as effective teaching aid by 80% of students.

vrv
ACPC
[[engineer]] 2023 -- present

ACPC

Aggie Competitive Programming Contest

Annual programming contest hosted at UC Davis with a focus on introducing both undergrads and highschool students to the creative thinking and problem solving skills that competitive programming promotes.

I was lead problem setter for the 2023 and 2024 contests and a problem writer/tester for the upcoming 2025 contest. As lead problem setter, I was responsible for statement editting, testing/verification, and maintaining format consistency. I also led onboarding efforts to instruct and advise other members of the contest organization team in terms of problem writing and configuring the judge.

acpc
What is the RPG?
[[designer]] 2024

What is the RPG?

ARG Promotional Website for

The Remake of the End of the Greatest RPG of All Time

Written from the perpsective of an in-universe conspiracy theorist, this website has a retro geocities style and contains many secrets that inform the world surrounding the game as well as this character.

whatistherpg
Ekiben Tour
[[designer]] 2024

Ekiben Tour

Interactive Tour of Japanese Train Bento

This site allows users to go on a quick eploration of the regionally-distinct ekiben, bento found at Japanese train stations intended to be eaten while riding the train. You can select a variety of cities and investigate the ingredients and history of a selected ekiben specific to that region.

One interesting engineering problem was how to allow selection and highlighting of specific areas of the images. This was done by manually rotoscoping these sections in photoshop while also generating a mask of that specific area. While the rotoscoped image is used for the highlighitng, the masks are composited these into a single image while, ensuring each area has a distinct shade of red representing the area's ID. There are actually two rendered canvases on the site, one of which is invisible and displays this ID mask. I can then use the user's mouse position to query this mask and highlight the associated area of the image.

ekiben
CUDA Raytracer
[[engineer]] 2023

CUDA Raytracer

RISC-V system emulator, primarily meant for teaching assembly programming and computer organization concepts.

VRV implements the instruction set RV32IMF_Zicsr (32-bit base integer + integer multiplication/division support, single-precision floating point support, and control and status registers support) and offers two privilege levels: machine and user modes.

  • Simulation backend assembles, links, and executes RISC-V assembly programs.
  • Configurable M-mode system file defines kernel functionality, e.g. trap handlers.
  • Execution supports both simplified std input and an MMIO TTY device interface.
  • Project maintains a CLI frontend and a QT GUI frontend with extensive debugging capabilities. Actively working on a javascript+WASM frontend to run on the web.
  • Used in UC Davis course, reported as effective teaching aid by 80% of students.

cuda-raytracer
Memory Leak
[[gamedev]] 2023

Memory Leak

A Game About Making Lies from Truth

memory-leak
Computer Vision Projects
[[engineer]] 2023

Computer Vision Projects

computer-vision
MangoDB
[[engineer]] 2023

MangoDB

Concurrent L-Store Database in Rust

mango-db
alARM
[[engineer]] 2022

alARM

CPU Simulation and Assembler

alarm-cpu
Cloth Simulation
[[engineer]] 2022

Cloth Simulation

Responsive 3D Verlet Mesh

cloth-sim
MASM Mandelbrot
[[engineer]] 2022

MASM Mandelbrot

AVX Powered Mandelbrot Explorer

masm-mandelbrot
Bad Optics
[[designer]] 2018 -- 2020

Bad Optics

Multimedia Art Collective

bad-optics
WebGL Deferred Renderer
[[engineer]] 2019

WebGL Deferred Renderer

webgl-deferred
Portal-ban
[[gamedev]] 2019

Portal-ban

Sokoban-style Portal Puzzle Game

portal-ban
Wire Module Prototype
[[gamedev]] 2019

Wire Module Prototype

Problem-Solving Logic-Puzzle Game

wire-module
I'm Going to Break Your Heart
[[designer]] 2019

I'm Going to Break Your Heart

Official Website for Documentary Film

igtbyh