Ridesio is a rideshare bulletin board iOS app (written in Swift) for college campuses that lets users request or post upcoming rides. Ridesio provides a communal, sustainable way of ridesharing for college students. Ridesio won 2nd Place in CodePath's Virtual Demo Day 2020.
This is a Python library that implements various algorithms and processes from discrete math. I also made a GUI to facilitate ease of user interaction. The repository also has a Jupyter notebook that demonstrates sample usage of the toolbox and how to access the documentation provided within the module.
I spent a lot of my free time in the 2019-2020 academic year working on programming robots and leading operations for the robotics team at Santa Monica College. The SMC robotics club participated in the VEX robotics competition, and I wrote a python script to parse a header file in our robot source code to generate a key bindings doc in the interest of improving QOL for the drivers and programmers (and to make a tool that could be used by the wider VEX community).
I built (along with Ariel Young, Justin Lin, and Tiffany Chieu) a platform for doctors to request 3D printed tools that are community sourced and vetted. This project took influence from the thingiverse platform/UI and from the story about volunteers producing 3D-printed valves for life-saving coronavirus treatments.
After seeing firsthand how devastating wildfires were to California over the past few years, I built (along with Ariel Young, Justin Lin, and Tiffany Chieu) an IoT mesh network that aggregates sensor data and detects/predicts the likelihood of wildfires given various environmental parameters. We used an open source mesh network and ESP8266 microcontrollers with various sensors (temperature, humidity, pressure, etc.) to communicate with an Arduino, stored the collected data in a database, wrote a risk prediction algorithm using Python, and displayed the prediction results in a cross platform smartphone app using Flutter.
Ariel Young and I worked together to implement the RSA encryption algorithm in Rust. We built a random number generator to generate extremely large numbers (1024 bit), then used the Miller Rabin primality test to sieve these numbers for primes to be used for the public/private keys. Implementing the algorithm was relatively straightforward, as there are many resources from which to understand the theory. We analyzed the "true randomness" of our random number generator using the Chi-squared test, and by creating a bitmap visualization of a sequence of randomly generated numbers.
Please feel free to check out my other projects on my GitHub.