440 Huntington Avenue
308 West Village H
Boston, MA 02115
Aaron Weiss is a PhD student in the Computer Science program at Northeastern University’s College of Computer and Information Science, advised by Professor Amal Ahmed. Aaron’s research focuses on using compilers and type systems to improve programmers’ ability to reason about programs, especially in the context of security. Before coming to Northeastern, Aaron earned his Bachelor of Science from the University of Massachusetts, Amherst where he was advised by Professor Arjun Guha.
- BS – UMass Amherst
- Hometown: Princeton, New Jersey
- Field of Study: Computer Science
- PhD Advisor: Amal Ahmed
What are the specifics of your graduate education (thus far)?
I’m a PhD student at Northeastern, but I spent my first year at Inria Paris with the Prosecco team which works at the intersection of programming languages and cryptography. As an undergraduate, I applied semantics to system configuration languages to build tools that prove formal properties of configurations (determinacy, idempotency, etc.) and to build editing abstractions that enable programmers to repair configurations quickly and easily.
What are your research interests in a bit more detail? Is your current academic/research path what you always had in mind for yourself, or has it evolved somewhat? If so, how/why?
Broadly, I am interested in bridging the gap between the theory of programming languages and the practice of software engineering by building tools, languages, and abstractions that enable programmers to build more reliable, more secure, and more performant software. Right now, I want to build programming language tools for verified and secure multi-party computation.
What’s one problem you’d like to solve with your research/work?
With increasingly centralized digital systems threatening privacy, I’m enamored with the idea of cryptographically-secure decentralized computing. It’s a big space, but I hope to build linguistic foundations for building such systems.
What aspect of what you do is most interesting/fascinating to you? What aspects of your research (findings, angles, problems you’re solving) might surprise others?
As I learned from my undergraduate advisor Arjun, one of the most fun ways to approach programming languages research is to look at domains that are increasingly important in practice (like system configuration, cryptography, or distributed computation), find the problems that existing tools and abstractions fail to address, and build solutions on a solid foundation of modern PL theory. Programming languages themselves are interesting to me, but I’m even more interested in using them to build a better tomorrow.
What are your research/career goals, going forward?
Systems today are increasingly written in a variety of inter-operating languages and distributed across many devices, including both servers and personal devices. These complexities have allowed us to tackle bigger and bigger problems, but they’ve come at the cost of making software engineering more and more difficult. I want to make it easier for software engineers to build complex software systems – with many languages, running on many devices – without mistakes. I want to live in a world where data is decentralized, programs are provably correct, and computation is distributed, and I hope I can do my part to help make that a reality.
Where did you grow up/spend the most defining years of your childhood/young adulthood?
I grew up in a suburban New Jersey town just outside of Princeton.