Software Engineer
Problem: Bloom filters are used ubiquitously due to their speed and memory efficiency in theory and in practice. However, the standard implementation of sufficiently large bloom filters suffers from page faults.
Solution: We can create a bloom filter implementation that guarantees one page access per operation. This minimizes page faults, thereby drastically improving efficiency. I show theoretically and empirically that this hierarchical implementation is expected to be faster than the standard implementation without altering the false positive rate.
Problem: Need for efficient persistent key-value storage with fast reads/writes.
Solution: SS Table database implementation in Rust providing sorted key-value storage with log-structured writes for high performance and crash recovery.
Problem: Every Rice student is assigned to an orientation week "family" and upperclassmen "parents". Students wonder how they are related to their peers in this family hierarchy, but there is no central place to do it.
Solution: A site that dynamically pulls and renders data about who belongs to which o-week family and how they all connect. Now, students can easily search and explore our family o-week tree. Currently over 5,164 students are represented in the dataset, and growing!
This is a fully functional search engine built from scratch made of three primary components: A web crawler to scrape and index the websites, search engine which quickly finds websites based on your query using a minhashtable and comparing relative frequency of trigrams, and a slick frontend using React, which interfaces with the backend engine.
Particle life is a particle simulator implemented in Golang showcasing emergent behavior. Each particle color is randomly assigned different repelling or attracting forces to other particles. This simple system displays emergent behavior as life like structures form under these simple constraints.