I am an applied scientist at Amazon Web Services (AWS). I work on networks, security, and formal methods.
Prior to AWS, I was a software engineer at Intentionet, working on network verification and intent-based networking. I was one of the core maintainers of Batfish (and Pybatfish) — open source tools for network validation and analysis.
Before joining Intentionet I received a Ph.D. from Department of Computer Science at University of North Carolina at Chapel Hill, where I was advised by professor Michael K. Reiter. I was also fortunate to have professor Vyas Sekar as my collaborator and adviser.
My dissertation explored the intersection of Software-Defined Networking (SDN) and global network optimization. In particular, I looked at how to efficiently write and execute SDN applications that try to perform optimal resource management (e.g., traffic engineering) in the SDN world. As a result, I ended up developing a library called SOL for expression and composition SDN resource-management applications.
Among other things, I also worked with network intrusion detection systems, looked at patterns of malware infections, and tested microservice applications. See full list of publications here.
Below is a list of publicly-available projects I am (or was) involved in.
Batfish is a network configuration analysis tool that can find network issues and guarantee the correctness of (planned or current) network configurations.
With Batfish, network operators can:
- ensure their configurations are provably correct
- reason about dataplane reachability and security of their network; and
- analyze proposed changes to their networks
It is as essential tool for anyone seriously considering network automation.
SOL and Chopin — SDN and network optimization
SOL is a framework that simplifies writing new network optimization applications atop SDN controllers. It abstracts away low-level optimization details and interacts with the SDN controller on user’s behalf.
Chopin1 is an extension to the SOL framework that allows optimal composition of multiple applications.
Together, give the ability for network operators to quickly prototype and deploy optimization applications (to load-balance traffic, minimize latency, etc.) on top of an SDN controller.
TMgen — Traffic matrix generation
A Python library for traffic matrix generation. In my research I had to generate a variety of spatial and temporal traffic matrices, so I open-sourced a library for his very purpose. It supports generation of both:
- basic traffic matrices (uniform, exponential, gravity), and
- more interesting spatio-temporal traffic matrices based on recent research.
Gremlin — microservice resilience testing
On an internship at IBM Research, I helped start a project for resiliency testing of microservice applications at the network level. Using SDN ideas (e.g., split of control and data plane), we had built an automated testing framework for ensuring that microservice applications are resistant to failures. Some ideas from our project have been incorporated into the IBM Service Proxy. The research prototypes are available on our GitHub project page.