Stewart Grant

Stewart Grant

PhD Student
University of California San Diego
Computer Science


I am in year of my PhD at the University of California San Diego working with Alex Snoeren as part of the SysNets Group. My Research interests are at the intersection of distributed systems, networking, and operating systems. Prior to attending UCSD I completed an undergraduate and master's degree, working with Ivan Beschastnikh, at the University of British Columbia in 2016, and 2018 respectively.


Paper Repo SmartNIC Performance Isolation with FairNIC: Programmable Networking for the Cloud
Stewart Grant, Anil Yelam, Maxwell Bland, Alex Snoeren
Paper Bibtex Repo Dancing in the Dark: Private Multi-Party Machine Learning in an Untrusted Setting
Clement Fung, Jamie Koerner, Stewart Grant, Ivan Beschastnikh
Published at ArXiv
Paper Bibtex Slides Repo Demo Inferring and Asserting Distributed System Invariants
Stewart Grant, Hendrick Chech, Ivan Beschastnikh
International Conference ICSE 2018
Poster Abstract Repo Distributed Test Case Generation using Model Inference with Dara
Stewart Grant, Ivan Beschastnikh
Poster at NSDI 2018
poster abstract Inferring likely data invariants of distributed systems
Stewart Grant, Sam Creed, Ivan Beschastnikh
Poster at SOSP 2015


Fairnic (Fair performance isolation on SOC SmartNICs

Fairnic enables Cloud providers to offload their tenants custom applications to SOC SmartNICS. Tenants can effect eachothers performace negativly if not isolated. FairNIC isolates bandwidth, caches, and hardware accelerators.

Dara (distributed dynamic verification)

Dara models distributed systems based soely on state traces. The model is verified using the SPIN model checker against user defined assertions. Dara's can infer new exections not present in input traces and check them for violations of safty and liveness conditions.

Dinv (automatic distributed invariant detector)

Distributed systems are complex and require meticulous development to correctly handle asynchronous execution, and partial failures. DInv is a tool for automatically detecting likely data invariants in distributed systems. Data invariants are useful for verifying the correctness of a system

Distributed Clocks (vector clock library and instrumentation tool)

Vector clocks are useful for reasoning about concurrency and developing protocols. DistributedClocks is an optimized vector clock library for Go, Java, C and C++. It also provides an instrumentation tool for automatically added vector clocks to programs using Go's net library.

TorMentor (anonymous distributed machine learning)

TorMentor is a collaborative machine learning framework that operates through Tor. TorMentor clients participate in a federated learning algorithm. Clients are protected from the de-anonymization of their data via differential privacy.

Dovid (automatic distributed system documenter)

Distributed systems can be difficult to understand from just reading source code. The most integral part of a distributed system is its network communication. Dovid automatically detects network communication and generates documentation for variables which either affect or are affected by network communication.

Department Leadership

  • Faculty Candidate Student Panel Organizer 2019
  • Effective Writing Group Organizer 2019-Present --- Summer '19 | Summer '20



Extracurricularly, I enjoy rock climbing, juggling, Solving twisty puzzles and watching sumo. I also have a giant softspot for the art of, and influenced by the Preraphelite Brotherhood.