The University of Notre Dame
Majors: Computer Science in Engineering, Philosophy of Science and Math
The summer of 2023 I enjoyed the worderful experience of studying abroad in Alcoy, Spain, at the Polytechnic University of Valencia.
| Completed Courses | ||||
|---|---|---|---|---|
| Data Structures | Systems Programming | Algorithms | Databases | Advanced Databases |
| Logic Design | Computer Architecture | Computer Security | Distributed Systems | High Frequency Trading |
| Programming Paradigms | Introduction to A.I. | Neural Networks | Game Development | Autonomous Droid Building |
| Theory of Computing | Operating Systems | Tech Ethics | Modern Web Development | |
Working with the SAREC Drone Response research group, I am developing gesture recognition capabilities for the drones using CV techniques. This will enable direction of deployed drones by emergency responders on the ground. We started by building and processing a custom dataset of poses on which to train our model.
I have experience with (in some order) Python, C, VBA, SPAs, HTML, CSS, JS/TS, SQL, C++, Java, C#, bash, Verilog, and Google Script. I also frequently work with Git, GitHub, and Microsoft Office Applications.
In preparation for a high-frequency trading (HFT) competition on the simulated NDFEX exchange, I worked with two others to develop a high-performance trading system and trading strategies in C++. We created efficient order books and a main system for market, position, and PnL tracking, risk and rate limit checks, and order and strategy execution.
Our team won the competition, generating the most profit every day of the trading competition and avoiding the violation of any risk limits to take home the $750 prize.
Built a persistent, distributed, RPC spreadsheet server supporting five operations (insert(row,col,value), lookup(row,col), remove(row,col), size(), and query(row,col,width,height)) in Python with checkpoint and transaction logs (atomically compacted when n records reached). The servers were made discoverable via a name server and utilized a serialized request stream for simulated concurrency for multiple clients. Up to 5 servers were then clustered under a SpreadSheetClient for throughput, capacity, and reliability with a simple hash function for load balancing; data could be replicated across and K servers for redundancy where 1<=K<=N.
Client programs were made robust to failure to lookup the name in the catalog, failure to connect to the server, failure to send a request, and failure to read a response within five seconds. Reads will failover to any secondary servers in a data replication group and writes will write to each replica server in turn, retrying any failed writes after 5 seconds.
I created a custom droid with both RC and autonomous capabilities using a Raspberry Pi 5, a Raspberry Pi Camera, and Sabertooth motor controllers. In autonomous mode, the droid followed a road and responded to 4 different types of traffic signs at intersections in order to naviage. In competition, the droid placed first in RC challenges and second in autonomous challenges. The vision was based on a YOLOv12 model trained on a custom dataset labeled with Roboflow.
This project provides an incentive-based platform to enhance productivity and accountability within community members. The application enables users to join a group, which would allow them to create and participate in goal-oriented tasks (“quests”) and predictions (“bets”). Groups will generate virtual currency as quests are completed and currency circulates between members via peer-to-peer de Finetti bets.
This project aims to provide semi-private, application-agnostic, flexible, scalable, and reliable event room services by connecting users to external applications for low-bandwidth, interactive experiences. Our design choices—multithreading for concurrency, TCP for reliable messaging, and failover mechanisms for fault tolerance—will ensure a stable, user-friendly platform for various online interactions. The system will act as a bridge to relay messages between clients (users in a web browser) and application servers hosting the desired events. Users can create a room, receive a join code, and invite others to join the room to participate in events such as chat rooms, connect four games, and low-frequency interactive sessions.
TLDR: The aim is to decouple online rooms from the applications that run in them in order to aid in development speed, client message data consistency, modularity, scalability, and availability.
I crafted a custom siamese network architecture using PyTorch and trained, validated, and tested on a dataset from Kaggle with a partner. The finished model achieved a validation accuracy of 90% and test accuracy of 82.5% on signatures from the dataset.
I developed a trivia application using React for the front end and Supabase SQL for the backend, managing a database with over 50,000 trivia questions. Implemented features for creating, purchasing, and managing custom question decks. Enabled users to host and join private trivia games in virtual rooms, ensuring a responsive and user-friendly interface across various devices. Technical skills utilized include React, CSS, JavaScript, Supabase, SQL, API Integration, e-commerce integration, and virtual game room development. This project showcases my full-stack development skills and experience with high-volume database management.
I created a student marketplace app using React for the front end and a NoSQL database on the backend with Python. I implemented robust search and filter functionalities to improve user experience. Enabled secure user authentication and profile management. Technical skills utilized include React, CSS, JavaScript, Python, NoSQL databases, API Integration, and user authentication mechanisms.
Working in C, I built a set of custom memory management functions including malloc(), calloc(), realloc(), and free() with one partner. We learned how to inject them with custom linking to applications like cat.
Over the course of a semester, I researched and created a LSTM designed to help young authors solve writers' block by prompting the next line of text in Python using PyTorch and a custom training dataset. After creating a class for my LSTM model and functions for tokenizing data and creating a vocab set, I parsed over 40 texts from Project Gutenburg to use as training, testing, and validation data. I also created front end with HTML, CSS, and Flask utilizing this model in the background.
In Theory of Computing, I wrote a Pythonic, NFA-based, grep-style regular expression matcher with back-referencing capabilities that runs in linear time with a partner. Using this code as a basis, we then implemented sed's s command for regular expressions with replacement and its b command for conditional branching. We utilized GitHub throughout this project.
In the same class, my partner and I wrote a tm_to_sed application which takes in the encoding of a turing machine in a text file and outputs a sed script equivalent to the tm file.
Before the Reddit API policy changes, I completed this full stack project to essentially recreate Reddit's functionality. I stored over one thousand subreddits in a database and links to these subreddits populated the home page. Each subreddit link would take the user to a posts page containing the latest data scrapped from Reddit. Each post could then be clicked to recursively populate the comments page with the comments for that post. Each of the above pages could be modified on a settings page to sort, filter, and limit the content.
Worked with a partner to design a C99 based shell with options for both a FIFO and round robin process scheduling policies. Designed a MLFQ policy without implementation in the scheduler.
For this full stack project focused on the Event-based and OOP paradigms, I created a Rick and Morty website. On the backend, I powered my database with SQLAlchemy and populated it with data of locations, characters, and episoades from a RESTful API. I ran my Flask app and exported parsed data to my Flask HTML templates using Python. I integrated a Bootstrap responsive desing to create a mobile-first application, but I only hosted this on a local machine.
As Dunne Hall's website commissoner, I redesigned Dunne's website in 2022, hosted at dunnehall.com using DreamHost. This site contains some bootstrap pieces but we built it mostly with custom HTML.
For our data analytics final project in this course, my partner and I displayed our analysis of Covid's impact on the economy on the above page. The data was largely parsed from csv format with pandas and plotly in python.
I am proud to be serving as my dorm president for the 2023-2024 school year. I'm excited to work with my spring and fall VPs to choose coordinators, plan events, update my dorm members on campus events at weekly programming, and score hall points through monthly presentations to the Hall Presidents' Council.
I worked at Lake Front Clean Up, a small landscaping company, for four years. As the foreman in the summer of 2021, I directed all job site activities as I organized crews of up to 10 workers, assigned and drove workers to job sites, addressed onsite situations involving customer dissatisfaction and equipment malfunctions, gave estimates to potential customers, scheduled jobs, and oversaw work. In addition, I also invoiced and billed customers (typically $200-$3500), resolved monetary disputes, and purchased materials.
As club president in my senior year of high school, I worked to develop meet schedules, manage team rosters, create a new all-virtual COVID training format, organize social and technical events, and perform outreach to prospective students and parents. I also led the varsity team to its first state title, and won the first individual national medal in my school's history.