Projects
Production ML and agentic AI
End-to-end systems with automated pipelines, CI/CD, tests and monitoring. Each one is live and open source.
Ask Statistics Denmark
An AI agent that answers questions about Denmark with official statistics. It uses RAG over 2,300 tables and LLM tool calling to find the right table, fetch the numbers and cite the source, and it shows every step it took.
Hybrid search (BM25 and vector search with pgvector) evaluated on 48 labelled questions and tracked in MLflow. The agent answers 80 to 87% of test questions correctly and declines every question the data cannot answer.
Python, LLMs, RAG, AI agents, tool calling, pgvector, PostgreSQL, SQL, MLflow, Gradio, CI/CD, GitHub Actions
Live demoCode and resultsExperiments
Copenhagen NO₂ forecast
A production-ready MLOps pipeline that forecasts hourly air pollution for the next 24 hours at a busy Copenhagen street. Data ingestion, model scoring and the public dashboard update every hour without manual work.
30% more accurate than a persistence baseline. Versioned training data, experiment tracking and a model registry, weekly automated retraining with champion and challenger models, and daily monitoring of accuracy and data drift.
Python, SQL, PostgreSQL, LightGBM, MLOps, MLflow, FastAPI, Docker, CI/CD, GitHub Actions
Live dashboardCode and resultsDatasetExperiments
LLM gateway
A REST API in front of three LLM providers (Groq, Gemini and OpenRouter) with automatic failover. When one provider fails, the request moves to the next, and every attempt is logged with its latency and error.
Built and tested while providers retired a model, moved a free model to paid only and returned overload errors. The gateway kept answering without any change for its users.
Python, FastAPI, REST API, LLMs, Docker, pytest, CI/CD, GitHub Actions, Render
Live demoCode
Applied ML research
Peer-reviewed deep learning studies from 2026, with code, data and trained models openly available.
Fine-tuning audio transformers for vehicle sound classification
Fine-tuned pre-trained audio transformers (BEATs, AST) to recognise vehicles by sound, trained on recordings from Germany and tested on recordings from Australia.
77% better than a CNN baseline. ArcFace metric learning raised the rarest class, buses with 53 training samples, from 0.38 to 0.54 F1.
Python, PyTorch, Hugging Face Transformers, transfer learning, domain adaptation, scikit-learn, librosa
PaperCode
Figure: Khan (2026), Acoustics 8(3), 63. CC BY 4.0.
Synthetic training data from physics and generative AI
Trained a vehicle sound classifier on real recordings plus synthetic sounds from a physics simulator and from AudioLDM, a text-to-audio diffusion model, then tested it on recordings from other countries and microphones.
Combining both synthetic sources improved balanced F1 by 55% over training on real data alone.
Python, deep learning, CNN, generative AI, diffusion models, data augmentation
PaperCode
Figure: Khan, Ryzhikov and Kolehmainen (2026), Applied Sciences 16(14), 7234. CC BY 4.0.
Skills
- Machine learning and data science
- Python, pandas, NumPy, scikit-learn, LightGBM, XGBoost, PyTorch, time series forecasting, feature engineering, statistical analysis, model evaluation
- AI and LLMs
- LLM applications, RAG, AI agents and tool calling, hybrid search, embeddings, vector databases (pgvector), fine-tuning transformers, Hugging Face Transformers, LLM evaluation
- LLM providers and APIs
- Groq, Google Gemini, OpenRouter, OpenAI-compatible APIs
- MLOps and engineering
- MLflow, model registry, CI/CD, GitHub Actions, Docker, FastAPI, REST APIs, automated retraining, monitoring and drift detection, pytest, Git, uv, ruff
- Cloud and deployment
- Supabase, Render, Hugging Face Hub and Spaces, DagsHub, GitHub Pages, Gradio
- Data
- SQL, PostgreSQL, data pipelines, data quality, Hugging Face Datasets, geospatial data and GIS
About
I am a physicist and researcher at Aarhus University, where I work as Assistant Professor. For ten years I have worked in environmental modelling, with a focus on air quality and sound. My work combines domain knowledge from physical modelling with machine learning, and I have built forecasting systems that run operationally and deliver new predictions every hour.
After many years at leading research institutions, I am looking for industry roles in data science, machine learning and AI engineering. I want to work on systems that solve real problems for real users, with careful evaluation built in from the start. I also enjoy learning new tools and methods, and I keep building to stay current.