Tech

C

User Threads

Nov, 2024

CS 162 | School Project

This project focused on developing the user threads functionality for the pintos kernel. The main focus was to implement the pthread_create, pthread_join, and pthread_exit syscalls while retaining proper functionality of the process control syscalls. Additionally, I implemented a thread priority scheduler and a library for user synchronization primitives.

Tech

C

Memory

Nov, 2024

CS 162 | School Project

In this project, I implemented the sbrk syscall in the pintos kernel. With this syscall, I also built my own versions of malloc, realloc, and free for user programs to use.

Tech

Rust

HTTP Server

Oct, 2024

CS 162 | School Project

This was my first project project built in rust - a http server that processes requests and serves them. This was a great introduction to rust, which was challenging to pick up at first.

Image from CS 162

Tech

C

User Programs

Oct, 2024

CS 162 | School Project

This project focused on developing the user program functionality for the pintos kernel. The main focus was to implement the exit, exec, and wait process control syscalls. Additionally, I implemented file operation syscalls and floating point operations.

Tech

C

Shell

Oct, 2024

CS 162 | School Project

I created a shell program that can run both directory commands and executables with piping and file redirection support. This was a fun project to dive deeper into the linux syscalls that manage processes.

Tech

Python

Routing

Oct, 2024

CS 168 | School Project

I developed a simulator to demonstrate a distance-vector routing protocol, implementing core logic for forwarding, sending and handling advertisements, managing timeouts, and handling route expiration. The simulator also includes optional features like split horizon, poison reverse, and route poisoning for expired routes.

Tech

Python

Traceroute

CS 168 | Sept, 2024

School Project

I programmed a script to run traceroute. It handles errors included invalid packets, packet loss, missing packets, duplicate packets, and highly delayed packets for both the probes and responses.

Tech

C#
.NET
Docker
Kubernetes
SQL Server
RabbitMQ
gRPC
NGINX Ingress

Platforms

Aug, 2024

Personal Project

After learning more about microservices at my internship, I wanted the opportunity to build and deploy them from scratch. This application provides information about services like .NET and Docker and the console commands used with them. It's decomposed into two microservices - platforms and commands. The application had minimal business logic, but the focus was to learn more about docker, kubernetes, and the other tools used to configure and deploy microservices.

Tech

C#
.NET
TypeScript
React
MongoDB

Software Engineer Intern

Summer, 2024

Origami Risk | Internship

Engineered a payment microservice to process 50,000+ monthly invoices with multiple payment providers (e.g., Stripe, Wells Fargo, etc.). The micro service was equipped with a modular, customizable, and highly flexible web interface to configure payment providers in place of independent SDKs, bringing development time from months to days.

Tech

Unity
C#

Proc Gen

April, 2024

CS 184 | School Project

Taking inspiration from Minecraft world generation, this project procedurally generates an infinite world with complex terrains, biomes, and natural, walkable cities. The goal is to help urban planners easily visualize new city designs with changeable parameters. Additionally, there is an interactive component to it where the user can move around the world using the WASD keys and space bar. Find more here.

Tech

C++

Cloth Sim

Mar, 2023

CS 184 | School Project

This project used a mass-spring system to simulate cloth. Verlet integration was implemented to calculate the new mass positions from one timestep to the next, and the system was extended to handle collisions with spheres and planes as well as self-collisions to fix clipping. Different types of vertex and fragment shaders were also integrated to get a variety of different visuals on the cloth.

Tech

C++

Path Tracer

Mar, 2024

CS 184 | School Project

This project covered the pipeline of path tracing for a scene and how different techniques can provide higher quality or more efficient renderings. This included generating rays, ray intersection testing, BVH acceleration, global illumination, russian roulette termination, and adaptive sampling.

Tech

C++

Mesh Edit

Feb, 2023

CS 184 | School Project

This project focused on geometric modeling, specifically curves and meshes. To construct the meshes, bezier curves and surfaces were implemented with the de Casteljau algorithm. The main component of the project was the upsampling of the meshes using loop subdivision. The loop subdivision algorithm was implemented with edge flip and edge split subroutines.

Tech

C++

Rasterizer

Jan, 2024

CS 184 | School Project

This project focused on the key components of the rasterization pipeline. First simple triangle drawing was implemented, and eventually supersampling to antialias them. Another integral part of this project was texture mapping. Using bayercentric coordinates and mipmaps, texture mappings were rendered with little aliasing.

Photo from CS 61B

Tech

Java

Tutor - CS 61B

Jan, 2024

UC Berkeley | Job

This marks when I became an a academic student employee for the class CS 61B - Data Structures. My main responsibilities include leading small group tutoring sessions, holding office hours, and answering questions on an online forum. I'm super excited to be teaching for my favorite class at UC Berkeley!

Photo from CS 161

Web Server Breach

Nov, 2023

CS 161 | School Project

This project focused on web vulnerabilities where a insecure website was used as a template for web attacks. These web attacks included XSS, SQL injections, and more. The attacks caused malicious behavior such as logging in as other users, making users do unwanted actions, and leaking data.

Photo from CS 161

Tech

Go

Secure File Sharing

Oct, 2023

CS 161 | School Project

This school project was an open ended design challenge that had to follow strict functionality, efficiency, and security restrictions. I developed a file sharing system that allowed users to log in from multiple devices, edit files, and share those files while keeping them completely secure against adversaries using cryptographic procedures. The design of this project was particularly challenging, but seeing the final product and its performance was very rewarding.

Photo from CS 161

Tech

C
x86

EMSV

Sep, 2023

CS 161 | School Project

Exploiting Memory Safety Vulnerabilities (EMSV) was my first project for CS 161 - Computer Security. I was tasked to examine vulnerable C code and exploit it to run shellcode based on a x86 architecture. The vulnerabilities included buffer overflows, format string, integer memory safety, and off-by-one vulnerabilities. Mitigations like stack canaries, non-executable pages, and ASLR were sometimes active, so I had to engineer attacks to get around them.

Tech

Python
Pandas
scikit-learn
Matplotlib

Tutor - Data100

Aug, 2023

UC Berkeley | Job

This marks the start of my first time working as an academic student instructor for UC Berkeley. It included helping in office hours, grading assignments, and answering questions in an online forum for Data 100.

Tech

C#
Unity Engine

nanoVR

May, 2023

TiLab | Research Project

This is my first project with TiLab, and it is my largest one yet in my career. Working with another researcher, we are developing an editing tool for DNA nanostructures in a VR environment. This project is a nice switch from school projects because instead of coding difficult algorithms, the algorithms involved are simple yet the vastness of the project makes it difficult to organize. I find figuring out how to manage complexity for the ease of programming really intriguing.

Tech

C
OpenMP
Open MPI

CS61kaChow

Apr, 2023

CS 61C | School Project

This project focused on the optimization and speed of programs. The entire project was based upon matrix convolutions and making the algorithm as fast as possible. This project emphasized many ideas of parallelism using the OpenMP and OpenMPI frameworks.

Tech

Python
Pandas
scikit-learn
Matplotlib

Spam & Ham

Apr, 2023

Data 100 | School Project

Spam & Ham was a binary logistic regression model that classified spam emails vs ham emails (non-spam emails) based on the heading and body texts. The data exploration and feature engineering was the most difficult and brought the most insight on how to optimize and analyze data for the best machine learning algorithm.

Tech

Python
Pandas
scikit-learn
Matplotlib

Housing

Mar, 2023

Data 100 | School Project

This project was a linear regression model to predict the property value of homes in Cook County, IL. The process involved intense data exploration and feature engineering but also touched on the ethics of using models and how they may develop biases.

Tech

RISC-V
Logisim

CS61CPU

Mar, 2023

CS 61C | School Project

CS61CPU was one of the largest school projects I've done. I emulated a RISC-V processor in Logisim, which gave me a deep understanding of the data pipeline and control of a computer processor. It also involved the implementation of pipelined registers. I really enjoyed this project, and understanding the hardware of a computer has given me more engineering insights than I would've imagined.

Tech

RISC-V

CS61Classify

Feb, 2023

Personal Project

This school project was my first project in an assembly language. The final product was a program that can compute the classify algorithm for machine learning applications. It was definitely challenging, but when taking the extra steps to plan more effectively and follow convention, the code effectively wrote itself.

Tech

HTML
CSS

This Website

Feb, 2023

Personal Project

I built this website on and off for about a month, which brought me back into web development after about a year away from it. It was a great hands-on experience, and I learned a lot starting from scratch. I plan to continue building on it indefinitely with timeline updates and new features.

Photo from CS 61C

Tech

C

snek

Feb, 2023

CS 61C | School Project

snek was my first project in C and was a recreation the game snake. It focussed on memory management, pointers, file manipulation, arrays, and strings. These were all some-what new and different concepts compared to the code I've seen in other languages, which made it a very educating experience.

Tech

CVAT

Data Labeler, Machine Learning

Jan, 2023

SwingVision | Internship

Growing up playing tennis, I was thrilled to begin my first internship at SwingVision. It was a great experience working for a ML company. My main responsibility was labeling videos to acquire data for the machine learning algorithms using CVAT. Working at the data collection level gave me insight into how data is collected, how it can be miscollected, and what biases can lie within in it. I believe this was quite eye-opening because knowing that these situations are possible in data collection aids in data analysis and understanding.

Tech

C#
Unity Engine

Package Runner 20XX

Dec, 2022

GDD | School Project

Package Runner 20XX is one of my favorite projects I've ever done. Taking over two months to collaborate on, it was extremely satisfying and rewarding to complete. I coded alongside two other programmers and three artists. Check out its description and play here!

Tech

Java

BYOW

Nov, 2022

CS 61B | School Project

Build Your Own World (BYOW) was my final project for my data structures class (CS 61B). Unlike other school projects, the given project spec and skeleton code was minimal, allowing complete freedom for design. The goal of this project was to generate interactive, pseudorandom game worlds given an input seed. This project was challenging given the lack of guidance, but that allowed me to spark my curiosity and design abilities to construct a platform that minimized code complexity. I believe I refined my skills as a programmer the most with this project.

Photo from CS 61B

Tech

Java

WordNet

Oct, 2022

CS 61B | School Project

WordNet was a really cool project to work on. It revolved around semantic relationships and word usage overtime in the English language. First, I developed a data structure to hold word usage over time, which transferred data to a frontend replicating Google's Ngram Viewer. The next part of the project revolved around semantic relationships, which can visualized with a directed acyclic graph as seen in the image. The code used a graph data structure to supply a user with any information regarding semantic relationships in the English language. Both parts parsed text files to retrieve the data to supply the user.

Tech

C#
Unity Engine

Pitch Black

Sept, 2022

GDD | School Project

Pitch Black was the result of GDD's 1 week long game jam. I coded alongside another programmer and an artist to create 2D maze game. The scene is set in an abandoned mansion where a young teenager lost his baseball inside. You play as the unfortunate teenager looking for the missing ball. All you have is a baseball bat to defend yourself from the ghost that haunts the mansion.

Photo from CS 61B

Tech

Java

Deques

Sept, 2022

CS 61B | School Project

In Deques, I implemented two versions of the double ended queue data structure with linked lists and arrays. Both had circular topology, which I thought made that code very enjoyable. Altogether, this project was a great continuation of learning java as well as the fundamentals of object oriented programming.

gif from CS 61B

Tech

Java

2048

Sept, 2022

CS 61B | School Project

2048 was my first java project in CS 61B. It was a quick project that reintroduced me to the java syntax while focussing on ideas of abstraction though multiple helper methods. In the end, I programmed the logic for game.

Tech

Python
Java

CSM Mentor

Aug, 2022

CSM | Club

I first got interested with CSM when I took one of their tutoring sessions for CS61A. I then ignited a passion for teaching. I joined CSM as a junior mentor the next semester, teaching the class I just took. I'm now a senior mentor for another class, which involves guiding junior mentors for their tutoring sessions.

Image from EECS

Tech

Python
SQL

Academic Intern

Jun, 2022

Internship, Volunteer | UCB EECS

I was an intern for the EECS department at UCB for the summer of 2022 when I was taking classes. I taught and gave a few lectures to a 30-student lab section consisting mostly of incoming freshmen in CS 61A.

Tech

Python

Scheme

Apr, 2022

CS 61A | School Project

Scheme was a project that I feel I learned a lot from. I coded a scheme interpreter in python. It really cemented my understanding of how computer programs are interpreted and evaluated.

Image from CS 61A

Tech

Python

Ants

Mar, 2022

CS 61A | School Project

Ants was my first object oriented porgramming project and was one of my favorites. It was a 2D tower defense game that drew inspiration from Plants vs. Zombies where specialized ants would attack incoming bees.

Tech

Python

Cats

Feb, 2022

CS 61A | School Project

CS61A Autocorrect Typing Software (Cats) was a neat and challenging project that further built my early programming fundamentals. It focused on iterables and recursion.

Tech

Python

Hog

Feb, 2022

CS 61A | School Project

Hog was my very first coding project. It focused on conditionals, iteration, and higher order functions. The premise was a complex dice game with fun rules played between two players. This was definitely a beginner level project, but it was a great instructional experience.