Senior AI Engineer (Python)

Profile DDO-001 · Deep Data Ocean

Senior AI Engineer with many years of experience in software development, cloud architecture and data engineering, focused on machine learning since 2018. Builds production-grade AI systems: LLM-based data pipelines, reinforcement learning training environments with backtesting, real-time monitoring, and on-premise inference with vLLM on GPU clusters. Delivers the platform underneath as well – Kubernetes, GitOps with ArgoCD and Helm, Ansible provisioning, time-series and vector databases. Previously many years as a DevOps and cloud architect for public authorities, cloud providers and industrial companies (OpenShift, AWS, CI/CD), and as a big data architect and head of development in pharmaceutical market research (Hadoop, Spark). Works hands-on in Python and Java, thinks in architectures, and takes ownership from concept to operations.

Born 1972. Fehmarn. German (native), English (business fluent).

Day rate on request

Technologies

Experience derived from the projects listed below; overlapping periods counted once.

TechnologyExperience
Python2.5 years
ArgoCD2 years
Helm Charts2 years
Kubernetes2 years
Minio (S3)2 years
Parquet2 years
PostgreSQL2 years
PyTorch2 years
Qdrant2 years
TimescaleDB2 years
Ubuntu2 years
vLLM2 years
AI Agents7 months
CUDA7 months
Docker7 months
FastAPI7 months
JavaScript7 months
Ansible6 months
Chart.js6 months
DNS6 months
Linux6 months
Networking6 months
NumPy6 months
NVIDIA GPU6 months
pandas6 months
TradingView Lightweight Charts6 months
WebSockets6 months
Data Preprocessing & Feature Engineering5 months
TechnologyExperience
Deep Learning5 months
Natural Language Processing5 months
RNN5 months
Text Classification Pipelines5 months
Data Processing Pipelines4 months
Google Sheets API4 months
Llama-3-1-8B-Instruct4 months
LLM4 months
REST APIs4 months
Anthropic SDK1 month
Claude Haiku 4.51 month
CSS1 month
Flyway1 month
GitLab CI1 month
Gmail API1 month
Helm1 month
HTML1 month
mypy1 month
NVIDIA DGX Spark1 month
Playwright1 month
Pydantic1 month
pytest1 month
python-docx1 month
Qwen3-30B-A3B1 month
ruff1 month
SQLAlchemy1 month
WordPress REST API1 month
xgrammar1 month

Projects

Clients are named by sector, not by name.

AI Engineer — Project Outreach Desk – LLM Agent System for Freelance Project Acquisition and Consultant Profiles

since 09/2026

Project Outreach Desk is an LLM agent system that supports a consulting company in acquiring freelance projects and presenting its consultants. It gathers project offers, matches them with the company's candidates and prepares template-based applications. A second agent interviews consultants in a chat, builds a complete CV-style profile step by step, checks it against the company's quality rules and asks follow-up questions until every project is described properly. Finished profiles are published anonymously on the company website and exported as branded Word documents. Everything runs on the company's own hardware, so no candidate or client data leaves the premises.

The agent core of Project Outreach Desk – two cooperating AI agents, one for profiles and one for extraction – is a goal-driven, multi-turn loop implemented in Python: on every turn the model receives the conversation, the current draft state and the list of open issues, and answers with a schema-constrained JSON action – a patch of the draft plus the reply – enforced by xgrammar guided decoding on a vLLM server. A rule engine validates the draft after each turn (sentence counts, technology coverage, completeness) and feeds the findings back, so the agent asks targeted follow-up questions and corrects itself; a final apply action writes the result to the database. The agent works in three modes – creating a profile, extending it, rewriting a single project – and is pinned server-side to the scope it is allowed to change.

Inference runs on-premises: Qwen3-30B-A3B is served by vLLM on an NVIDIA DGX Spark (Ubuntu-based DGX OS, CUDA) inside the company's Kubernetes cluster, so CVs never leave the network. A second, extraction agent turns recruiter emails fetched via the Gmail API into structured project and contact records, using Claude Haiku 4.5 through the Anthropic SDK with structured outputs; a Playwright-driven collector feeds external listings into the same pipeline.

The backend is FastAPI with SQLAlchemy and Pydantic on PostgreSQL, schema-migrated with Flyway; the UI is a plain HTML, CSS and JavaScript single-page app with a live draft view next to the chat. Profiles are exported with python-docx as branded Word documents and published anonymised through a WordPress REST API. Delivery is GitOps: multi-architecture Docker images built in GitLab CI, deployed with Helm and ArgoCD to Kubernetes; quality is enforced with pytest against a real PostgreSQL, ruff and mypy in strict mode.

Technologies: Python, FastAPI, PostgreSQL, SQLAlchemy, Pydantic, Flyway, HTML, CSS, JavaScript, vLLM, Qwen3-30B-A3B, xgrammar, Claude Haiku 4.5, Anthropic SDK, Gmail API, Playwright, python-docx, WordPress REST API, Docker, Kubernetes, Helm, ArgoCD, GitLab CI, NVIDIA DGX Spark, CUDA, Ubuntu, pytest, ruff, mypy, AI Agents

Senior AI Engineer — trAIder News-Data-Loader

since 10/2024

trAIder is an artificial intelligence-powered trading system that identifies market-moving events and price dynamics using reinforcement learning. The News Data Loader serves as the central data pipeline, automatically collecting, cleaning, structuring, and converting global financial news into semantic vectors. These data form the foundation for input into the AI model, enabling precise real-time detection of market movements.

For this project, I implemented a scalable news processing pipeline in Python that has processed up to 2.65 million articles to date. The pipeline is modularly structured and clearly separates download, LLM-based text cleaning, vectorization, and persistence.

To remove advertisements and boilerplate content, a quantized language model is operated via vLLM. The inference service runs containerized on Kubernetes (Ubuntu nodes) and has been optimized for high throughput through improved batching and horizontal scaling of worker pods. Model integration and additional training components are based on PyTorch.

Structured metadata such as tickers, timestamps, and processing status are stored in TimescaleDB / PostgreSQL to efficiently support time-based queries for RL episodes and event alignment. News cleaning and structuring are performed via Python scripts based on raw data. The cleaned articles are additionally persisted as semantic vectors in Qdrant and used for retrieval-based feature generation during training. For performant offline analysis and reproducible training runs, structured data snapshots are stored in Parquet format in a MinIO (S3)-based object storage.

Containerization, configuration, and deployment of the services are managed via Helm Charts, while synchronization of Kubernetes resources is implemented using GitOps via ArgoCD.

Technologies: Python, TimescaleDB, PostgreSQL, Qdrant, Parquet, Minio (S3), vLLM, PyTorch, Kubernetes, ArgoCD, Helm Charts, Ubuntu

Senior AI Engineer — RL Training Environment & Backtesting Engine

10/2024 – 03/2025

As part of the AI-powered trading system trAIder, a scalable reinforcement learning (RL) training environment was developed to simulate and optimize algorithmic trading strategies. The objective was to reliably transform market and news data into RL episodes and execute training and backtesting processes efficiently and deterministically. The environment enables quantitative developers to safely test new trading algorithms without exposing themselves to real market risks, and provides reliable metrics for evaluating strategy performance across various market phases. At its core it is an agent-based system: reinforcement learning agents observe market and news states, take trading actions in a simulated environment and are rewarded on the outcome, so strategies emerge from the agents' own experience rather than from hand-written rules.

The training environment was implemented in Python and designed with a modular architecture to ensure flexible experimentation and extensibility. Time-series-based market and feature data are loaded from a TimescaleDB / PostgreSQL database, serving as persistent storage for historical price data, event information, and training states. For reproducible training runs and efficient offline analysis, training data snapshots are additionally stored in the Parquet format.

The training logic is built on PyTorch and includes custom training loops for DQN-based AI agents, featuring Replay Buffer integration, Target Network synchronization, and controlled epsilon-decay strategies. Numerical computations, feature transformations, and data aggregation are performed using NumPy and Pandas.

A key focus was on leakage-safe dataset design: training and test periods are strictly separated, look-ahead bias is systematically avoided, and backtesting runs are versioned and executed reproducibly. Rolling-window aggregations and event-based segmentation enable structured generation of consistent RL episodes.

To integrate into the overall architecture, the training environment provides API-based interfaces implemented with FastAPI. These allow passing training configurations, controlling experiments, and querying performance metrics such as NAV trajectories or reward statistics.

Technologies: Python, PyTorch, TimescaleDB, PostgreSQL, Parquet, FastAPI, NumPy, pandas, AI Agents

Senior AI Engineer — AI Training GUI & Real-Time Monitoring System

10/2024 – 03/2025

A web-based monitoring and visualization system was developed to analyze and evaluate reinforcement learning training runs, displaying training metrics, market trends, and model decisions in real time. The goal was to make training processes transparent, systematically assess learning behavior, and detect deviations early. The system was used by data scientists and quantitative analysts to monitor the efficiency of trading strategies and evaluate the quality of learning processes. Thanks to real-time visualization, they could quickly adjust hyperparameters or environmental conditions, significantly improving training quality. It is the observation layer of an agent-based system: every decision of the trading agents can be followed live, from the observed state to the chosen action, which makes the agents' behaviour explainable to the team.

The backend was implemented in Python and uses FastAPI to provide REST and WebSocket interfaces. Training metrics, NAV trends, and status information are continuously streamed to the frontend via WebSockets during running training processes, enabling real-time monitoring of training progress, reward development, and model performance.

Interactive frontend components were implemented in JavaScript for data visualization. Chart libraries such as Chart.js and TradingView Lightweight Charts are used to synchronously display price trends, trades, position changes, and model-generated signals, enabling joint analysis of market metrics and the metrics of the AI agents.

Additionally, a live monitoring system for model decisions was implemented, based on inference results from PyTorch-based models. Probability distributions and action decisions can be traced during simulation runs and used to evaluate training strategies.

The architecture is modular and enables integration of additional training or inference services via defined API interfaces.

Technologies: Python, FastAPI, WebSockets, JavaScript, Chart.js, TradingView Lightweight Charts, PyTorch, AI Agents

Senior AI Engineer — AI Infrastructure & ML Platform Setup

10/2024 – 03/2025

The platform serves as the central infrastructure for the AI-based trading system trAIder and is used by data scientists and ML engineers to train models and deploy them into production. It enables scalable execution of ML and LLM workloads with GPU acceleration and supports the entire model lifecycle—from development and training to deployment in production. Through automated provisioning and management of resources, the time required for model development is significantly reduced, and experiment reproducibility is ensured.

The entire infrastructure was automated using Ansible for provisioning. This included the installation and configuration of Kubernetes, container runtime, CNI plugins, as well as the integration of NVIDIA GPU drivers and CUDA support for ML workloads. Additionally, network and DNS components were set up to ensure internal service communication and external accessibility.

For orchestration and GitOps-based management of cluster resources, ArgoCD was employed. Applications such as TimescaleDB (PostgreSQL) for time-series data, Qdrant as a vector database, and inference services were deployed and version-controlled using Helm charts.

The platform supports containerized PyTorch training jobs, LLM inference services, and scalable data pipelines, and has been optimized for resource allocation, GPU utilization, and horizontal scalability. Python was used as the primary development language for scripts, pipeline logic, and integrations. Docker was utilized to package and deploy ML models and services in isolated containers. Linux (Ubuntu) serves as the underlying operating system for all nodes in the cluster, ensuring stability and performance. Networking was specifically configured for high throughput and low latency in data transfers between services.

Technologies: Python, Ansible, Kubernetes, Docker, NVIDIA GPU, CUDA, ArgoCD, Helm Charts, TimescaleDB, PostgreSQL, Qdrant, Linux, DNS, Networking, Ubuntu

Senior DevOps Architect at a federal agency — Enterprise OpenShift Platform Engineering & Operations

05/2023 – 01/2025

AI Engineer — AI-Powered Classification of Financial Transactions

05/2023 – 08/2023

A data pipeline was developed for analytical and reporting purposes to automate the processing and semantic classification of bank statements. The system integrates directly with banking interfaces to retrieve account transactions and transform them into structured datasets for further processing. By automatically categorizing transactions using AI, financial advisors and controllers were able to significantly accelerate their reporting processes and improve the accuracy of their analyses. Particularly for unstructured booking texts such as 'Purchase at a supermarket' or 'Money transfer to Max Mustermann', the assignment to correct categories such as 'Groceries' or 'Personal Transfer' became significantly more precise and faster.

The processing pipeline was implemented in Python and uses REST APIs to automatically retrieve transaction data from a major German bank. The imported bookings are normalized, enriched, and made available via the Google Sheets API in Google Sheets, enabling transparent financial overviews and collaborative analysis processes.

For automated classification of financial transactions, a Large Language Model (LLM) was integrated into the processing workflow. The model analyzes booking texts semantically and assigns them to predefined income and expense categories. This significantly reduced manual effort for classifying account movements and improved consistency in financial reporting. Stable and cost-efficient inference was achieved through implemented prompt design and batch processing strategies. Later versions of the solution utilized the Llama-3-1-8B-Instruct language model.

The architecture is based on modular data processing pipelines and supports asynchronous processing, extensible classification logic, and integration of additional financial data sources. The project demonstrates the productive use of LLMs for structured extraction and classification of financial data.

Technologies: Python, REST APIs, Google Sheets API, Data Processing Pipelines, LLM, Llama-3-1-8B-Instruct

Senior DevOps Architect / Engineer at a Cloud Provider — Automated Deployment of Air-Gapped OpenShift Platforms

10/2022 – 08/2023

Senior Java Spring Boot Architect & Developer at Deep Data Ocean — Microservice Factory – Platform for Automated Generation of Spring Boot Microservices

08/2021 – 05/2023

DevOps Architect / Engineer at a logistics company — Cloud-Native Transformation of a Legacy Monolith into Kubernetes-Based Microservices

03/2021 – 09/2022

AI Engineer — AI-Powered Skill Classification and Resource Matching

10/2019 – 02/2020

The users were HR experts responsible for staffing projects with technically qualified consultants. The system supported them in assigning skilled professionals significantly faster and more accurately by automatically classifying project requirements and candidate profiles. This reduced manual effort in searching for suitable resources and significantly shortened time-to-project-assignment.

Project requirements from various sources were ingested and processed via a Python-implemented Natural Language Processing (NLP) pipeline. Techniques including text normalization, tokenization, and data preprocessing & feature engineering were applied to transform unstructured project descriptions into model-ready representations.

For automated content classification, a deep learning model based on a Recurrent Neural Network (RNN) was developed. The model assigned project descriptions to predefined skill categories, enabling automatic identification of relevant candidate profiles.

The trained solution enabled consistent processing of large volumes of project requests and supported downstream automation steps such as targeted selection of suitable resumes and partially automated generation of project applications. Model optimization and evaluation focused particularly on improving classification accuracy for domain-specific terminology and heterogeneous project descriptions.

The project demonstrates the practical application of deep learning and text classification pipelines for automating business processes and enabling scalable assignment of skilled professionals in project-driven organizations.

Technologies: Python, Natural Language Processing, Text Classification Pipelines, Data Preprocessing & Feature Engineering, Deep Learning, RNN

DevOps Architect / Engineer at a federal security-documents company — Enterprise CI/CD and OpenShift Platform Enablement

09/2019 – 02/2021

Cloud & DevOps Architect at a textbook publisher — Migration of a C# Monolith into a Distributed AWS Architecture

07/2019 – 07/2019

Cloud Operations Engineer at an IT service provider — Migration of a Java Monolith to a Distributed AWS Platform

10/2018 – 06/2019

Cloud Operations Engineer at Deep Data Ocean — Modernization of a Predictive Maintenance Platform

08/2018 – 09/2018

Big Data Architect at an automotive supplier — IoT Platform for Managing Vehicle Sensor Data

06/2018 – 10/2018

Big Data Architect (Automotive Industry) — Vehicle Data Lake & Streaming Pipeline Platform

03/2018 – 06/2018

Big Data Developer at Deep Data Ocean — Predictive Maintenance Prototype

02/2018 – 03/2018

AI Engineer at Deep Data Ocean — Visitor Analytics in Retail

01/2018 – 02/2018

AI Engineer at Deep Data Ocean — Neural Network Playground

01/2018 – 02/2018

AI Engineer at Deep Data Ocean — OCR for Pharmaceutical Prescriptions

01/2018 – 02/2018

Big Data Architect at a German market research company — Distributed FTP File Watcher for Hadoop Data Integration

04/2017 – 05/2017

Big Data Developer at a Market Research Company — Analytics Platform for the Regional Pharmaceutical Market

07/2016 – 12/2017

Big Data Developer at a Market Research Company — Migration of a Legacy ETL Platform to Hadoop & Spark

01/2016 – 07/2016

Business Technology Partner Central Europe (Development Leader) at a global pharmaceutical market research company — Business Technology Partner Central Europe (Development Leader)

01/2014 – 12/2016

Director Business Technology Partner Central East & South Europe (Head of Development) at a global pharmaceutical market research company — Enterprise-wide migration of legacy data warehouses to Hadoop- and Spark-based big data platforms across 35 countries

09/2013 – 12/2017

Project Manager at a pharmaceutical market research company — Project Manager – pharmaceutical market analytics product

05/2013 – 12/2013

Does this profile fit your project?

Send us the requirements and quote profile number DDO-001. You will get a clear answer: whether it fits and from when.