Mina Tahmasbi Arashloo joined the Cheriton School of Computer Science as an Assistant Professor in summer 2022. Before coming to the University of Waterloo, she was a Presidential Postdoctoral Fellow in the Department of Computer Science at Cornell University, working with Nate Foster and Rachit Agarwal. She received her PhD in computer science from Princeton, where she was advised by Jennifer Rexford. Mina also has a BSc in computer engineering from the Department of Computer Engineering at Sharif University of Technology.
Mina is interested primarily in networked systems, with a focus on software-defined networking and programmable data planes. She has focused recently on exploiting programmability to create networks that are verifiably robust across the stack, from the protocols themselves to the switch and network interface card hardware that processes packets.
The following is a lightly edited transcript of a Q and A interview.
When did you become interested in computer science and in networked systems?
My interest in computer science began in middle school. I was introduced to programming early on and it just clicked with me. I learned more about programming languages in high school and participated in extracurricular programming-related activities. I loved the programming courses and wanted to learn more. It’s fair to say that I was set on pursuing computer science as a career when I was in high school.
My interest in networking came later. I enjoyed all of my computer science courses as an undergrad and I didn’t have one that stood out until I took a particularly well-taught course on computer networking during my undergraduate studies. Coincidentally, the instructor who taught the networking course used the slides and syllabus that were developed by the professor who later was my PhD advisor at Princeton.
Part of my interest in networking stems from the nature of networking itself. Networking is naturally very distributed and modular. It’s not a single computer running a program. A network can have thousands of devices, each one of which has its own set of components, but whether small or large the components need to work together flawlessly. In practice, however, networks are anything but flawless and that’s why networking is a very active research area.
Networking is also a broad area in computer science in the sense that it has a little bit of every other area of computer science in it. That was ideal for me because at the time I couldn’t choose just one computer science area to pursue. If you study networking, you have the opportunity to learn and bring in ideas from other areas within computer science as well.
What attracted you to the Cheriton School of Computer Science?
The short answer is that I felt I could have a successful career at Waterloo — because computer science is very strong here — as well as a happy life.
During my interview, a question asked here but nowhere else was what I need to be happy. Having a successful career is a big part of fulfillment for every young academic, but other things are necessary for a fulfilling life and I thought I could have both at Waterloo. Seeing how everyone was invested in my professional and personal development was something quite unique to Waterloo.
Tell us a bit about your research.
My research is mostly on networked systems, any system where some components — for example, a computer, a server, a smart phone — are connected to communicate with each other or over the Internet.
Specifically, I work on programmable networks. Networks have to decide how to get traffic from one end point to another, and they have protocols and algorithms to do that. It used to be the case that vendors of network devices only implemented a fixed set of standardized protocols for common use cases and types of networks. However, if someone wanted to try something new, or needed an uncommon, nonstandard protocol for a special use case, they needed to spend years convincing the community that it is a good feature to have and that vendors should implement it.
This is a slow process, and for industries that operate their own networks it causes many problems and hinders innovation. But over the past decade or so, the community convinced the industry to create programmable devices, to open the hardware so users who buy these devices can program them. That created an exciting area in networking because now you could view your network as a giant computer you can program. Also, if a network is programmable, it can also be analyzed — you have a way to potentially formalize and verify it.
So, my research is in this general area of figuring out which are the right programming languages to use, developing compilers for them, and determining the right hardware to use for a programmable network, as well as formalizing and verifying networks.
Do you see opportunities for collaborative research, given the breadth and depth of work conducted at the School of Computer Science?
Waterloo’s School of Computer Science is among the largest in the world, and its size means that the breadth of research is amazing.
As I mentioned earlier, there’s a little bit of every computer science area in networking. My research is at the intersection of networking and computer architecture, programming languages and formal methods. I’m very much looking forward to collaborating with colleagues in all these areas and potentially other areas as well.
What do you see as your most significant contribution to date?
For a lot of our contributions time will tell what ends up being significant. You identify a problem, develop solutions, and years down the road you see how the solutions were received.
The contribution I’m most excited about — one that I hope will lead to a new research area — is the most recent work I did during my postdoc at Cornell. This work is about automatically analyzing network performance. Networks have become so large and complicated that most of the time when you design them you don’t have a good idea how they are going to behave in practice. And if there’s a large network outage, such as the recent Rogers outage, lives and businesses are disrupted.
Networks are only going to get more complex with time and with that ever harder to predict and manage. You can’t test for everything that might happen or go wrong. What we’re trying to do, which is at the intersection of networking and formal methods, is to automatically check all the scenarios that can happen and see if there are some where the network will not behave as expected — basically, do an exhaustive search of these scenarios automatically.
In the formal methods community, people have built amazing tools to conduct exhaustive searches of program inputs to verify programs. Given the trend toward programmable networks, we’re trying to use that to reason about network performance. The question we want to answer is: if I specify all the details of my network and the kind of performance I expect, is it possible to automatically find out if there are scenarios where the network will not provide satisfactory performance?
My colleagues and I recently submitted a paper that is the first step of one way to solve this problem. The work was on a small network with limited use cases, but we’re hoping to build upon that in the years to come. I think this work could have a large impact, but we’ll have to wait to see.
Who has inspired you most in your academic life?
Many people influenced me along the way, but my greatest inspiration is from Jennifer Rexford, my PhD advisor at Princeton.
Jen is an unquestionably accomplished researcher and a role model. Without judgement, she gives her students the space to find their passion, even if it is not aligned with her specific interest at the time. She is a mentor in the truest sense of the word. I was extremely lucky to be able to work with her and I’m hoping I can reproduce the experience I had with her for my students.
What do you do in your spare time?
My husband, who incidentally will be joining the School of Computer Science as faculty in 2023, and I enjoy the outdoors, mostly hiking and more recently biking.
We also have a passion for animal rescue. It’s been a large part of our lives since 2015. Almost every weekend, we have volunteered at an animal shelter in New Jersey. We love animals, especially dogs, and enjoy helping them find good homes.