I'm a PhD candidate in Computer Science at Cornell University. I'm interested in programming languages as a medium for human thought, expression and interaction with computer systems.
My work applies ideas and tools from programming languages to software-defined networks, optical networks and most recently, legal reasoning.
ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS 2017)
IEEE/ACM Transactions on Networking, 2017 (journal version, accepted with minor revisions)
2017 Optical Fiber Communication Conference (OFC); SDN/NFV Demonstration Zone
10th International Conference on emerging Networking EXperiments and Technologies (CoNEXT '14).
Proceedings of the Twelfth ACM Workshop on Hot Topics in Networks (HotNets-XII)
Proceedings of the 26th IEEE International Conference on Software Maintenance (ICSM 2010).
Proceedings of the National Conference on Undergraduate Research, 2009.
January 2016 -- Now
Software-Defined Networking has promised to herald a new era of programmable, commoditized networking infrastructure. However, there are still large legacy networks in operation with predefined topologies and policies and limited or non-existent SDN support. Thus, to make the most of their networks, administrators today must figure out how best to combine the flexibility of SDN-enabled edge switches and a rigid, existing forwarding fabric. SpecNetKAT allows users to write policies for a network assuming pervasive SDN capabilities. A compiler then rewrites such policies to work on an immutable fabric and an SDN-enabled edge, while preserving certain user-specified properties.
March 2013 -- September 2014
Modern networks are composed of many devices and must satisfy the needs of many users. Merlin is a project to develop high-level abstractions for programming such networks. The core of Merlin is a program that multiple administrators to control networks composed of heterogenous devices like switches, middleboxes and end-hosts.
February 2012 -- March 2013
A novel architecture for datacenter network management using end hosts to perform the majority of the packet processing work. A component of the Frenetic project.
January -- May 2011
Threaded, concurrent Actors in Ruby using a prototype-based programming style. Makes extensive use of Ruby's metaprogramming abilities