About Me

I graduated from California State University, Long Beach with a Bachelor of Science in Computer Science and I’m deeply curious about how things work. I pursue challenging work that gives me the opportunity to learn new techniques and technologies. In my free time, I enjoy learning about mathematics and seeing how I can creatively apply my learnings to software development.



Suffering from writers block? Poetta can help you get unstuck. Poetta is a web project that assists in the creation of poems by using nlp generating lines of text.

Advanced Maths

Advanced Maths is a Java library, tested with JUnit, that provides methods for linear algebra vector and matrix operations along with a few extra useful functions like linear and hermite interpolation. It is a nice set of utilities to have when doing things like machine learning and graphics programming.

GLSL Demos

A showcase of my work with GLSL fragment shaders exploring 2D and 3D geometry, fractals, ray tracing, and mathematics.

Pacifist 8

Pacifist 8 is a challenging 4 stage bullet hell where the player must dodge onslaughts of enemy fire. The game was written in Lua, using Pico-8. The entirety of the games code and assets take up less than 32 KB of space.


Smardens was a sustainable gardening team project that I worked on in my final semester at CSULB. The project used sensors that would regulate when plants needed to be watered as well as provide information about UV light conditions. I used the LAMP stack to create a web app for the project where users could create a profile and update it with information about what plants were in their gardens.

VR Space Visualization

A 360 VR video that was captured inside of Unity. This project was an experiment in making VR videos without the use of expensive camera equipment.

Infinite 3D Maze

Infinite 3D maze is an experiment in using GLSL fragment shaders to make generative content for interactive scenes. All the geometry defined using a combination of Truchet tiling and raymarching. Interaction and collision are handled by Java and Processing.