Home
Projects
Hobbies
BowAI
Beyond
Projects
Fridaymap.com
I built, launched, and actively run Fridaymap.com, a social mapping website for Cal Poly students to discuss and discover popular spots near campus.

Fridaymap.com hit 1000+ monthly active users, was featured on a front-page Mustang News article, and covered on a radio story on KCPR.

The site is hosted with AWS EC2 & S3. It uses a Python / FastAPI backend and a React frontend.

Tim the Robot
T.I.M.
Tim in a good mood
Tim is an agentic LLM with a small robot body. He runs on NASA JPL's ROSA framework, powered by Whisper and GPT-4.1 mini.

You can talk to Tim conversationally or through direct commands, such as "move in a circle" or "what do you see?". Tim will respond verbally and move around to follow your directions.

Tim uses an ESP32 for real-time motor control and a Raspberry Pi for high-level planning. His body is intentionally wobbly, to prevent him from taking over the world.

I'm currently building Tim v2.0, focusing on prompt latency, a larger body, and better SLAM.

Demo

Astromech robot
Pascal in a sunbeam
I'm working on the Astromech project with the Cal Poly Robotics Club. We're building an R2-D2-like robot (named Pascal) from the ground up, including subsystems such as a speaker system, display screens, and a T-shirt cannon.

I work on the software team, developing our motor control systems and debugging our packet processing library.

This year, we rebuilt the electrical system from scratch, removing a cord that connected the dome to the body.

Now the dome has 360 degrees of freedom, our power management is more efficient, and I had the opportunity to help build a really neat bluetooth-like system for onboard chip communication.
A Basys-3 FPGA board displaying four zeroes.
Testing the OTTER on a Basys-3 board
The OTTER is an assembly-programmable RISC-V microcontroller that I wrote from scratch.

I wrote the OTTER in SystemVerilog and designed and verified it in Xilinx Vivado. Programs are written in RV32I RISC-V assembly.

I originally built the OTTER as a final project for a computer architecture course (CPE 233), and have been expanding on it since. It now features a five-stage pipline and two-level set-associative cache.

I originally built the OTTER based on this architecture, laid out by Prof. Joseph Callenes-Sloan. It now looks very different. All code is my own.
ConstAnt's search interface
Dev view of the search feature
ConstAnt was a website that served as a wiki-like library of mathematical constants.

The initial few thousand constants are generated automatically. From here, users have the ability to add their own constants.

Users can like and contribute wiki-like info related to constants, creating a set of useful data pertaining to each of the many constants searchable on the site.

ConstAnt uses a Python/Flask backend with SQLAlchemy for database interaction.
The front page of San Juan Errands
San Juan Errands was a food delivery logistics engine and website I built from scratch.

SJE boasts features such as order tracking for both the customer and the deliveryperson, control panels for managing orders, and secure email verification for new accounts.

This site also uses a Python/Flask backend with SQLAlchemy for database interaction.

San Juan Errands focuses on local errands and food delivery across San Juan Island, WA, where my family has a long history. It fills a gap in the local market, as San Juan Island currently has no DoorDash or Grubhub presence of any kind.
SoundBo menu
SoundBo is a minimalistic, customizable soundbar app for the MacOS menu bar.

I created SoundBo with the goal of achieving the minimal possible time between thought and sound, no matter where you are on your computer.

SoundBo is built to be as compact as possible, both in app size and UI.