Projects I am interested in
Continuously updated
My magnus opus
FIONA: short for "Finding Outliers in Attributes," is an innovative framework designed for the detection of categorical outliers within datasets. This configuration-free and user-friendly tool specializes in identifying unusual patterns in data attributes, making it invaluable for data analysis and decision-making processes. FIONA is developed as part of my Master's thesis.
🏆 2025 Best Demo Award
FIONA: Detecting Outliers in Attributes of Relational Datasets with Categorical Values
Tsiamis, T., Qahtan, A.
In ICDCS '25 (Best Demo Award)
Learn more about FIONA on IEEE Xplore
Security Research
Allure Report Arbitrary File Read via Path Traversal in Attachment Processing
Credited reporter for GHSA-64hm-gfwq-jppw.
A path traversal issue in the Allure 1, Allure 2, and XCTest result readers allowed malicious attachment paths to include arbitrary files readable by the report-generation process in the generated report.
Fixed in Allure Report 2.38.0. View the NVD record.
Stored XSS in Forem Admin Abuse Report Rendering
Credited reporter for GHSA-4463-499m-94mx.
Attacker-controlled feedback message content could be stored unsanitized and rendered with raw HTML in the administrator abuse-report interface when an offender was present, allowing JavaScript execution in an administrator's browser.
Patched by Forem in commit 92eacd1. View the NVD record.
Open-Source Contributions
Replaced repeated depth-first searches in MetricsComponentDependencyGraph with a one-time reachability precomputation based on strongly connected component condensation and BitSet propagation over the resulting DAG.
Impact: ArchUnit's reviewer measured the LakosMetrics computation for hibernate-core 7.3.6 (37,281 classes) dropping from 101±2 seconds to 6.2±0.3 seconds—a speedup of more than 16×.
- Iterative Kosaraju strongly connected component detection
- DAG condensation and topological BitSet propagation
- Constant-time cached transitive-dependency queries
- Primitive-backed, stack-safe graph processing
View pull request #1629
·
View issue #1628
Fixed a NullPointerException caused by automatic Long-to-long unboxing when an interrupted, partially written, corrupted, or cross-version .spock/RunHistory file contains a feature confidence value without a corresponding duration.
Impact: The defensive comparison preserves the existing feature-ordering semantics, sorts missing durations last, and allows Spock test execution to recover safely from incomplete run-history data. The fix was included in the Spock 2.4-M7 milestone.
- Null-safe boxed Long comparisons
- Deterministic ordering for missing duration values
- Backward-compatible run-history handling
- Release-note documentation
View pull request #2235
·
View issue #2234
Added the terminal.integrated.scrollback setting and applied it across Podman Desktop's shell, container, provider, Kubernetes, dashboard, and log terminals, allowing users to retain more than the previous fixed 1,000 lines of terminal output without changing the default behavior.
Impact: Users can choose the right balance between terminal history and memory use, preserving early container-build and application-log output needed for debugging. Reviewers verified 1,000-, 20,000-, and 50,000-line configurations on macOS and Windows. The feature shipped in the Podman Desktop 1.23.0 milestone.
- Typed terminal configuration schema with validation bounds
- xterm.js scrollback integration across terminal surfaces
- Backward-compatible 1,000-line default
- Updated unit-test mocks with full modified-line coverage
View pull request #14703
·
View issue #14702
Other work
- WebdriverIO Visual Click Service: A WebdriverIO plugin I built to click canvas-based and selectorless UI components using image matching. I also wrote a DEV Community article about the idea, the OpenCV and Pixelmatch engines, and how it works in practice.
- Gender Bias Scanner GitHub Action: A Python- and Docker-based GitHub Action I developed to detect gender-biased terminology across source code and documentation. It supports configurable scan paths, built-in and custom terms, actionable file-and-line reports, reusable workflow outputs, and CI failure when findings are detected. The scanner combines lightweight word embeddings, a configurable gender axis, and bias scoring. I am the sole contributor to the project, and it is available under the MIT License.
- MutantSonar: A CLI tool I am building that converts PIT mutation testing reports into SonarCloud external issues, with mutation summaries, CI-friendly gating, and source-file mapping across Java, Kotlin, Groovy, and Scala projects.
- Data Intensive Systems: Clustering a database into sub databases with the help of O. Papakyriakou.
- Pattern Set Mining and Inductive Databases: From start til end, a near complete picture.
- Big Data: An in depth look.
- Deep Learning Model applying CycleGAN for Unpaired Image Transformation on Computer Vision with the contribution of P.W.O. van Aken, F.L.G. Blom, R.R. Cuevas, J.A.W. Markus, and M.A. Scheeres. The GitHub repo can be found here.
- Optimizing a vaccination campaign with the help of Julian Markus, Leona Teunissen, and Ramon R. Cuevas. The GitLab repo can be found here.
- Short and simple Monte Carlo Simulation (Deprecated).
Check out these projects as well
Apache Groovy, a powerful Java-syntax-compatible object-oriented programming language.
Still thinking whether Groovy is the right language?
Read my thoughts about Groovy here.
Axe, an accessibility testing engine to ensure that there are no barriers that prevent interaction with, or access to, websites by people with physical disabilities.