- Software System Performance and Reliability
- Software Engineering Research
- Software Testing and Debugging Techniques
- Cloud Computing and Resource Management
- Distributed systems and fault tolerance
- Caching and Content Delivery
- Software-Defined Networks and 5G
- Advanced Software Engineering Methodologies
- Adversarial Robustness in Machine Learning
- Peer-to-Peer Network Technologies
- Privacy-Preserving Technologies in Data
- Distributed and Parallel Computing Systems
- Blockchain Technology Applications and Security
- Software Reliability and Analysis Research
- Advanced Data Storage Technologies
- Cryptography and Data Security
- Security and Verification in Computing
- Open Source Software Innovations
- Advanced Malware Detection Techniques
- Web Application Security Vulnerabilities
- Advanced Optical Network Technologies
- IoT and Edge/Fog Computing
- Internet Traffic Analysis and Secure E-voting
- Network Security and Intrusion Detection
- Formal Methods in Verification
University of British Columbia
2016-2025
Okanagan University College
2024
University of Bamberg
2022
Pontificia Universidad Católica de Chile
2022
Università della Svizzera italiana
2019-2022
École de Technologie Supérieure
2022
University of Nebraska–Lincoln
2019-2022
University of Washington
2007-2021
Victoria University of Wellington
2019-2020
University of Duisburg-Essen
2019-2020
Machine learning (ML) over distributed multi-party data is required for a variety of domains. Existing approaches, such as federated learning, collect the outputs computed by group devices at central aggregator and run iterative algorithms to train globally shared model. Unfortunately, approaches are susceptible attacks, including model poisoning, which made substantially worse in presence sybils. In this paper we first evaluate vulnerability sybil-based poisoning attacks. We then describe...
Federated Learning is the current state-of-the-art in supporting secure multi-party machine learning (ML): data maintained on owner's device and updates to model are aggregated through a protocol. However, this process assumes trusted centralized infrastructure for coordination, clients must trust that central service does not use byproducts of client data. In addition this, group malicious could also harm performance by carrying out poisoning attack. As response, we propose Biscotti: fully...
Computer systems are often difficult to debug and understand. A common way of gaining insight into system behavior is inspect execution logs documentation. Unfortunately, manual inspection an arduous process documentation incomplete out sync with the implementation.
Concurrent systems are notoriously difficult to debug and understand. A common way of gaining insight into system behavior is inspect execution logs documentation. Unfortunately, manual inspection an arduous process, documentation often incomplete out sync with the implementation.
Successful online communities have complex cooperative arrangements, articulations of work, and integration practices. They require technical infrastructure to support a broad division labor. Yet the research literature lacks empirical studies that detail which types work are valued by participants in an community. A content analysis Wikipedia barnstars -- personalized tokens appreciation given reveals wide range extending far beyond simple editing include social support, administrative...
Distributed storage systems often trade off strong semantics for improved scalability. This paper describes the design, implementation, and evaluation of Scatter, a scalable consistent distributed key-value system. Scatter adopts highly decentralized self-organizing structure peer-to-peer systems, while preserving linearizable consistency even under adverse circumstances. Our prototype implementation demonstrates that with very short node lifetimes, it is possible to build system practical...
Cloud computing is rapidly increasing in popularity. Companies such as RedHat, Microsoft, Amazon, Google, and IBM are increasingly funding cloud infrastructure research, making it important for students to gain the necessary skills work with cloud-based resources. This paper presents a free, educational research platform called Seattle that community-driven, common denominator diverse types, broadly deployed.
Temporal properties are useful for describing and reasoning about software behavior, but developers rarely write down temporal specifications of their systems. Prior work on inferring developed tools to extract likely program that fit particular kinds tool-specific templates. This paper introduces Texada, a new specification mining tool extracting in linear logic (LTL) arbitrary length complexity. Texada takes user-defined LTL property type template log traces as input outputs set...
While previous studies have used the Wikipedia dataset to provide an understanding of its growth, there been few attempts quantitatively analyze establishment and evolution rich social practices that support this editing community. One such practice is enactment creation Wikipedian policies. We focus on policies in discussions talk pages accompany each article. These policy citations are a valuable micro-to-macro connection between everyday action, communal norms governance structure...
Microservices are a popular method to design scalable cloud-based applications. Microservice-based applications (μApps) rely on message passing for communication and decouple each microservice, allowing the logic in service scale independently. Complex μApps can contain hundreds of microservices, complicating ability DevOps engineers reason about automatically optimize deployment. In particular, performance resource utilization μApp depends placement microservices that compose it. However,...
When large groups cooperate, issues of conflict and control surface because differences in perspective. Managing such diverse views is a persistent problem cooperative group work. The Wikipedian community has responded with an evolving body policies that provide shared principles, processes, strategies for collaboration. We employ grounded approach to study sample active talk pages examine how are employed as contributors work towards consensus. Although help build stronger community, we...
ShiViz is a new distributed system debugging visualization tool.
Bitcoin is a top-ranked cryptocurrency that has experienced huge growth and survived numerous attacks. The protocols making up must therefore accommodate the of network ensure security.
Federated Learning is the current state of art in supporting secure multi-party machine learning (ML): data maintained on owner's device and updates to model are aggregated through a protocol. However, this process assumes trusted centralized infrastructure for coordination, clients must trust that central service does not use byproducts client data. In addition this, group malicious could also harm performance by carrying out poisoning attack. As response, we propose Biscotti: fully...
Software bugs often arise because of differences between what developers think their system does and the actually does. These frustrate debugging comprehension efforts. We describe Perfume, an automated approach for inferring behavioral, resource-aware models software systems from logs executions. finite state machine ease understanding behavior resource use.
It is a staple development practice to log system behavior. Numerous powerful model-inference algorithms have been proposed aid developers in analysis and understanding. Unfortunately, existing are typically declared procedurally, making them difficult understand, extend, compare. This paper presents InvariMint, an approach specify declaratively. We applied the InvariMint declarative two algorithms. The evaluation results illustrate that (1) leads new fundamental insights better...
Microservices have become a popular pattern for deploying scale-out application logic and are used at companies like Netflix, IBM, Google. An advantage of using microservices is their loose coupling, which leads to agile rapid evolution, continuous re-deployment. However, developers tasked with managing this evolution largely do so manually by continuously collecting evaluating low-level service behaviors. This tedious, error-prone, slow. We argue an approach based on modeling in we combine...
Software systems are often developed and released without formal specifications. For those that formally specified, developers have to continuously maintain update the specifications or them fall out of date. To deal with absence specifications, researchers proposed techniques infer missing an implementation in a variety forms, such as finite state automaton (FSA). Despite progress this area, efficacy specification miners needs improve if these be adopted. We propose SpecForge, new mining...
JavaScript is a popular language for developing web applications and increasingly used both client-side server-side application logic. The runtime inherently event-driven callbacks are key feature. Unfortunately, induce non-linear control flow can be deferred to execute asynchronously, declared anonymously, may nested arbitrary levels. All of these features make difficult understand maintain. We perform an empirical study characterize callback usage across representative corpus 138 programs,...
Distributed systems pose unique challenges for software developers. Understanding the system’s communication topology and reasoning about concurrent activities of system hosts can be difficult. The standard approach, analyzing logs, a tedious complex process that involves reconstructing log from multiple hosts’ reconciling timestamps among with non-synchronized clocks, understanding what took place during execution encoded by log. This article presents novel approach tackling three tasks...
The widespread adoption of Deep Neural Networks (DNNs) in important domains raises questions about the trustworthiness DNN outputs. Even a highly accurate will make mistakes some time, and settings like self-driving vehicles these must be quickly detected properly dealt with deployment. Just as our community has developed effective techniques mechanisms to monitor check programmed components, we believe it is now necessary do same for DNNs. In this paper present self-checking process by...
Software model checking as well runtime verification are techniques which widely used for temporal properties of software systems. Even though they property techniques, their common usage in practice is "bug finding", that is, finding violations properties. Motivated by this observation and leveraging the recent progress fuzzing, we build a greybox fuzzing framework to find Linear-time Temporal Logic (LTL)
Multi-BFT consensus runs multiple leader-based instances in parallel, circumventing the leader bottleneck of a single instance. However, it contains an Achilles' heel: need to globally order output blocks across instances. Deriving this global ordering is challenging because must cope with different rates at which are produced by Prior designs assign each block index before creation, leading poor performance. We propose Ladon, high-performance protocol that allows varying instance rates. Our...