I am working on developing an interface and engine for a novel chess variant with a dynamic board. It aims to provide future Aggie Coding Club students an engaging way to practice algorithm design and C++ programming, by providing them a platform to create their own engines and play them against each other. To achieve this, I plan to build 1) a cross-platform interface which can be used to play engines against each other, and 2) an easily-extensible engine which can play a variety of rulesets. Click the image to view more!
Participated in this TAMU Hackathon in fall 2020. Worked with my friend Carlos Barker on making a prototype website aimed to help connect caption volunteers with video creators, filling the hole in the ecosystem created by YouTube's announcement to end it's community captioning features. While this super early prototype worked on for less than 24 hours was far from complete, we gained a tad of experience with PHP.
Google Chrome Extension that adds shortcuts to increment the custom week view for Google Calendar one week at a time. Google Calendar lacks continuous scrolling for month view, making it difficult to work with events that cross between months. This extension aims to address this difficulty by allowing users to increment their view a week at a time in a multi-week view.
Team project in the Aggie Coding Club. We are working to create a UCI-compliant chess engine from the ground up in C++. The project ended early development due to major overscoping, but we still did quite a bit of stuff.
Participated in an MLH Data Science Hackathon as part of a team on the learner’s track. Even though no one on our team had prior experience in data science, we took this event as an opportunity to quickly gain exposure and learn the basics, all while having a good time.
Participated in a team project for a hardware-centric hackathon. We worked on a system that would be able to parse an image of a physical “chessboard” and convert it to a digital representation. We limited our chessboard to be made of cut up paper squares of two distinct colors on a board with blue positioning marks on each of the four corners. A phone mounted on a stand would take a picture of the board at the end of every turn and send it to our computer. Then our python script on that computer would parse the image to determine the layout of the board (checking with limited ability for move legality). It communicated to an Arduino inside the phone mount, which controlled a turn timer and indicated when the script was done processing and ready for the next move.
Created in fulfillment of my high school capstone project, this is a system that enables users to set rules to control their access to both software applications and physical items. Users choose what time period they want to prevent access, choose which apps it blocks (if any), and which compartments it locks (if any). Multiple rules can be applied at once, and each compartment can be controlled individually by one or more rules, so it is highly customizable. It’s composed of an Arduino inside the box, and a Windows service and application (written in C# on .NET) on the user’s computer. The compartments’ locks are controlled by an Arduino that communicates via USB to the user’s computer (users simply plug it in and hit ‘connect’ in the application). From there, a GUI interface allows the user to open the compartments only if there is no rule preventing it. Users manage rules via the GUI, which communicates to a service that enforces them. This service polls other applications on the computer and terminates them if they violate the rules set, effectively blocking them for the user.
I was a programmer in my high school’s competitive robotics team for two years. The main challenge I faced the first year was learning the ropes using only just the documentation and internet; since the only member from the previous year worked exclusively on the mechanical aspects. During my second year with the team, I was the captain. With this title came the responsibilities of managing the members, training the new programmers, and continuing to contribute to the code. Being in a leadership position of that scope was a new responsibility for me, but was a valuable and memorable experience. I must have been sufficient in that role, as we managed to advance to regional competitions via score that year, all while forming bonds of friendship that have lasted to this day.