Guided students through course projects covering C, GDB,
RISC-V assembly, CPU design in Logisim, and parallelism
with OpenMP and OpenMPI during office hours in CS61C.
Tutored a group of 10-20 students in Python, SQL, and
Scheme during lab in CS61A.
RRB Construction
Mar 2021 — Jun 2022
Office Assistant
Created software in Java to automate data entry and
analysis in Excel that saved tens of manhours each
week while working as an office assistant and on-site
in residential construction.
Santa Barbara City College
Jun 2021 — May 2022
Teaching Assistant
Tutored peers in small groups of 1-5 people in Python,
Java, and Data Structures & Algorithms.
Hosted office hours to individually advise students
and debug programs.
Led midterm review sessions to solidify student
understanding of course material.
SBCC Team Programming Club
Jan 2021 — May 2022
Club President
Organized club competitions, mock interviews, and
discussions of select topics including dynamic programming,
convex hulls, graphs, and applications of hashmaps.
Competed in the ICPC Southern California region, placing
first in junior colleges both years.
Led firmware development for an ESP32 and assisted with circuit
design on a PCB that displays real-time traffic conditions of
nearly 650 road segments in the greater Los Angeles area.
Successfully utilized ESP-IDF documentation to implement
OTA updates, establish HTTPS connections to
TomTom's traffic API,
and enable non-volatile storage of user data.
Managed various FreeRTOS tasks by configuring task priorities and using semaphores,
task notifications, queues, and event groups to synchronize resource usage and error states.
Handled memory constraints by optimizing task stack usage and developing an efficient
data structure to hold LED to road segment mappings.
Synchronized I2C commands to three LED matrix drivers through
the use of a gatekeeper task, controlling a total of 326 RGB LEDs.
Created a device that displays the RISC assembly
instructions in the flash memory content of MSP430
microcontrollers through the use of a custom driver
for the JTAG debugging interface.
Used register-level C programming to create a UART
hardware abstraction layer.
Overcame design challenges while writing a disassembler
library to offer a convenient and efficient API for
converting machine code extracted via JTAG to assembly
instructions.
Implemented interrupt service routines to debounce
button input using the timer peripheral.
Minimized MCU power draw through the use of low power modes
while waiting for user input.
Routed a PCB in Kicad to ease development and create a
finished product, then soldered through-hole and surface
mount components using a soldering iron, heat gun, and flux.
Collaborated in a group of 4 students to design and
implement critical features of the Pintos operating
system including many system calls, scheduling,
multithreading, and a filesystem.
Researched, designed, and enabled use of the
floating-point unit in multi-process systems through
use of inline x86 assembly floating point state instructions.
Led the implementation of user multithreading from design
to component creation and programming of necessary changes
to previously created process control system calls.
Added support for filesystem subdirectories and designed
an efficient solution for path parsing.