My Projects

A
    screenshot of Shot Clock

Shot Clock (2024)

Shot Clock is a mobile app designed to help individuals track their alcohol consumption and stay safe. With a simple and intuitive interface, users input basic information and start a session where they log each drink they have. The app then provides an estimated blood alcohol content to help users stay informed and know when they might be reaching unsafe levels.

React Native Expo TypeScript Jest
View on GitHub

The app was built using React Native and the Expo framework, streamlining the development and deployment process. This was my first time diving into React, and learning about the concepts of state management and component lifecycles.

Considering the target audience may be impaired, I focused on creating a simple, user-friendly UI. User inputs are stored asynchronously on-device to ensure both security and simplicity. For calculating blood alcohol content, I leveraged scientific literature on the Widmark equations, ensuring accurate BAC range estimates based on several specific parameters.

A screenshot of
    my lightcurves project

Lightcurves (2023)

While working with the Center for Astrophysics, I processed large datasets from the Chandra X-ray Observatory. Initially tasked with manually downloading and analyzing the data, I developed software to automate the process, making it more than 50 times faster. This innovation significantly boosted productivity and enabled quicker insights.

Python Pandas NumPy Matplotlib Flask Jinja JavaScript HTML CSS
View on GitHub

The program starts by querying and downloading data from an astronomical database based on user-set parameters. It took significant effort to understand the specifications of the data as documentation was sparse. Afterward, I processed the data using Pandas, NumPy, and a proprietary analysis package called CIAO. The data was then plotted with Matplotlib and exported to a web format. While developing, I put a focus on real-time logging, progress reporting, and crash reporting, so anyone could see why and where the program had any issues.

This was my first project where I utilized parallel computing. Using Python's various parallelism systems I implemented a system that could download and process astronomical sources several at a time. Along the way I learned about resource contention, mutexes, race-conditions, the GIL, and more. The result was a program that was extremely quick, many times faster than a single-threaded one would be.

I then made it interactive, allowing the data to be re-binned with different time durations. This allowed for data to be examined further, making it more useful for analysis. This was done by making a server that could host the output, allowing it to send a request to run a source through the pipeline again. See it in action below.

A screenshot of my
    circuit creator project

Circuit Creator (2023)

This was suggested to me by my high-school physics teacher. The web app allows users to use a web interface to design complex circuits of resistors, generating a rendered schematic alongside a comprehensive data sheet that calculates and details key electrical properties.

Python Flask Jinja JavaScript HTML CSS
View on GitHub

This program was my first experience with Python web apps. I chose Flask over other frameworks because it is lightweight and proved easy to learn. I also learned how to use Jinja, a templating engine for Python, to generate dynamic HTML pages. I used JavaScript to create the interactive UI and to send data to the server. I used CSS for the layout and style.

To effectively store and manage circuit data within the app, I needed a structure capable of handling configurations of series and parallel items and their permutations. To address this challenge, I designed a recursive structure represented as JSON that can represent circuits with variable complexity, ensuring I could represent diverse circuit designs.

A screenshot of my circuit creator project
A
    photo of the robot I programmed

FRC Robot Code (2024)

This code was developed for the FRC Robotics Competition at the world-championship level. It encompassed programming several complex subsystems, including a drivetrain, a two-joint robotic arm, accurate camera-based localization, an advanced odometry system, sensor filtering, and more — all with simulation capabilities.

Java Gradle Github Actions
View on GitHub

The project was built using WPILib, the standard library for FRC robotics, and the AdvantageKit framework for advanced logging and diagnostics.

The drivetrain can perform autonomous path following via a sophisticated odometry system. The robotic arm, featuring two degrees of freedom, is controlled by high-frequency motion profiles and a feedforward control model. This approach accounted for system dynamics, allowing the arm to reach target positions quickly and accurately.

Vision-based localization was achieved using two high-resolution global shutter cameras connected to a Raspberry Pi running PhotonVision, an open-source localization framework. Through meticulous calibration, the system achieved a stationary accuracy of within two inches. My custom filtering algorithm maintained usable localization data even during high-speed motion.

The program leverages both built-in simulation tools from the libraries I used and custom solutions I developed. These high-fidelity simulations allowed for rapid testing and iteration in a safe environment, minimizing risks and optimizing performance before deploying the code to physical hardware.

Portfolio Website (2025)

This is my portfolio site: a platform where I showcase my work and share information about myself. I approached its design with the same principles a business applies to a customer-facing website. My goal was to create a seamless user experience that is fast, visually appealing, and easy to navigate.

Eleventy Nunjucks JavaScript HTML CSS Cloudflare Pages GitHub Actions
View on GitHub

I chose Eleventy as my static site generator. It allowed me to streamline the development process using templating while still compiling to only pure HTML, CSS, and JavaScript, ensuring an extremely fast site.

Creating an intuitive user experience was a top priority. I utilized media queries to ensure the site looked great across a wide range of screen sizes. Additionally, I carefully designed the interface to look its best in both light and dark themes. I used Google's Lighthouse tool to audit my site, making sure it was fast, adhered to best practices, and was optimized for SEO.

This project was also my first experience with deployment. I hosted the site using Cloudflare Pages, leveraging Cloudflare's CDN for reliable performance and uptime. I created a CI pipeline with GitHub Actions to automatically build and deploy the site whenever changes were pushed.