I am currently a software engineer at Applied Intuition where I work on the DevOps team. I was previously a technology analyst at Roivant Sciences. I studied Computer Science and Economics at Williams College.
As an undergraduate at Williams, I conducted research in the field of combinatorial generation. My research focused on efficiently generating certain sets of Catalan objects, specifically Ćukasiewicz words and ordered trees (plane trees).
A Shift Gray Code for Fixed-Content Lukasiewicz Words (pdf) - Read an illustrated summary here!
A paper that I presented at the University of Trier for the 33rd International Workshop on Combinatorial Algorithms (IWOCA 2022). Published by Springer, also available on ResearchGate.
A joint work with my thesis advisor, Aaron Williams, this paper provides the first shift Gray code for fixed content Lukasiewicz words. This was one of two main results from my honors thesis.
Pop & Push: Ordered tree iteration in O(1)-time (pdf)
A paper that I presented at the 33rd International Symposium on Algorithms and Computation (ISAAC 2022).
Also a joint work with my thesis advisor, Aaron Williams, this paper provides the first "pull Gray code" for exhaustively generating Ordered trees with n nodes. The algorithm described in this paper generates each tree in worst-case O(1) time, evaluating only three conditionals per generated tree.
Honors Thesis: Cooler than Cool: Cool-Lex Order for Generating New Combinatorial Objects (pdf)
My honors thesis in computer science at Williams College. This thesis includes two main results:
The first Gray code for generating fixed content Lukasiewicz words, presented at IWOCA 2022
A pull Gray code for generating ordered trees with a fixed number of nodes, to be presented this winter at at ISAAC 2022
Both results include an implementation that generates each object in worst-case O(1) time. Source code is available in C; both projects can be built make on systems with gcc.
Serverless: For some, serverless means letting AWS, Azure, or Google Cloud abstract away server interaction from the programmer.
These services are serverless in the same sense that hiring someone else to build your house is "constructionless."
This website is serverless in a different sense: it runs on a Raspberry Pi in my parents' basement (pictured to the right). While this paradigm is not truly serverless either, the fact that my server is smaller than a deck of cards allows me to feel closer to a true serverless experience.
No javascript: absent javascript, the web is fast. This website is small and will load quickly on any device.