Projects
Most puzzlehunts rely on gph-site, a Django-based framework. However, its use of Django Channels (WebSockets) can open excessive database connections, overloading the server. This is a major cause of site crashes and forces puzzlehunts to overprovision resources. We realized that we can fix this issue by decoupling the Websocket server from the main application. bph-site is the result of that. It has been used by 6+ puzzlehunts, serving over 7,000 participants. Among them are Brown Puzzlehunt, Puzzlethon, Penchant Hunt, and MIT Mystery Hatch.
Range analysis is used to prove properties about the range of values that a program can take on. These ranges enable optimizations such as dead-code and redundant-code elimination. We extended the Rust compiler with path-sensitive, intraprocedural analysis and a patcher module that computes these ranges and performs optimizations based on them.
Access frequency is an important factor in memory allocation. For example, hot objects can be colocated to improve TLB locality, while cold objects can be moved to slower but cheaper far memory. We extended TCMalloc with Troubridge, a system that uses an object’s call site to estimate its access frequency prior to allocation.
Courses often require students to run course-specific containers, which incurs significant storage overhead and introduces technical limitations when running multiple containers. We argue that multiple course environments can instead be run within a single shared container while preserving isolation.
I worked on the layout of the puzzle lists and added interactive story elements that appear throughout the heist.
I worked on Connections-inspired interactive puzzle called Moo York Times.
I built a massive interactive map and implemented the interactive puzzles Two Guards, Two Doors; Two Guards, Two Doors, a Boat, a River, and a Cabbage; and One Guard, Two Doors, and a Screen.
I built a Fog of War map and a jigzaw canvas for Josiah Carberry, Ph.D. and Josiah Carberry, Ph.D., Ph.D.