Chronologically descending, from the current project back to 2007.
Jan 2026 – present (3 months)
Target Communication Concept for the Balancing Energy Market
Solution Architect @ European Transmission System Operator · Berlin
- Participation in a cross-TSO project team (multiple transmission system operators) to develop a target communication architecture for the balancing energy market (aFRR/mFRR)
- Contributing domain expertise from the internal balancing energy platform to evaluate existing and alternative communication paths between activation systems (European activation platforms) and TSO backends
- Identification and evaluation of potential communication concepts to sustainably ensure RAM availability in line with regulatory requirements (99.96% across the entire process chain per product type)
- Analysis of the procedural framework conditions of the aFRR process (Gate Closure Time, MOL decoupling, plausibility checks, version number transmission, ACK processing) and derivation of the resulting technical requirements for the target architecture
- Evaluation of developed proposals from a financial (qualitative), time, and resource perspective, including assessment of possible infrastructure changes (e.g., cloud migration of the activation system)
- Development of a final architecture proposal for alignment between relevant committees and preparation of approval by the steering committee
Oct 2024 – present (1 year 7 months)
predigt.io – Platform for AI-Powered Sermon Transcription, Analysis and Discovery
Founder, Software Architect, Developer @ Own product – predigt.io · Remote
Own product: SaaS platform for German-speaking congregations for automated transcription, translation and thematic analysis of sermons. End-to-end responsibility from product idea through architecture to production operation.
- Event-driven microservice architecture with NATS JetStream as persistent backbone (Object Store for audio, KV Store for pipeline state, Protobuf schemas for service contracts)
- Polyglot implementation in Go, Java, Python and TypeScript – each service in the language that fits best
- AI pipeline with Whisper (GPU), AssemblyAI and multi-provider LLM integration (Claude, ChatGPT, Gemini) incl. fallback logic and cost tracking
- Operated on a dedicated Hetzner Kubernetes cluster with Helm deployments, GitLab CI/CD and a complete observability stack (Prometheus, Loki, Grafana)
Sep 2024 – present (1 year 7 months)
Architecture Design for a Critical On-Premises Application Platform
Senior Software Architect @ European Transmission System Operator · Berlin
- Design of software solutions at the application and/or product level and communication of these solutions to all relevant stakeholders
- Definition and documentation of standards for application architecture documentation as well as guidance, validation and enforcement of compliance with these standards within the project team
- Definition and maintenance of the relevant Taylor-Made Development (TMD) technology stack, exploration of new solutions and technologies
- Ensuring verifiable compliance with critical IT infrastructure requirements, e.g. ISMS process, BSI KRITIS regulation.
- Actively seeking opportunities to improve business software processes and interactions.
May 2023 – present (2 years 11 months)
Monitoring for Business-Critical Credit Card Processes
Software Developer DevOps @ Credit card provider · Frankfurt am Main
In the customer's enterprise environment (>100 microservices) it is essential to implement live monitoring of critical business processes. The classic stack of Prometheus and Grafana was chosen alongside AppDynamics and Azure Monitoring.
Metrics were determined and exported to Prometheus using both whitebox and blackbox testing.
My task was the implementation of blackbox tests with Playwright, briefing teams on structured delivery of metrics via the Prometheus API, and supporting the CI/CD process for automatic deployment of Grafana dashboards.
May 2023 – present (2 years 11 months)
Support for the Internal IT Academy
Trainer @ Insurance group · 5322 Koblenz
As part of the migration of software systems from a legacy architecture to microservices in Quarkus, there is a high demand for training. With the simultaneous introduction of Camunda, Kafka, OpenShift, Docker, programming with Apache Camel and the consistent use of Quarkus for microservices, several PoC implementations as well as training materials and tasks are required.
My task was to carry out various PoCs – independently or with a small team. Creating training scenarios and training employees were further tasks.
Jun 2018 – present (7 years 10 months)
Trainer for Microservices and Container Solutions with Docker
Trainer · Germany
- Fundamentals of REST (REST principles, architectural style)
- REST vs SOAP
- HTTP methods (GET, POST, PUT, PATCH, DELETE, Header)
- Resources and URIs (structure and best practices)
- JSON, XML, Media Types
- Hypermedia and HATEOAS
- API Design (versioning, resource modelling and hierarchy)
- Security and authentication (Basic Auth, OAuth 2.0)
- Native code compilation (startup time and memory footprint)
- MicroProfile and Java EE support
- Reactive programming (Eclipse Vert.x framework, async and event-based)
- Dev mode (development mode)
- Configuration management
- Dependency injection (CDI specification – Contexts and Dependency Injection)
- Testing framework
- Database access (JPA, Hibernate, Panache)
- Metrics and monitoring (Prometheus and Grafana integration)
- Docker architecture (containers vs VMs, Docker daemon, images, containers, registries)
- Installing Docker and creating images (Dockerfile)
- Working with containers
- Docker volumes and persistence (mount)
- Docker networks and communication
- Docker Swarm (orchestration, Swarm cluster)
- Monitoring and troubleshooting
- Best practices and security
- Using Docker in various scenarios
- Spring Boot services
- Kafka as event bus
- Performance tests, locust.io
- ELK Stack – Elasticsearch, Logstash, Kibana
- Monitoring with Prometheus and Grafana
- Service discovery with Consul
- Hystrix for circuit breaker, timeouts, bulkheads, steady state, fail fast
- Message Oriented Middleware (MOM, Publish/Subscribe, Point-to-Point, Producer, Consumer, Queue)
- ActiveMQ architecture (broker, connector, address and queue)
- ActiveMQ/Artemis vs. Kafka
- Installation, configuration and operation
- Topics and persistence models
- Routing, transactions and atomicity
- Clustering and load balancing / scaling / replication / failover
- Monitoring and management (JMX)
- Security (SSL/TLS)
- ActiveMQ and JMS
- Producers and consumers
- Working with offsets
- Performance and key parameters
- Serialisation
- Working with topics
- Partitioning
- Transactions with Kafka
- Clustering, failover
- Headers and timestamps
- Configurations
- Security and monitoring
- Zookeeper console
Participants of the training are able to install, configure and continuously monitor a cluster-capable Kafka. In addition, participants can brief entire teams or service teams and explain how to work with Kafka. Participants of the training have themselves installed Kafka in their companies and organisations or adapted it after the training. Participants come from the following industries:
- General retail
- Insurance and banking
- Textile industry
- Food retail
- Print media
- Actuator
- REST with Spring Web
- Deployment with Docker to Kubernetes/OpenShift
- Deployment to a cloud environment (Azure, AWS, Google Cloud, Digital Ocean)
- Domain Driven Design (DDD)
- Test Driven Development (TDD)
- Spring Data – connecting PostgreSQL, MongoDB, Redis Cache
- Installing a fault-tolerant cluster (controller, worker, etcd, kubelet, kubeadm, kubectl)
- Metrics server for monitoring and autoscaling with HPA Horizontal Pod Autoscaler
- Definition, deployment, operation, changes to pods, deployments, services, ingresses, daemon sets, stateful sets, jobs, cron jobs
- Configuration of network, firewall and traffic limits
- Kubernetes API
- Permissions management with service accounts and RBAC policies
- Configuration with ConfigMaps and Secrets
- Monitoring with readiness and liveness probes
- Schema Registry for data consistency and backwards compatibility
- Kafka Connect (source/sink connectors) for data integration
- ksqlDB & Kafka Streams for real-time event processing
- KRaft mode (ZooKeeper-free) – cluster setup and migration
- MirrorMaker 2 for cross-cluster replication and DR strategies
Oct 2022 – May 2023 (8 months)
Integration of a Master Data Management System into an Enterprise Architecture
Software Architect @ Insurance group · 5322 Koblenz
The client purchased standard software for various areas (contract management, partner management, customer accounting). The task was to integrate contracts for a new business line into the new contract management system and to migrate existing data.
I was responsible for analysing the enterprise architecture consisting of various software components (COBOL core system, Java modules, third-party software), understanding the existing interactions from a business perspective and adapting them for the integration of the new software.
The new interfaces via Apache Kafka, REST and SOAP had to be modelled precisely so that external software developers as well as internal developers had exact specifications.
Mar 2021 – Apr 2023 (2 years 2 months)
Optimising Credit Card Processes and Implementing Regulatory Requirements
Software Architecture and Operations @ Credit card provider · Remote
The client was a major credit card processor for travel expense management.
The requirement was the creation of virtual credit cards that can be created, blocked and archived according to complex business specifications.
Communication with OEMs and payment providers was necessary.
My task was to extend the existing architecture and supplement it with the new business requirements.
In addition, it was necessary to adapt the architecture to the new requirements, create new services, perform code migrations, and integrate into both the software development process and the CI/CD process.
Oct 2021 – Oct 2022 (1 year 1 month)
Setup Customised Apache Kafka and Consumer Microservices for Vessel Data Analytics
Software Developer and Architect @ Vessel data analytics · Remote
The objective of the project was to migrate an existing software architecture – built with Elasticsearch and manual services – to a streaming architecture.
Raw vessel data was to be transferred from an input topic to further partitioned topics. From there, knowledge extractions could be performed for registered customers. Since the vessel data was already partitioned, higher scaling through replicas was possible.
My responsibility was to select and install/provision a suitable Apache Kafka setup. The requirement was hosting on Amazon AWS using the MSK service.
In addition, I was responsible for the implementation of the microservices themselves and for the integration into the existing CI/CD system with GitLab and for operations on Digital Ocean in managed Kubernetes.
Jan 2021 – Dec 2021 (1 year)
Enhancements to the Release-Hero Tool
Software Developer @ Travel expense management provider · Neu-Isenburg
As part of the software development process for a credit card provider, it was necessary to maintain a release tool that manages the preparation of a release across multiple, partly interdependent microservices.
Integration with Jira as a data source was required. This was used to create an overview of the overall release in Confluence, assign release numbers and hand over to test management and rollout.
Aug 2020 – Mar 2021 (8 months)
Migration from Centralised to Decentralised System (Kafka Messaging)
Kafka/Microservices Expert @ Banking data centre · Hanover
For a large banking services provider, the challenge was to migrate from a centralised architecture to a decentralised one. Several projects were set up to compare different messaging stacks with Kafka and also to analyse stream processing for specific business use cases.
My task in this project was to train and coach employees on Apache Kafka functionality. Various questions had to be clarified – including the volume of future events and the required resources, the performance of different stacks (Confluent) and their feature breadth, as well as logging and monitoring.
A performance measurement for transaction queries was also implemented using stream processing. This was measured with a Spring Boot microservice and timestamps were forwarded to an Elastic (ELK) stack, where the timing was displayed and presented to stakeholders.
Jul 2019 – May 2020 (11 months)
Integration Layer Implementation
Software Developer and DevOps @ Swiss regional bank · Basel
To extend the core banking software, the integration layer was defined and built. It consists of the messaging system Apache Kafka, Spring Boot services running in an OpenShift cluster. My involvement in the project included consulting, implementation and execution of tasks:
- OpenShift
- Spring Boot services and partly Go services
- Avaloq
- Jenkins
- Prometheus
- Elasticsearch, Logstash, Kibana
- Apache Kafka
- Prometheus monitoring of services in detail – readiness probe during the Apache Kafka ingestion process
- Building an interface for all services to provide readiness probes
- Analysis of operational bugs – e.g. default timeouts in communication with the banking core Avaloq
Development
- Developing a base microservice with Spring Boot for new Spring Boot services
- Contribution to the Omnium / credit advisory project
- Debugging and bugfixing in various business projects
- Architecture and data structure in microservices with NoSQL and PostgreSQL
- REST interface design
- Integrations for mobile apps – Zak
For the connection of the integration layer, in-depth knowledge of working with Kafka was required. Employees and teams were trained and knowledge was shared. In addition, assistance was provided in deciding on Kafka topics. Consulting and implementation was carried out for the following questions:
- Number of partitions per topic
- Event structures and their versioning on a topic
- Client performance with linger.ms and batch.size parameters
- Cluster operation and failover
Feb 2020 – Apr 2020 (3 months)
Installation and Configuration of Kafka in Kubernetes
Operations Kafka Expert @ Textile company · Birkenfeld
To decouple the microservices from the ERP system, it was necessary to implement Kafka. The task was to install Kafka on the Kubernetes cluster in a suitable and customised installation.
- Volumes per broker and their size
- Retention policy configured
- Clients adjusted based on linger.ms and batch.size
- Event size and structure
- Topics and their partitions
- Number of clusters for staging
- Header information and protocol
- Number of ZooKeeper instances and brokers
- Monitoring with Confluent Control Center, Grafana and further detailed decisions
A Kafka adapter was then built that is called event-dependently and pushes changes to articles, prices, images or customers to the respective topics.
Feb 2019 – Mar 2019 (2 months)
Import Interface Extension for Legacy ERP System
Software Developer @ Textile company · Birkenfeld
- Customers
- Order data into the ERP system JTL Wawi
Order data retrieved from third-party systems was to be imported into JTL Wawi. An import tool (Ameise.exe) was wrapped via Java and the import as well as command line output was returned via REST.
Dec 2018 – Feb 2019 (3 months)
JOOR Integration with JTL ERP Software
Software Developer @ Textile company · Birkenfeld
- JOOR was to be used to handle B2B order processing. Purchasing and order management was to be handled in the ERP software JTL. Master data was maintained in the ERP system.
- The task was to synchronise the required master data via REST from the JOOR system. The interface was also to support a full sync.
- Additionally, linesheets were to be created from the synchronised items to simplify the work of sales agents with catalogues, app orders and Excel orders.
- Technology on the counterpart side: Python, Django
Jun 2018 – Dec 2018 (7 months)
Export Interface Extension for Legacy ERP System
Software Developer @ Textile company · Birkenfeld
- Master data
- Categories
- Image data
The challenge was to deliver data in a system-specific manner. Categories had to be presented in a recursive tree structure, image data resized on demand, and attributes for articles and styles managed accordingly.
To achieve the required delivery performance, a Redis cache was placed in front of the interfaces, allowing large requests to be answered very quickly.
Mar 2018 – Jun 2018 (4 months)
Mediation Layer Development
Software Developer Microservices @ Credit card provider · Frankfurt
- During the IT infrastructure transformation, SAP and Microsoft Dynamics as well as Office CRM were introduced. Processes that needed to be mapped across ERP and CRM systems were handled via a mediation layer.
- The mediation layer consisted of individual microservices that handled data exchange between the systems, enriched data or mapped entire functions.
The complete card processing was mapped in the mediation layer as SAP's performance was insufficient. It was also not possible to store open-to-buy and limit structures hierarchically. This requirement existed because a company account credit card has limits at different levels.
Apache Kafka served as the exchange mechanism for the services. It was necessary to provide training and support both in operations and during service integration – this was also part of my responsibilities.
Sep 2017 – Mar 2018 (7 months)
IT Infrastructure Hardening for TV Broadcast
Software Architect @ Textile company · Birkenfeld
The task in this project was to provide the ideal infrastructure for a TV broadcast with at least 100,000 simultaneous users.
- optimising existing website requests to a minimum
- implementing a caching strategy for the high volume of visitors
- ensuring ERP order ingestion and processing
Apr 2017 – Sep 2017 (6 months)
Implementation of an ERP System
System integration · Pforzheim
The fashion startup was expanding rapidly. In this context, an ERP software had to be introduced that met the customer's requirements. As part of this project, a business process analysis was carried out to select a provider, resulting in a short/long list for vendor communication.
The right software was selected through a pitch process.
During implementation, technical adjustments were required. The import of product data, customer data and previous order data had to be organised and executed. In addition, the logistics process for shipping had to be defined and implemented.
Sep 2016 – Sep 2017 (1 year 1 month)
Building a Web Presence for a Fashion Startup
Software Architect · Pforzheim
Building a web presence with an integrated e-commerce webshop based on the founders' vision.
Requirements included design specifications and functional requirements that had to be specifically adapted.
A WooCommerce installation was taken as the base and extended. Git versioning was introduced, providing real-time Slack notifications on changes.
Functional adjustments were required for switching campaigns.
Example: Above a certain cart value, products are automatically added.
The technical responsibility included migrating the entire site from conventional hosting to Amazon Web Services. A cloud ERP system and payment providers were integrated. Production exports had to be generated from the product data.
Aug 2015 – Sep 2017 (2 years 2 months)
Expansion of the Web Portal for Banking Product Sales
JEE Developer @ Cooperative banking data centre · Karlsruhe
As part of the further development of the customer sales portal, changes to the existing architecture were necessary. The goal of the transformation was to enable the existing functionality on mobile devices.
Dec 2015 – Jun 2016 (7 months)
Credit Process in Banking Applications
Software Developer @ Cooperative banking data centre · Karlsruhe
In a banking application, legal requirements had to be implemented. This specifically concerned the adaptation of the credit process. Associated partners connected to the credit process had to receive new data. The extension including E2E tests was taken on. In addition, it was necessary to technically adapt many sub-processes such as credit decision checks, model calculations, and collateral. When extending services, models had to be adapted and classes generated accordingly.
Sep 2014 – Jul 2015 (11 months)
Quality Assurance for One of Germany's Top 20 Most-Visited Portals
Quality Engineer @ Top 20 food retail portal · Bonn
Building a behaviour-driven testing implementation and execution environment for a new section of the portal. Supporting and advising the quality assurance team on performance, SEO and tracking testing. Suitable tools and processes were evaluated and introduced.
Jan 2014 – Oct 2014 (10 months)
Customer Portal for a Major Insurance Group
Sub-project lead @ Insurance group · Stuttgart
Tasks within this sub-project included capacity planning within the team, requesting resources, planning milestones and demands for various requirements from operations and specialist departments. Further tasks included accepting implemented functions and transferring them to the test centre, reporting and status updates to the main project lead, as well as budget planning and requesting budget allocations. Planning for the release rollout and the extraordinary deployment of team members was also part of the sub-project lead's responsibilities.
Oct 2013 – Dec 2013 (3 months)
Customer Portal for a Major Insurance Group
Software Developer @ Insurance group · Stuttgart
The customer portal of the large insurance group enables customers to manage contracts, update personal data, file damage reports and perform many other functions. The complexity lies primarily in the challenging system landscape of the group. Providing customers with a consistent and seamless interface requires extensive interface adjustments and coordination.
Feb 2012 – Sep 2013 (1 year 8 months)
PROVI/PDB
Database Developer @ Insurance group · Stuttgart
PROVI/PDB is a system in which all insurance products of a line of business are mapped. Due to the variety of products, the database is highly complex and frequently subject to structural changes that require adjustments to the web interface. In addition, denormalised data is extracted from the database as containers, serving downstream systems as a high-performance access point to the product base.
Oct 2011 – Jan 2012 (4 months)
Quality Gate
Software Developer @ Insurance group · Stuttgart
The Quality Gate was developed to test a newly developed intermediate layer connecting to a calculation core. It is used to send business test cases through the intermediate layer to the calculation core and evaluate the results. The Quality Gate includes test management, user management and management of tests to be executed. Test results can be viewed in real time via a web interface.
Nov 2010 – Jun 2011 (8 months)
E/E Reporting System
Configuration Manager @ IT consulting group · Wolfsburg
During the development, testing and acceptance of electronic control units, various documents are created. These documents contain circuit diagrams, test results and architecture information. They are stored and managed in the EEB document management system. This system offers various interfaces to adjacent systems and integrates ideally into the IT landscape of the automotive manufacturer.
Apr 2010 – Jan 2011 (10 months)
Trading Journal Report System
Software Architect @ Trading company · Bonn
A plug-in and evaluation component were developed for the MetaTrader platform. The plug-in delivered all traded data to a central server at the end of each trading day. The evaluation component processed and presented the data in an appealing format.
Nov 2007 – Aug 2008 (10 months)
DoRIS
Software Tester @ Software company · Braunschweig
As part of the development of systems using hardware-in-the-loop and software-in-the-loop methods, documents were created and archived in DoRIS. DoRIS consists of a C# frontend and a Java backend. Version management, hierarchical document structure and version comparison are among the use cases of DoRIS.