See what I've worked on.
AngularJSTypeScriptProtractorLess (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 InfoNode.jsExpress.jsSQLiteHTMLSCSSDocker
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 CodePHPDrupal MariaBDDocker
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.jsExpress.jsReactRaspberry PiPython
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 InfoNode.jsExpress.jsMariaDBHTMLCSSStripe 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 DevpostNode.jsExpress.jsSocket.IOMongoDBReact NativeReact 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.
Rust
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 CodeJavaWPILib
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 InfoC++WPILib
Thwack was Iowa City Robotics's 2019 robot, which competed in the FIRST Robotics Competition® game Destination: Deep Space. This was my first real exposure to writing robot code, and I learned about state machines, PID controllers, and basic vision tracking.
Source Code More InfoC++
I developed this command line simulator as a final project for CS:3210 (Programming Languages and Tools: C++) at the University of Iowa.
Source Code More InfoJavalibGDX
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 CodeJavaScriptHTMLCSS
This was an end-of-term project for my AP European History class. It displayed several historical events on a map, along with descriptions of each event. I learned a lot about working with maps in code while creating this project.
Source Code Deployment