I am a first year PhD student in Computer Science and Engineering at UCSD, with a research focus on sustainable computing.
Passionate about increasing women and non-binary representation in STEM. Canadian expat. Aspiring Science Fiction writer. Interested in too many things.
Energy & Sustainability
Renee: New Life for Old Phones
Despite their nominal 10-year lifespan, most phones are decommissioned within 2 years. This represents not only a waste of computational power, but an acute environmental threat. Smartphones cannot be recycled by traditional means, and even when they do make their way to an E-waste recycling facility, these are often unregulated, employing child labor and exposing workers and the environment to hazardous chemicals. These short lifetimes also increase the carbon intensity of these devices, since as much as 84% of the greenhouse gases associated with smartphones is released during the manufacturing process.
An alternative approach is possible: Expanding the lifetime of discarded smartphones by reusing them for general computational tasks. Previous work has indicated the feasibility of this approach , but many systems challenges remain. Mobile operating systems tend to get in the way of long-term, unsupervised device deployments. For instance, Android includes several battery optimization settings that may kill background processes without warning. Smartphones also tend to boast less computational power than other consumer electronics, although recent performance trends are closing this gap.
We propose a distributed approach, with our smartphone server implemented as a cluster of used phones. We augment the cluster with a Raspberry Pi management device, which runs simple cluster management code to provide Function-as-a-Service capabilities. Our initial experience indicates that even 8 year old phones can be combined in such a manner to support common computing tasks, with improved energy efficiency compared to HPC devices. This strategy has the potential to reduce harmful e-waste, and provide an affordable, energy-efficient cloud-computing alternative.
Project landing page (may be out of date)
Preventing IPC-facilitated type confusion in Rust (M.Eng. Thesis)
Type-safe languages such as Rust can provide powerful type safety guarantees. However, these guarantees may not hold when multiple separately compiled processes communicate. For my M.Eng. thesis, I explored how type confusion vulnerabilities can still arise when multiple separately compiled, internally type-safe processes share information through inter-process communication (IPC). I created an augmented Rust compiler that (1) detects communications over IPC, and (2) inserts runtime checks to ensure that type safety is maintained.