I am a graduate of Haverford College (c/o 2025) where I was a CS major and a member of the Men's lacrosse team, and am a current Master's student at the University of Pennsylvania studying Computer and Information Science. I am still exploring what I find most interesting within the technical world (there is a LOT to see), but have enjoyed working on the backend side of projects thus far.
In my free time I enjoy are hiking and camping, playing the guitar, and spending time with my dog. To replace all the time spent playing lacrosse, I've found myself playing a lot of golf with friends and my parents.
This is my dog Bo :)
Haverford, Pennsylvania
Bachelor's of Science in Computer Science | Cum Laude
Philadelphia, Pennsylvania
Accelerated Masters in Engineering: Computer and Information Science - Expected graduation Spring 2026
I’m building a wildlife tracking app that shows users the exact locations of recent wildlife sightings and the nearest trail within a national park. I’ve seeded a Supabase (Postgres) database with iNaturalist observations/taxa and trail data (harmonizing NPS and OSM where needed). A scheduled job polls iNaturalist and upserts new sightings and any missing taxa, then assigns each sighting to the park polygon and nearest trail using geospatial checks. I’m now wiring up FastAPI routes to query by park, trail, species, and recency, and to return clean JSON/GeoJSON for a simple UI (lists by plants/animals, plus a map view), with Docker keeping the stack portable.
For my Machine Learning final project, my group implemented Linear Regression and Adaboost learning models to predict propety pricing in the Boston area. The goal of this project was to a) comapre the accuracies of the two models, and b) evaluate which features regarding the properties weighed more in the models' prediction. We found that (not surprisingly) the AdaBoost model was much more accurate than Linear Regression (~0.9 and ~0.7, respectively). As for the factors most valued by the models, both weighed the average number of rooms highly, but differed drastically in their use of other features (or lack thereof). It was valuable to learn how each of these models work, as well as how to apply them to a real-world situation.
Developed each stage of the compiler, including lexical scanning, semantic analysis, and code generation, which optimized code execution and improved system performance by ensuring accurate interpretation and efficient output of source code. Implemented Sethi-Ullman register allocation with stack usage to optimize memory usage. Supported variable and function declarations, type definitions, C-style comments, if/then/else, for and while expressions, operations, comparisons, all with type-checking and error handling
I developed the backend for PennCloud, a distributed cloud platform inspired by Google Apps. I implemented Primary Replication for tablet servers, ensuring data consistency with three replicas per tablet and a primary replica managing write operations. Using Two-Phase Commit (2PC), I guaranteed atomicity for write operations and checkpointing, enabling the system to recover state after crashes. I also designed a crash recovery protocol, where rebooted servers retrieved logs and tablet states from the primary replica to ensure consistency and reintegration. The project required balancing fault tolerance, scalability, and performance, resulting in a robust, high-availability cloud platform.
Developed multi-threaded SMTP and POP3 servers to handle concurrent client connections. Implemented synchronization mechanisms using mutexes and flock() to ensure safe access and modification of files descriptors across concurrent threads and processes. SMTP server supports commands (HELO, MAIL FROM, RCPT TO, DATA) to send and store emails in user-specific mailbox files, POP3 server supports commands (USER, PASS, STAT, UIDL, RETR) enabling clients to view metadata about the mailbox as well as read and delete emails.
The Big-Int data type that I created was designed to store large values in C-style arrays, where each index held 3 digit values at different memory addresses. It was very difficult to be able to delete and allocate memory at the appropriate times, especially when implementing the copy constructor and = operator. This project drastically improved my knowledge and understanding various concepts regarding memory. Definitely had some late nights with this one.
August 2023 to 2025
At Athlink, I helped develop the initial product: a social networking application. I worked closely with our CEO to design the app’s layout, key features, backend structure, and all other tech-related aspects. Along with two other developers, I selected the tech stack, created the initial design, and launched the first release in May 2023. Over the summer, we submitted updates to fix bugs, improve performance, and add new features.
Tech Stack: Typescript, React Native, Firebase, Expo
May to August 2025
At Sezzle, I worked with engineering, design, and leadership to improve our mobile application and helped launch Simple Signup. I tested and debugged, reviewed user activity with FullStory, and analyzed KPIs in Redash to better understand our user base. My role involved identifying root causes of bugs, creating detailed technical tickets, and collaborating with developers and other product teams to improve performance and user experience.
Proficient:
Basic:
Proficient:
Basic: