Hi! My name is Brian, and I'm a recent computer science graduate at the University of Florida. I'm passionate about front-end software development and have done a few web projects using libraries such as Next.js and SvelteKit. Additionally, I have an interest in digital arts and sciences, and I'm pursuing game development as a side project. I find myself improving my programming and team skills in the classroom and student organizations while also exploring new technologies in my solo projects. I'm always looking for new opportunities to learn and grow as a developer. Come take a look at the things I've done!
August 2024 - April 2025
A Catan reinforcement learning agent created as part of a team project sponsored by CAE at the University of Florida's Integrated Product and Process Design (IPPD) program. IPPD is a capstone program that allows students to work on real-world projects with industry sponsors. For our team, Tactica, we were tasked with creating a machine learning agent that demonstrates tactical decision-making. We chose the game Catan due to its popularity, randomness, and strategic depth. We used an existing simulation, Catanatron, to simulate the game and provide a training environment for our agent. The simulation also provides a GUI, allowing users to play against the agent. We had to modify the simulation to add a trading interface, allowing the agent to trade with other players. I was responsible for most modifications to the GUI. We also added commands for training and testing, allowing for quick iteration and testing of our agents. For our agent, we used a reinforcement learning approach with a Graph Neural Network (GNN) to model the game board. The agent would choose among the many possible actions based on the current game state. When we found that this strategy was not effective, we pivoted to an ensemble approach where our agent instead picked among a set of strategies rather than a set of actions, reducing our action space. Our final agent was able to win at a rate of 98.4% against 3 random-choice players (players that choose random actions) and 22.7% against 3 of Catanatron's best players. Through this, we were able to demonstrate the potential of our unique ensemble approach. This project would not have been possible without the help of my teammates: Max Banach, Andres Espinosa, Cody Flynn, Jason Li, Han Mach, and Cathy Quan. This project also would not have been possible without our coach, Dr. Jorg Peters, our sponsor, CAE, and the IPPD staff.
Read More
January 2024 - July 2024
A programming language designed to be Turing-complete, statically-typed, and fast. The language is compiled to LLVM Intermediate Representation, allowing for powerful optimizations and cross-platform compatibility. The language features a C-like syntax with support for functions, variables, loops, conditionals, and more. It also provides simple error messages for compilation errors. The compiler is written in C++ and operates in several stages: scanning, parsing, type-checking, and code generation. The language is still in development and has over 200 integration tests to ensure correctness and speed up development. It is named after the mineral form of potassium nitrate, a compound used in fertilizers and gunpowder, which reflects the language's power, versatility, lack of safety restrictions that nerf control.
Read More
October 2023 - December 2023
A website for the Society of Software Developers at the University of Florida. The website is designed to be a place for members to learn about the club. It has a landing page to provide basic information about the club and where its meetings are held. The about page provides information about the club, its mission, and the club officers. The project was built with a team of about 5+ people utilizing agile software development practices. I was responsible for developing components such as the website's navbar and officer information cards on the about page.
Read More
January 2023 - April 2023
A web app that allows students to track their spending and budgeting. It was created as part of a project to practice full-stack web development. The front end uses Angular, and the back end is written in Go. The app also uses a MySQL database to store user data. The app features a log-in system to allow users to save their data, a transactions table to allow users to record their transactions, and a budget table to allow users to set budgets for different categories. The app then combines the data from the transactions and budget tables to display a calendar and progress information to help users stay on track with their budgets.
Read More
October 2022 - March 2023
A website for the Open Source Club at the University of Florida. The website is designed to be a place for members to learn about the club and its events. It also serves as a place for members to share their experiences with open-source software and the club. I was responsible for styling and scripting the blog page to match the style of the rest of the website.
Read More
February 2023 - March 2023
A to-do list app designed to help teach the basics of React. It was created for a workshop for the Society of Software Developers at the University of Florida. The workshop is divided into six parts, each with an interactive exercise. During each exercise, the presenter and viewers must fix a part of the app to make it function correctly. Instructions on how to fix the app are in the 'instructions.md' file at the root of the project. Viewers can choose to follow along with the workshop and fork the repository from StackBlitz if they fall behind, maximizing the time spent coding. The first version of this workshop was given in just under 75 minutes.
Read More
November 2022 - December 2022
A video game search engine that allows users to search for video games by title, genre, platform, and more. It was created as part of a team project to demonstrate how data structures and algorithms can be used to solve real-life problems. The app was created using React and TypeScript with Vite. Once users enter their search criteria, the app searches its database of over 100,000 games (scraped from IGDB and RAWG; see GitHub README) and calculates a 'match percentage' for every game. It then sorts the games by their match percentage based on the selected sorting algorithm (including JavaScript's built-in sort function whose implementation is based on the browser). The results are displayed to the user and each game can be clicked on to view more information about it. Although the app is open-source, the data is not included in the repository due to its size.
Read MoreUniversity of Florida, Gainesville, FL
August 2021 - May 2025
Florida SouthWestern State College, Fort Myers, FL
August 2018 - April 2021

Amazon Web Services (AWS)
October 2025

