Computer
Scientist


Skills

Some projects
RISC-V Operating System

I developed a small operating system targeting the RISC-V architecture, focusing on low-level systems concepts such as bootstrapping, memory management, scheduling, and hardware interaction. The project involved writing kernel-level code in C and Assembly, implementing basic process control, context switching, userspace programs, and I/O. This project strengthened my understanding of computer architecture, operating systems, and the relationship between hardware-software interactions.

Ray Tracer

I built a physically-based ray tracer from scratch in C++. I implemented core rendering techniques such as ray-object intersection, shading, reflections, refractions, texture mapping, and object imports using the PLY format. To improve performance, I implemented a Bounding Volume Hierarchy (BVH) acceleration structure. The renderer supports multiple materials, light sources, and scene configurations. I made it a point to emphasize code correctness, performance, and clean software design.

rendered image from ray tracer rendered image from ray tracer
BASIC Compiler

I designed and implemented a compiler for a BASIC-like programming language. This included lexical analysis, parsing, abstract syntax tree (AST) construction, and code generation. The compiler was written in Python and focuses on clear separation between the lexer, parser, and backend. This project deepened my understanding of compilers, language design, and program analysis.

Handwriting Synthesis

This product I developed simulates human handwriting for businesses and/or individuals who intend to send out mass letters with a more personalized feel. The algorithm is based on matrix math and statistical analysis, and it was implemented using Python, Numpy, and svg libraries.
I also developed a full-stack web application using React as the frontend and NodeJS as the backend for the purpose of inputting and storing user settings, configurations, and orders. Various other scripting techniques and version control techniques were used as well.

Music Theory Assist
picture of some music data calculated and retrieved

I developed this project as a means to assist musicians with calculating and retrieving useful information. Some examples of the type of information are: scales (based on a root note), modes (based on a root note), chords, and chord progressions. It started as a CLI program, but a GUI was made for the Python version using Tkinter and Matplotlib. It was originally written (by me) in MATLAB for a school project.