Skip to content

2024

Data Governance for AI Systems: Insights from the Data Leaders Meetup

An AI governance program has to connect legal duties with the data and model controls that teams can actually operate. At a Data Leaders meetup in Munich, I presented research on the General Data Protection Regulation (GDPR) and the European Union Artificial Intelligence Act (EU AI Act).

This post turns that research into a practical lifecycle: trace data sources, classify risk, test data quality and bias, document validation, and monitor the deployed system. It is an engineering overview, not legal advice.

EU AI Act: Key Points and Implications for AI in Europe

The European Union Artificial Intelligence Act (EU AI Act) regulates an AI system according to its use and risk, rather than applying one rule to every model. It entered into force on 1 August 2024, and its obligations apply in phases.

This post explains the main risk groups, the roles of providers and deployers, and the engineering controls required for high-risk systems. It also reflects the timeline in force on 7 August 2026, including the extended high-risk deadlines introduced by the AI Omnibus.

MultiAI-Query: Query Multiple AI Models with a Single Prompt

Comparing large language models (LLMs) is awkward when each provider uses a separate interface and response format. MultiAI-Query sends the same prompt and selected settings to several model APIs - including OpenAI, Mistral, Llama through Groq, and Google Gemini - then writes the responses to one Markdown file.

This post explains the dispatch pipeline, the configuration that must remain comparable, and the limits of treating one side-by-side response as a model evaluation.

Versioning Strategies for Data Science & ML Projects

Git records changes to source code well, but large datasets and model files can make a Git repository slow and difficult to clone. Machine learning projects also need to connect a particular code revision to the exact data and parameters used for a run.

I presented my research on Data Version Control (DVC) at an Experts Meetup hosted by Vodafone Germany's Cloud Centre of Excellence in Düsseldorf. This post explains how DVC keeps small metadata files in Git while storing large artifacts separately, and what that design can and cannot reproduce.

Cloudflare AI Crawl Control: Monitoring and Managing AI Crawlers

I run this blog, so I want to know which automated services request its pages and whether they follow my access rules. Some crawlers index pages for search. Others collect content for artificial intelligence (AI) training or retrieval, and a chatbot may answer a question without sending the reader to the source.

Cloudflare AI Crawl Control, formerly called AI Audit, reports AI crawler activity and lets site owners apply crawler-specific allow or block policies. This post explains the difference between monitoring, voluntary robots.txt rules, and enforcement at Cloudflare's edge.

AI Simplified - Decoding the Jargon

Terms such as prompt engineering, fine-tuning, retrieval-augmented generation (RAG), vector databases, and retrievers often appear together even though they solve different problems. Confusing them can lead to an unnecessarily complex or expensive design.

This post defines the five concepts in plain language, shows where each one fits, and compares the main trade-offs without assuming prior AI experience.

RAGify - Chat with Your Documents Using AI

Finding one answer in a long PDF, handbook, or policy manual can take several searches. A general-purpose chatbot cannot use a private document unless an application supplies the relevant text.

RAGify demonstrates retrieval-augmented generation (RAG): it finds passages related to a question and sends those passages to a language model as context. This post explains the indexing and query pipeline, along with the privacy boundary you must evaluate when choosing the model service.

Movie Recommendation Bot

Keyword search works well when you know a title, actor, or genre. It works less well for requests such as “a quiet film about starting over,” where the words may not appear in a movie's stored description.

This guide explains a recommendation bot that represents text as numerical vectors, retrieves similar movie descriptions from MongoDB Atlas, and uses GPT-2 to format the results in a Gradio interface.

Habit Tracker with PyGitGraph

Some habit-tracking apps keep records in a vendor-controlled database or limit data export. Without the raw log, you cannot easily calculate your own measures, such as monthly fasting averages or reading streaks.

This post uses GitHub Issues as the record store and PyGitGraph to export the history. GraphQL lets PyGitGraph request the required issue fields, while ordinary CSV and JSON files keep the resulting data available for your own analysis.

UEFA Euro Data Analysis

UEFA European Championship records contain decades of match results, goals, and yellow and red cards. Static tables make it difficult to compare those patterns across teams and tournaments.

This post introduces an interactive dashboard I built with Python, Streamlit, and Plotly. It lets readers filter the tournament data and inspect changes without manually combining the underlying match records.