My research is in the general intersection of software engineering with dynamic, resource constrained networks. I focus on programming abstractions, middleware, models, and tools that ease the programming burden in these complex, dynamic, and unpredictable environments. Here, I provide a highlight view of some current projects; for more information, please see the webpage of my research group, read some of my papers, or contact me directly.


Brace is a debugging framework for cyber-physical systems, which aims to alleviate the inherent complexities associated with ensuring correctness of systems that integrate both physical and logical components. Brace enables joint assertions over both the cyber (logical) and physical properties of a system and provides a middleware assertion library to simplify the tedious process of examining and validating system states.


Gander is a distributed search engine for mobile networked environments characterized by high volumes of short-lived data. We refer to these emerging types of environments as Personalized Networked Spaces (PNetS). In this project, we investigate both the redefinition of search in these environments, the ability to support engineering of PNetS applications given proper abstractions of search, and the spatiotemporal lifetimes and trajectories of information units in PNetS.


Grapevine is a framework developed for succinctly summarizing and efficiently sharing context information in pervasive computing environments. Grapevine focuses on entities in pervasive computing networks formulating localized views of context and enables coordinating entities to generate a view of their shared situations through efficient and expressive automated aggregation of individual context measures.


Our group does a variety of research related to middleware architectures for delay-tolerant networks. In general, our approaches focus on using adaptation to ensure that nodes in DTNs opportunistically and automatically make use of the available connection opportunities in these highly unpredictable environments. We have performed these adaptations at the "macro" level, adapting the entire network stack from a "traditional" mobile ad hoc network stack to a "delay-tolerant" network stack when conditions dictate such a change. We also explore this a the "micro" level, developing adaptations within the DTN stack that, for example, change the nature and behavior of network coding in response to contextual information.


Pharos is a testbed that supports the validation of perception, control, and coordination in pervasive and mobile computing environments. The testbed's physical space, hardware, software, and rich application scenarios support research and discovery at a variety of levels. We support research in sensor management, network coding, wireless protocols, localization, multi-agent coordination, fault-tolerant systems, and software simulation validation.