I'm currently a 7th-semester Concurrent Degree candidate at Brown University. (What "Concurrent Degree" means is that I'm mostly an undergraduate who is pursuing a ScB in Computer Science, but I moonlight as a graduate student along the way in order to graduate with an ScM in Computer Science at the same time.)
My current technical and research interests focus on applied cryptography, systems security, usable security, programming languages, and computer science education. I am particularly interested in practical deployments of applied cryptography—in other words, how to architect cryptographic (and, more generally, secure) systems in ways that are practical and usable, solve real-world problems, and work under real-world constraints and assumptions.
I really like musical theater, lighting design, speech and debate, and rhythm games.
Created a port of TensorFlow.js for Pyret, a functional scripting language designed for education, to develop Pyret programs with machine learning capabilities. Prototyped implementations for a Pyret Jupyter “kernel” to support Pyret “notebooks” and a command-line Pyret REPL.
Co-developed automated sales lead information validation tool. Streamlined operations team workflows with Slack integrations and automated price comparison tools integrated with product vendor APIs. Optimized PostgreSQL queries for up to ~500x faster full-text searches.
Created client-facing system for customers to automatically schedule recurring orders. Set up continuous integration pipeline and co-wrote test suite from scratch for several thousand lines of code with over 70% coverage. Built web scrapers to automate previously manual product price point collection. Led development of company Ruby style guide.
An introduction to principles of computer security from an applied viewpoint and provides hands-on experience on security threats and countermeasures. Topics include cryptosystems, web security, network security, malware, code execution vulnerabilities, access control, cryptocurrencies, machine learning, and human and social issues. With Roberto Tamassia (2019, 2020) and Bernardo Palazzi (2021).
Explores the principles of modern programming languages by implementation; studies data and their types, including polymorphism, type inference, and type soundness; examines compiler and run-time system topics: continuation-passing style and garbage collection. With Shriram Krishnamurthi.
Functional programming, data structures, and algorithms in Racket and Pyret. Includes a summer component taught using the first half of How to Design Programs, then transitions to content based on portions of Programming and Programming Languages during the semester. With Shriram Krishnamurthi.
Introduction to programming in MATLAB and Python, with an emphasis on STEM data analysis and simulation problems. With Dan Potter.
Data-focused introduction to computer science using Pyret. With Kathi Fisler.
* Not enrolled in Fall 2019. Some notes on completing the Concurrent Degree can be found here.
During February 2017 – May 2017, in lieu of traditional courses, I participated in the “Social Justice Entrepreneurship” program, where I completed three days of service work and two days of senior thesis research every week. The final project, “Connecting for Good: Bridging the Digital Divide Through Effective Integration Policies”, focused on disparities on access to technology among different parts of the city and combined empirical research with in-person interviews from volunteer work as a Computer Science assistant in an elementary school in New York City.