Skip to main content

Aaron Weiss

PhD Student


Office Location

440 Huntington Avenue
308 West Village H
Boston, MA 02115


  • BS – UMass Amherst

About Me

  • Hometown: Princeton, New Jersey
  • Field of Study: Computer Science
  • PhD Advisor: Amal Ahmed


Aaron Weiss is a PhD student in the Computer Science program at Northeastern University’s Khoury College of Computer Sciences, 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.

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’m studying how to make systems programming safer, more effective, and more accessible to programmers.

What’s one problem you’d like to solve with your research/work?

Large software systems are increasingly dependent on a variety of interacting languages, but C’s dominance as the lingua franca of interop persists, despite great cost. Taking the view that systems programming is fundamentally about specifying interoperation between languages (rather than performance concerns), I would like to design a language that provides these capabilities safely.

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.

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.