CV
Education
- BA in Computer Science, Williams College, 2001
- MPhil in History and Philosophy of Science and Medicine, University of Cambridge, 2008
- PhD in Computer and Information Science, University of Pennsylvania, 2009
Academic Positions
- 2022–2023, Associate Dean for Research (Interim), Cornell University
- 2021–present, Professor, Cornell University
- 2016–2021, Associate Professor, Cornell University
- 2010–2016, Assistant Professor, Cornell University
- 2009–2010, Postdoctoral Researcher, Princeton University
Visiting Positions
- 2023–present, Visiting Professor, École Polytechnique Fédérale de Lausanne
- 2016–2017, Visiting Assistant Professor, Stanford University
Industry Positions
- 2023–present, Visiting Faculty, Jane Street
- 2019–2023, Platform Architect, Intel
- 2016–2019, Principal Research Engineer, Barefoot Networks
Awards & Fellowships
- 2023 ACM SIGPLAN Robin Milner Award
- 2018 ACM SIGCOMM Rising Star Award
- 2013 National Science Foundation CAREER Award
- 2012 Alfred P. Sloan Fellowship
- 2004 National Science Foundation Graduate Research Fellowship
- 2001 Herschel Smith Fellowship
Paper Awards
- 2023 Distinguished Paper Award, ACM SIGPLAN OOPSLA
- 2021 Most Influential Paper, ACM SIGPLAN ICFP
- 2020 Best Paper Award, ACM SIGCOMM CoNEXT
- 2020 Distinguished Paper Award, ACM SIGPLAN POPL
- 2019 Best Student Paper Award, ACM SIGCOMM
- 2018 Best Paper Award, USENIX NSDI
- 2016 ACM SIGPLAN Research Highlight
- 2015 Most Influential Paper, ACM SIGPLAN POPL
- 2013 Community Award, USENIX NSDI
University Awards
- 2021 Research Excellence Award, Bowers College of Computing and Information Science, Cornell University
- 2018 James and Mary Tien Teaching Award, College of Engineering, Cornell University
- 2016 Research Excellence Award, College of Engineering, Cornell University
- 2013 Michael Tien ‘72 Teaching Award, College of Engineering, Cornell University
Publications
-
Formal Abstractions for Packet Scheduling
Anshuman Mohan, Yunhe Liu, Nate Foster, Tobias Kappé, and Dexter Kozen.
In OOPSLA 2023.
-
P4Testgen: An Extensible Test Oracle For P4-16
Fabian Ruffy, Jed Liu, Prathima Kotikalapudi, Vojtech Havel, Hanneli Tavante, Rob Sherwood, Vladyslav Dubina, Volodymyr Peschanenko, Anirudh Sivaraman, and Nate Foster.
In SIGCOMM 2023.
-
Hydra: Effective Runtime Network Verification
Sundararajan Renganathan, Benny Rubin, Hyojoon Kim, Pier Luigi Ventre, Carmelo Cascone, Daniele Moro, Charles Chan, Nick McKeown, and Nate Foster.
In SIGCOMM 2023.
-
P4Cub: A Little Language for Big Routers
Rudy Peterson, Eric Campbell, John Chen, Natalie Isak, Calvin Shyu, Ryan Doenges, Parisa Ataei, and Nate Foster.
In CPP 2023.
-
Causal Network Telemetry
Yunhe Liu, Nate Foster, and Fred Schneider.
In EuroP4 2022.
-
A Programming Language for Future Interests
Shrutarshi Basi, Nate Foster, James Grimmelman, James Grimmelman, Shan Parikh, and Ryan Richardson.
In YJoLT 2022.
-
Leapfrog: Certified Equivalence for Protocol Parsers
Ryan Donges, Tobias Kappé, John Sarracino, Nate Foster, and Greg Morrisett.
In PLDI 2022.
-
Dependently-Typed Data Plane Programming
Matthias Eichholz, Eric Campbell, Matthias Krebs, Nate Foster, and Mira Mezini.
In POPL 2022.
-
Avenir: Managing Data Plane Diversity with Control Plane Synthesis
Eric Hayden Campbell, William T. Hallahan, Priya Srikumar, Carmelo Cascone, Jed Liu, Vignesh Ramamurthy, Hossein Hojjat, Ruzica Piskac, Robert Soulé, and Nate Foster.
In USENIX NSDI 2021.
-
Petr4: Formal Foundations for P4 Data Planes
Ryan Doenges, Mina Tahmasbi Arashloo, Santiago Bautista, Alexander Chang, Newton Ni, Samwise Parkinson, Rudy Peterson, Alaia Solko-Breslin, Amanda Xu, and Nate Foster.
In PACM (POPL) 2021.
-
Using Deep Programmability to Put Network Owners in Control
Nate Foster, Nick McKeown, Jennifer Rexford, Guru Parulkar, Larry Peterson, and Oguz Sunay.
In SIGCOMM CCR 2020.
-
Forwarding and Routing with Packet Subscriptions
Theo Jepsen, Ali Fattaholmanan, Masoud Moshref, Nate Foster, Antonio Carzaniga, and Robert Soule.
In CoNEXT 2020.
-
Composing Dataplane Programs with μP4
Hardik Soni, Myriana Rifai, Praveen Kumar, Ryan Doenges, and Nate Foster.
In SIGCOMM 2020.
-
Guarded Kleene Algebra with Tests: Verification of Uninterpreted Programs in Nearly Linear Time
Steffen Smolka, Nate Foster, Justin Hsu, Tobias Kappé, Dexter Kozen, and Alexandra Silva.
In PACMPL (POPL) 2020.
-
Proof Carrying Network Code
Christian Skalka, John Ring, David Darias, Minseok Kwon, Sahil Gupta, Kyle Diller, Steffen Smolka, and Nate Foster.
In CCS 2019.
-
Ancile: Enhancing Privacy for Ubiquitous Computing with Use-Based Privacy
Eugene Bagdasaryan, Griffin Berlstein, Jason Waterman, Eleanor Birrell, Nate Foster, Fred B. Schneider, and Deborah Estrin.
In WPES 2019.
-
How to Avoid Making a Billion-Dollar Mistake: Type-Safe Data Plane Programming with SafeP4
Matthias Eichholz, Eric Campbell, Nate Foster, Guido Salvaneschi, and Mira Mezini.
In ECOOP 2019.
-
TxForest: A DSL for Concurrent Data Stores
Jonathan DiLorenzo, Kathryn Mancini, Kathleen Fisher, and Nate Foster.
In APLAS 2019.
-
PicNIC: Predictable Virtualized NIC
Praveen Kumar, Nandita Dukkipati, Nathan Lewis, Yi Cui, Yaogong Wang, Chonggang Li, Valas Valancius, Jake Adriaens, Steve Gribble, Nate Foster, and Amin Vahdat.
In SIGCOMM 2019.
-
Scalable Verification of Probabilistic Networks
Steffen Smolka, Praveen Kumar, Nate Foster, Justin Hsu, Dexter Kozen, and Alexandra Silva.
In PLDI 2019.
-
Efficient, Consistent Distributed Computation with Predictive Treaties
Tom Magrino, Jed Liu, Nate Foster, Johannes Gehrke, and Andrew C. Myers.
In EuroSys 2019.
-
Packet Subscriptions for Programmable ASICs
Theo Jepsen, Masoud Moshref, Antonio Carzaniga, Nate Foster, and Robert Soule.
In HotNets 2018.
-
p4v: Practical Verification for Programmable Data Planes
Jed Liu, William Hallahan, Cole Schlesinger, Milad Sharif, Jeongkeun Lee, Robert Soule, Han Wang, Cualin Cacscaval, Nick McKeown, and Nate Foster.
In SIGCOMM 2018.
-
Life in the Fast Lane: A Line-Rate Linear Road
Theo Jepsen, Masoud Moshref, Antonio Carzaniga, Nate Foster, and Robert Soule.
In SOSR 2018.
-
YATES: Rapid Prototyping for Traffic Engineering Systems
Praveen Kumar, Chris Yu, Yang Yuan, Nate Foster, Robert Kleinberg, and Robert Soule.
In SOSR 2018.
-
Semi-Oblivious Traffic Engineering: The Road Not Taken
Praveen Kumar, Yang Yuan, Chris Yu, Nate Foster, Robert Kleinberg, Petr Lapukhov, Chiun Lin Lim, and Robert Soule.
In NSDI 2018.
-
NetChain: Scale-Free Sub-RTT Coordination
Xin Jin, Xiaozhou Li, Haoyu Zhang, Nate Foster, Jeongkeun Lee, Robert Soule, Changhoon Kim, and Ion Stoica.
In NSDI 2018.
-
NetCache: Balancing Key-Value Stores with Fast In-Network Caching
Xin Jin, Xiaozhou Li, Haoyu Zhang, Robert Soule, Jeongkeun Lee, Nate Foster, Changhoon Kim, and Ion Stoica.
In SOSP 2017.
-
Life on the Edge: Unraveling Policies into Configurations
Shrutarshi Basu, Nate Foster, Hossein Hojjat, Paparao Palacharla, Christian Skalka, and Xi Wang.
In ANCS 2017.
-
P4FPGA: A Rapid Prototyping Framework for P4
Han Wang, Robert Soulé, Huynh Tu Dang, Ki Suh Lee, Vishal Shrivastav, Nate Foster, and Hakim Weatherspoon.
In SOSR 2017.
-
Cantor Meets Scott: Semantic Foundations for Probabilistic Networks
Steffen Smolka, Praveen Kumar, Nate Foster, Dexter Kozen, and Alexandra Silva.
In POPL 2017.
-
Incremental Forest: A DSL for Efficiently Managing Filestores
Jonathan DiLorenzo, Richard Zhang, Erin Menzies, Kathleen Fisher, and Nate Foster.
In ACM SIGPLAN Conference on Object-Oriented Programming Languages, Systems, and Applications (OOPSLA), Amsterdam, Netherlands 2016.
-
Optimizing Horn Solvers for Network Repair
Hossein Hojjat, Phillip Reummer, Jedidiah McClurg, Pavol Cerny, and Nate Foster.
In FMCAD 2016.
-
Consistent Network Updates in Polynomial Time
Pavol Cerny, Nate Foster, Nilesh Jagnik, and Jedidiah McClurg.
In DISC 2016.
-
Event-Driven Network Programming
Jedidiah McClurg, Hossein Hojjat, Nate Foster, and Pavol Cerny.
In PLDI 2016.
-
Safe and Flexible Controller Upgrades for SDNs
Karla Saur, Joseph Collard, Nate Foster, Arjun Guha, Laurent Vanbever, and Michael Hicks.
In SOSR 2016.
-
Felix: Implementing Traffic Measurement on End Hosts Using Program Analysis
Haoxian Chen, Nate Foster, Jake Silverman, Michael Whittaker, Brandon Zhang, and Rene Zhang.
In SOSR 2016.
-
Probabilistic NetKAT
Nate Foster, Dexter Kozen, Konstantinos Mamouras, Mark Reitblatt, and Alexandra Silva.
In ESOP 2016.
-
Formal Foundations for Networking (Dagstuhl Seminar 15071)
Nikolaj Bjorner, Nate Foster, Philip Brighten Godfrey, and Pamela Zave.
In Dagstuhl Reports 2015.
-
A Fast Compiler for NetKAT
Steffen Smolka, Spiridon Eliopoulos, Nate Foster, and Arjun Guha.
In ICFP 2015.
-
The Homeostasis Protocol: Avoiding Transaction Coordination Through Program Analysis
Sudip Roy, Lucja Kot, Gabriel Bender, Bailu Ding, Hossein Hojjat, Christoph Koch, Nate Foster, and Johannes Gehrke.
In SIGMOD 2015.
-
Efficient Synthesis of Network Updates
Jedidiah McClurg, Hossein Hojjat, Pavol Cerny, and Nate Foster.
In PLDI 2015.
-
A Coalgebraic Decision Procedure for NetKAT
Nate Foster, Dexter Kozen, Mae Milano, Alexandra Silva, and Laure Thompson.
In POPL 2015.
-
Merlin: A Language for Provisioning Network Resources
Robert Soul'e, Shrutarshi Basu, Parisa Jalili Marandi, Fernando Pedone, Robert Kleinberg, Emin Gun Sirer, and Nate Foster.
In CoNEXT 2014.
-
Abstractions for Software-Defined Networks
Martin Casado, Nate Foster, and Arjun Guha.
In CACM 2014.
-
NetKAT: Semantic Foundations for Networks
Carolyn Jane Anderson, Nate Foster, Arjun Guha, Jean-Baptiste Jeannin, Dexter Kozen, Cole Schlesinger, and David Walker.
In POPL 2014.
-
Managing the Network with Merlin
Robert Soule, Shrutarshi Basu, Robert Kleinberg, Emin Gun Sirer, and Nate Foster.
In HotNets 2013.
-
Toward Synthesis of Network Updates
Andrew Noyes, Todd Warszawski, Pavol Cerny, and Nate Foster.
In SYNT Workshop 2013.
-
HotSwap: Correct and Efficient Controller Upgrades for Software-Defined Networks
Laurent Vanbever, Joshua Reich, Theophilus Benson, Nate Foster, and Jennifer Rexford.
In HotSDN 2013.
-
FatTire: Declarative Fault Tolerance for Software-Defined Networks
Mark Reitblatt, Marco Canini, Arjun Guha, and Nate Foster.
In HotSDN 2013.
-
Machine-Verified Network Controllers
Arjun Guha, Mark Reitblatt, and Nate Foster.
In PLDI 2013.
-
Composing Software Defined Networks
Christopher Monsanto, Joshua Reich, Nate Foster, Jennifer Rexford, and David Walker.
In NSDI 2013.
-
Languages for software-defined networks
Nate Foster, Arjun Guha, Mark Reitblatt, Alec Story, Michael J. Freedman, Naga Praveen Katta, Christopher Monsanto, Joshua Reich, Jennifer Rexford, Cole Schlesinger, David Walker, and Rob Harrison.
In IEEE Communications Magazine 2013.
-
Abstractions for Network Update
Mark Reitblatt, Nate Foster, Jennifer Rexford, Cole Schlesinger, and David Walker.
In SIGCOMM 2012.
-
Splendid Isolation: A Slice Abstraction for Software-Defined Networks
Stephen Gutz, Alec Story, Cole Schlesinger, and Nate Foster.
In HotSDN 2012.
-
Three Complementary Approaches to Bidirectional Programming
Nate Foster, Kazutaka Matsuda, and Janis Voigtlander.
In Spring School on Generic and Indexed Programming (SSGIP) 2012.
-
A Compiler and Run-time System for Network Programs
Christopher Monsanto, Nate Foster, Rob Harrison, and David Walker.
In POPL 2012.
-
Specifying and Verifying the Correctness of Dynamic Software Updates
Stephen Magill, Christopher M. Hayden, Michael Hicks, Nate Foster, and Jeffrey S. Foster.
In VSTTE 2012.
-
Language Abstractions for Software-Defined Networks
Nate Foster, Michael J. Freedman, Rob Harrison, Christopher Monsanto, Mark Reitblatt, Jennifer Rexford, Alec Story, and David Walker.
In LADA Workshop 2012.
-
A Pairwise Abstraction for Round-Based Protocols
Lonnie Princehouse, Nate Foster, and Ken Birman.
In LADA Workshop 2012.
-
Consistent Updates for Software-Defined Networks: Change You Can Believe In!
Mark Reitblatt, Nate Foster, Jennifer Rexford, and David Walker.
In HotNets 2011.
-
Frenetic: A Network Programming Language
Nate Foster, Rob Harrison, Michael J. Freedman, Christopher Monsanto, Jennifer Rexford, Alec Story, and David Walker.
In ICFP 2011.
-
Forest: A Language and Toolkit for Programming With Filestores
Kathleen Fisher, Nate Foster, David Walker, and Kenny Q. Zhu.
In ICFP 2011.
-
Frenetic: A High-Level Langauge for OpenFlow Networks
Nate Foster, Rob Harrison, Matthew L. Meola, Michael J. Freedman, Jennifer Rexford, and David Walker.
In PRESTO Workshop 2010.
-
Bidirectional Programming Languages
John Nathan Foster.
In PhD Dissertation, University of Pennsylvania 2009.
-
Matching Lenses: Alignment and View Update
Davi M. J. Barbosa, Julien Cretin, Nate Foster, Michael Greenberg, and Benjamin C. Pierce.
In ICFP 2010.
-
Provenance: A Future History
James Cheney, Stephen Chong, Nate Foster, Margo Seltzer, and Stijn Vansummeren.
In Onward! 2009.
-
Bidirectional Transformations: A Cross-Discipline Perspective. GRACE Meeting notes, state of the art, and outlook
Krzysztof Czarnecki, J. Nathan Foster, Zhenjiang Hu, Ralf Lammel, Andy Schurr, and James F. Terwilliger.
In ICMT 2009.
-
Updatable Security Views
J. Nathan Foster, Benjamin C. Pierce, and Steve Zdancewic.
In CSF 2009.
-
Provenance and Data Synchronization
J. Nathan Foster, and Grigoris Karvounarakis.
In IEEE Data Engineering Bulletin 2007.
-
Annotated XML: Queries and Provenance
J. Nathan Foster, Todd J. Green, and Val Tannen.
In PODS 2008.
-
Boomerang: Resourceful Lenses for String Data
Aaron Bohannon, J. Nathan Foster, Benjamin C. Pierce, Alexandre Pilkiewicz, and Alan Schmitt.
In POPL 2008.
-
Quotient Lenses
J. Nathan Foster, Alexandre Pilkiewcz, and Benjamin C. Pierce.
In ICFP 2008.
-
A Generic Programming Toolkit for PADS/ML: First-Class Upgrades for Third-Party Developers
Mary Fernandez, Kathleen Fisher, J. Nathan Foster, Michael Greenberg, and Yitzhak Mandelbaum.
In PADL 2008.
-
An Algebraic Approach to XQuery View Maintenance
J. Nathan Foster, Ravi Konuru, Jerome Simeon, and Lionel Villard.
In PLAN-X 2008.
-
A Logic Your Typechecker Can Count On: Unordered Tree Types in Practice
J. Nathan Foster, Benjamin C. Pierce, and Alan Schmitt.
In PLAN-X 2007.
-
Actions Louder Than Words? MSO-Definable Transductions
J. Nathan Foster.
In Written Preliminary Exam II, UPenn CIS 2006.
-
A Theory of Featherweight Java in Isabelle/HOL
J. Nathan Foster, and Dimitrios Vytiniotis.
In Archive of Formal Proofs 2006.
-
Harmony Programmer's Manual
J. Nathan Foster, Benjamin C. Pierce, and Alan Schmitt.
In 2006.
-
Boomerang Programmer's Manual
J. Nathan Foster, and Benjamin C. Pierce.
In 2008.
-
Harmony: A Generic Synchronization Framework for Heterogeneous, Replicated Data
J. Nathan Foster.
In 2005.
-
Exploiting Schemas in Data Synchronization
J. Nathan Foster, Michael B. Greenwald, Christian Kirkegaard, Benjamin C. Pierce, and Alan Schmitt.
In Journal of Computer and System Sciences 2007.
-
Exploiting Schemas in Data Synchronization
J. Nathan Foster.
In 2005.
-
Contexts, Boxes, and Names, Oh My!
J. Nathan Foster.
In 2003.
-
Mechanized Metatheory for the Masses: The POPLmark Challenge
Brian E. Aydemir, Aaron Bohannon, Matthew Fairbairn, J. Nathan Foster, Benjamin C. Pierce, Peter Sewell, Dimitrios Vytiniotis, Geoffrey Washburn, Stephanie Weirich, and Steve Zdancewic.
In TPHOLS 2005.
-
Combinators for Bidirectional Tree Transformations: A Linguistic Approach to the View Update Problem
J. Nathan Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, and Alan Schmitt.
In TOPLAS 2007.
-
Combinators for Bidirectional Tree Transformations: A Linguistic Approach to the View Update Problem
J. Nathan Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, and Alan Schmitt.
In POPL 2005.
-
LOOJ: Weaving LOOM into Java
Kim B. Bruce, and J. Nathan Foster.
In ECOOP 2004.
-
Indexicals and Belief Reports
J N Foster.
In MPhil Thesis, Cambridge History and Philosophy of Science and Medicine 2003.
-
Model Checking for a Functional Hardware Description Language
John N Foster.
In Tripos Dissertation, Cambridge Computer Laboratory 2002.
-
Rupiah: Towards an Expressive Static Type System for Java
John N Foster.
In Senior Honors Thesis, Williams Computer Science 2001.