See what I've worked on.
AngularJS TypeScript Protractor Less (CSS) HTML
Onshape is a cloud-native mechanical CAD platform (think the Google Docs of CAD) with a Git-inspired version control system. During my 2022 summer internship, I developed the front end of the selective merge functionality, which allows users specify which branch's changes to incorporate in a merge on a per-tab basis (tabs in an Onshape document are like files in a Git repository). I created a dialog using AngularJS and TypeScript, which helps users visualize which tabs changed on each branch so they can make more informed decisions and feel more secure about merging. My work involved creating the dialog, writing end-to-end tests, going through the code review process (from both sides), and working in an agile environment with others (developers, UX, and QA).More Info
Node.js Express.js SQLite HTML SCSS Docker
Alcove is an open-source Unix backup system written in Node.js. During my 2018 and 2019 summer internships, I worked on several different aspects of the project. My largest contributions were designing a web application to monitor existing backups and the progress of ongoing backups, implementing an email notification system to update users and backup failures and statuses, and writing a script to change web application user passwords and permissions without manual SQL queries. This project was also my first exposure to working on a relatively large codebase, collaborating with others using Git, and using Docker.Source Code
PHP Drupal MariaBD Docker
During my 2020 and 2021 summer internships, I contributed to this laboratory inventory management system for the Iowa Institute of Human Genetics. I completed a variety of outstanding tasks, but my biggest contributions were adding support for multiple library pools to share a flow cell lane and creating a dynamic project request form to eliminate the majority of the lab's data entry workload.
Node.js Express.js React Raspberry Pi Python
The Internet of Utilities was a project for HackUMass IX. Three friends and I developed an application that used a Raspberry Pi and computer vision to detect when watter bottle filler stations needed their filters changed (by reading the status light). We displayed the buildings around campus that most needed their water bottle fillers' filters changed on a React web app for maintenance to use.Source Code More Info
Node.js Express.js MariaDB HTML CSS Stripe API
PixelHeart was a fundraising web app developed for the 2020 HackMann online hackathon, where it was an honorable mention. It allowed users to buy pixels from nonprofit organizations on blank HTML canvasses and paint them for the rest of the world to see, thus letting nonprofits raise money while generate unique artwork.Source Code Devpost
Node.js Express.js Socket.IO MongoDB React Native React Native Game Engine
SMSsage was a cross-platform messaging app with a built-in snake game (conceived as a cross-platform alternative to GamePigeon). I developed the app with a partner for the 2019 ISE Coding Garage, where we won first place in the advanced division. I worked primarily on the backend including JWT authentication, phone/email verification, and Socket.IO messaging.
While teaching myself the Rust programming language, I created this apportionment calculator as a practice project. It apportioned seats among a legislature (like the U.S. House of Representatives) according to the Huntington-Hill method.Source Code
Replay was Iowa City Robotics's 2020 robot, which competed in the FIRST Robotics Competition® game Infinite Recharge. The main features of the software included vision-based targeting, a "smart" ball indexing system that responded to jams, and a PID-controlled drivetrain.Source Code More Info
Freefall was cross-platform infinite runner game where a parachutist had to avoid obstacles while falling from the sky. I developed the app with a partner for the 2018 ISE Coding Garage, where we won third place. This was my first time developing a mobile game from start to finish, and I learned a lot about game design, collision detection, and motion controls.Source Code