Sarah M. Morin

Headshots_9-15-24_3.jpg

CS PhD student at UC Berkeley advised by Joe Hellerstein and Max Willsey.

Research

How can we bridge the gap between the powerful theoretical potential of programming languages research and its practical implementation in complex, real-world systems? I believe we can use novel languages, techniques, and formal frameworks to improve the performance, reliability, and security of distributed systems from the ground up.

My current project asks a deceptively simple question: when can we optimize a program by optimizing its pieces? Bellman’s principle of optimality – which forms the foundation of dynamic programming – tells us that an optimal solution is composed of optimal solutions to its sub-problems. But many optimization problems violate this principle in subtle ways: a locally suboptimal choice for a sub-problem might be exactly what’s needed to unlock a better solution downstream. Developers work around this with ad hoc, domain-specific techniques, but there is no general theory of when and why these heuristics are necessary.

My work develops such a theory: a general framework for determining precisely when the principle of optimality holds and a strategy for ““lifting” problems that violate it into a form that satisfies it. Additionally, I present the multe-graph, a compact data-structure for representing these compositional optimization problems that is a variant of a traditional e-graph. The goal is to draw a concrete connection between related ideas that have developed independently across optimization, algorithms, and programming languages research. Stay tuned for updates!

Background

I earned my B.S. in Computer Science from The George Washington University. During my time as an undergraduate I worked as a Research Assistant for Professor Poorvi Vora and contributed to several publications on risk-limiting audits to statistically verify election outcomes. I also served as a Teaching Assistant in the Computer Science Department and taught for the Computer Architecture, Systems Programming, and Discrete Structures courses.

After graduating from GW, I joined Oracle as a Software Engineer on the File System Storage team of Oracle Cloud Infrastructure (OCI) where I was later promoted to Member of Technical Staff. As a developer on the data-plane I was given the opportunity to tackle many complex problems in distributed storage such as introducing support for SMB protocol and building a user quota enforcement system.

I live in San Francisco with my partner, Gus, and our cats, Zuko (yes, as in Avatar: The Last Airbender) and Kiwi. In my free time, I enjoy cooking, knitting, playing pool, and watching hockey. Although I have quite a few hobbies, there is nothing I enjoy more than learning and solving problems.


latest posts

Dec 18, 2024 Design Documentation

selected publications

  1. Minerva– An Efficient Risk-Limiting Ballot Polling Audit
    Filip Zagórski, Grant McClearn, Sarah Morin, Neal McBurnett, and Poorvi L. Vora
    In 30th USENIX Security Symposium (USENIX Security ’21), Aug 2021
  2. A Note on Risk-Limiting Bayesian Polling Audits for Two-Candidate Elections
    Sarah Morin, Grant McClearn, Neal McBurnett, Poorvi L. Vora, and Filip Zagórski
    In Fifth Workshop on Advances in Secure Electronic Voting, Financial Cryptography, 2020