Selected Projects

VarLogger: Runtime Fault Detection for IoT Sensor Nodes

VarLogger is a lightweight runtime anomaly detection framework for resource-constrained IoT sensor nodes. It monitors selected program variables and execution flow during runtime to construct compact event traces, enabling the detection of abnormal system behavior with minimal computational and energy overhead.

The framework has been implemented and evaluated on real sensor node platforms, demonstrating low CPU, memory, and power overhead, and making it suitable for long-term deployment in low-power wireless and embedded systems.

Github Repo  


VarDiag: Fault Diagnosis for IoT Sensor Nodes

VarDiag is a trace-driven fault diagnosis framework that works alongside VarLogger to explain the root cause of anomalies in IoT sensor nodes. Instead of only flagging abnormal behavior, VarDiag analyzes recorded event traces offline to reconstruct execution, locate the point where behavior diverges, and identify which variables, states, or components are responsible. This approach keeps the sensor node lightweight while enabling developers to understand what went wrong, when it happened, and why, using only minimal runtime logging.

Github Repo  


Living Habitat Wireless Sensor Network

The Living Habitat project, part of the Humans on Mars Initiative, explores how to build reliable infrastructure for human settlements beyond Earth. As part of this project, I designed and deployed a distributed wireless sensor network for indoor environmental monitoring of a prototype extraterrestrial habitat.

The network integrates heterogeneous embedded nodes communicating over LoRa, WiFi, and Bluetooth, with wired sensor interfaces (UART, I2C, SPI) for environmental data acquisition. Key engineering challenges included long-duration autonomous operation, low-power duty-cycle management, and fault-tolerant multi-hop communication under bandwidth and energy constraints.

This project provided the real-world deployment context for the VarLogger and VarDiag fault detection frameworks, and demonstrated their applicability under demanding operational conditions.


MoleNet: Open-Platform Wireless Sensor Network

MoleNet is an open-platform wireless sensor network developed at the ComNets group at the University of Bremen, designed for environmental monitoring, sustainable development research, and student education. The platform has been deployed internationally across Cameroon, South Africa, Namibia, Sri Lanka, Thailand, and Germany.

I contributed to the MoleNet project in several capacities:

  • Hardware development: Participated in PCB design discussions and technical reviews for successive MoleNet board versions, contributing to component selection and power profiling strategies to meet energy efficiency targets for long-duration autonomous field deployments
  • Student supervision: Supervised student projects that used MoleNet prototypes as experimental platforms, supporting teams in integrating the hardware into their research workflows and validating sensor data collection under real conditions

MoleNet is open source and available on GitHub.


Event Trace Visualization Dashboard

This project is an interactive dashboard for exploring event traces generated from IoT sensor nodes. Built using Plotly Dash with a SQLAlchemy-backed database, it allows users to load and compare traces, toggle ground-truth labels and anomaly detections, and switch between detections from multiple models. The dashboard provides an intuitive way to inspect how system behavior evolves over time and to visually understand where faults or anomalies were detected.

Github Repo  


LLM-Based Code Instrumentation for Embedded Firmware

Automatically instrumenting embedded firmware for runtime monitoring is a time-consuming manual process. This project explores using a fine-tuned Large Language Model (LLM) to automate the identification and insertion of instrumentation points in embedded C code — enabling the VarLogger framework to be deployed with significantly reduced developer effort.

The LLM was fine-tuned on a curated dataset of embedded C code annotated with instrumentation targets, and evaluated on its ability to generalise to unseen firmware from different microcontroller platforms. This work represents an early application of generative AI to embedded software tooling, combining LLM capabilities with the constraints of resource-limited systems.

Github Repo  


Unsupervised Domain Adaptation for Object Detection (YOLOv3)

This project explores how to maintain object-detection accuracy when a YOLOv3 model is trained on synthetic fisheye images but deployed on real fisheye camera data for patient-monitoring scenarios. Because labeled real fisheye datasets are limited, the model is trained on synthetic data — but differences between the two domains can significantly reduce performance. To overcome this, I implemented and evaluated two unsupervised domain adaptation (UDA) methods that learn to bridge the synthetic–to–real gap without using labeled target data. The approach improves the model’s ability to reliably detect people in real environments while still benefiting from inexpensive synthetic training data.

Github Repo