Thomas Scholz

Senior Software Engineer · Backend & Architektur

Projekte

Aktuelle Projekte – Backend & Architektur

08/2023 – heute

Wartung und Neuentwicklung eines Management Systems für Intellectual Properties

Im Umfeld von Intellectual Property (Patente, Marken, etc.), werden Schutzrechtsdaten über einen komplexen Importprozess strukturiert und validiert, bevor sie in die zentralen Systeme übernommen werden können. Mein Schwerpunkt lag auf der Backend-Architektur, der Modellierung fachlicher Kernprozesse sowie der nachhaltigen Weiterentwicklung bestehender Systeme. Dabei wurde dieses Import-Modul von Grund auf neu geschrieben und in die bestehenden Systeme eingebunden. Eine umfassende API wurde als Bindeglied zwischen Altsystemen, externen Kundensystemen und einem neu entwickelten internen System laufend gewartet und angepasst. Zahlreiche technische Altlasten wurden hierbei beseitigt.

Technische Schwerpunkte

KI-gestützte Entwicklung (Codex/Copilot), C#, .Net, Entity Framework, Performance-Analyse

09/2020 – 08/2023

Webbasierte Kundenlösungen im chemisch-pharmazeutischen regulierten Umfeld

Mitarbeit an mehreren maßgeschneiderten Web-Anwendungen im chemisch-pharmazeutischen Bereich, die von der Konzeption über die Backend-Entwicklung bis zum produktiven Einsatz realisiert wurden. Die Lösungen unterstützten unterschiedlichste fachliche Anforderungen, u. a. die digitale Begleitung von Produktionsprozessen, Labor-Informations-Management, IT-Asset-Verwaltung mit ActiveDirectory-Anbindung, Risiko- und Umweltdaten-Management sowie das automatisierte Erzeugen behördlicher Meldungen aus komplexen Warenbewegungsdaten.

Im Vordergrund standen dabei die fachlich saubere Modellierung, der Aufbau stabiler Web-Backends sowie die Integration in bestehende Unternehmensprozesse und Datenstrukturen. Besonderer Wert wurde auf klare Trennung von Fachlogik, Datenpersistenz und Benutzerschnittstellen gelegt, um Wartbarkeit und Erweiterbarkeit langfristig sicherzustellen.

Technische Schwerpunkte

C#, ASP.NET, Entity Framework, Angular, React, OpenXML, Reporting/Analytics UI, ActiveDirectory, Risikomanagement, Scrum

12/2022 – 07/2023

Aufbau eines QMS (Qualitätsmanagementsystems)

Um validierte Software nach ISO 9001 für die pharmazeutische Industrie herstellen zu können, muss die hohe Qualität der Software, sowie die Übereinstimmung mit den Spezifikationen in jedem Entwicklungsschritt nachgewiesen werden. Die dafür nötigen Prozesse, wie z. B. Risikoanalysen, Änderungsmanagement und Traceability-Matrix müssen genau definiert sein und durch Stellenbeschreibungen und Arbeitsanweisungen dokumentiert sein. Meine Aufgabe bestand darin, ein ISO-9001-konformes Qualitätsmanagementsystem in die bestehenden Software-Entwicklungsprozesse im regulierten Umfeld nach GAMP5 zu implementieren. Der Fokus lag dabei auf der technischen Nachvollziehbarkeit und der unbürokratischen Umsetzung im Entwicklungsalltag.

Technische Schwerpunkte

ISO 9001, GAMP 5 SE, Risikoanalyse, CAPA, Change Control, Traceability-Matrix, Qualifizierungsmatrix, Softwarevalidierung

Domänenspezifische Projekte & Spezialthemen

Diese Projekte haben meine fachliche Tiefe in daten- und optimierungsgetriebenen Systemen geprägt.

05/2004 – 09/2020

Standort und Gebietsoptimierung für Paketdienste

Damit ein Paketdienst die Sendungen beim Empfänger zustellen kann, müssen viele Transporter auf geordnete Weise durch das Gebiet ihres Depots fahren. Die gewöhnliche tägliche Menge an Paketen pro Depot, sowie die Gesamtzahl der Depots bestimmen wie weit die Transporter dabei fahren müssen und welche Kosten das verursacht. Ziel dieses Projekts war die Entwicklung und Implementierung von Optimierungsverfahren zur Standort- und Gebietsplanung, basierend auf realen Straßennetzen und großen Datenmengen.

Technische Schwerpunkte

Analyse, Design, Performance-Optimierung, Multithreaded Programmierung, Excel-Matrixformeln, VB.NET

05/2004 – 09/2020

Line-Haul-Optimierungssoftware für Paketdienste und Speditionen

Die LKW-Fernverkehre von Paketdiensten und Speditionen spannen ein landesweites Logistiknetz auf, das die einzelnen regionalen Umschlagsplätze (Depots) miteinander verbindet. Die Art und Weise, wie die Ausgangs- und Eingangs-Pakete der zahlreichen Depots untereinander im Fernverkehr geroutet werden, hat einen großen Einfluss auf die gesamten Transportkosten eines Paketdienstes. Dieses NP-schwere Optimierungsproblem zu lösen war Ziel der Software, die zu diesem Zweck geschrieben wurde. Da der Lösungsraum nahezu unendlich ist, wurde hierfür der wissenschaftliche Optimierungsalgorithmus „Simulated Annealing“ verwendet. Die Daten wurden jeweils über Excel ein- und ausgegeben. Das stundenlang laufende Programm wurde hochoptimiert, multithreaded in VB.NET erstellt.

Technische Schwerpunkte

Analyse, Design, Performance-Optimierung, Multithreaded Programmierung

10/2004 – 09/2020

Distanzmatrix-Berechnung

Bei zahlreichen logistischen Optimierungsfragen ist eine Distanzmatrix auf Postleitzahlen-Ebene für ein gegebenes Land nötig, das individuelle Parameter für Geschwindigkeit und verwendete Fahrzeuge berücksichtigt. Eine Software soll die verschiedenen kommerziellen Produkte zur Entfernungsberechnung einbinden und unter einer gemeinsamen Oberfläche verfügbar und parametrisierbar machen. Außerdem sollte eine lizenzkostenfreie Lösung auf Basis von OpenStreetMap (OSM) erarbeitet werden. Hierfür wurde eine komplette Toolchain entwickelt, die die gewünschten OSM-Daten runterlädt und entsprechend aufbereitet, den OpenSource-Router OSRM installiert und für .net kompiliert und diesen dann in die Software als Backend einbindet.

Technische Schwerpunkte

Linux, PostgreSQL, Batch-Programmierung, OpenStreetMap, Entfernungsberechnung

10/2004 – 09/2020

Automatische Geokodierung großer Mengen an Adressen

Für viele Optimierungsfragen in der Zustell-Logistik von Paketdiensten und Speditionen ist es essenziell zu wissen, woher und wohin jeweils welche Sendungen gehen. Die Kunden stellen die Empfänger- und Absenderadressen pro Sendung in Form von CSV-Dateien mit mehreren Millionen Datensätzen zur Verfügung. Diese Adressdaten müssen geokodiert werden, d.h. in einen Längen- und Breitengrad umgewandelt werden. Mehrere kommerzielle Anbieter stellen dafür Software zur Verfügung. Aufgrund der sehr hohen Lizenzkosten, kommen für unterschiedliche Kunden jeweils verschiedene Geocoder zum Einsatz. Um all diese verschiedenen Backends ansprechen zu können wurde eine Software erstellt und immer wieder angepasst, um über ein einheitliches Frontend die Adressdaten einzulesen und an das jeweilige Backend (lokal oder über Internet) zu schicken.

Technische Schwerpunkte

generische Programmierung über Interfaces

Frühere Projekte & historischer Kontext

Die folgenden Projekte bilden das fachliche Fundament meiner heutigen Arbeit.

04/2004 – 09/2020

Windows-Server und Netzwerk-Administration

Meine Aufgabe bestand darin, alle administrativen Aufgaben, die in einem kleinen Unternehmen anfallen, zu erledigen. Dazu gehörte die Administration der Benutzer mit ActiveDirectory, Backup der Server, Exchange-Server, Hyper-V, Hardwarebetreuung, Netzwerkadministration, DNS, DHCP, ISDN Telefonanlage. Auch die Erweiterung der bestehenden Netzwerkverkabelung auf 1000Base-T nach IEEE 802.3ab durch eine strukturierte Sternverkabelung nach TIA-568B gehörte dazu.

04/2002 – 04/2004

Client/Server-Anwendungen Windows

Mehrere existierende und teils neu zu entwickelnde Client-Server-Anwendungen im Windows-Umfeld mit Access und SQL-Server mussten betreut werden. Dazu gehörte auch die Administration von SageKHK Office.

04/2000 – 04/2002

Enterprise Warenwirtschaft und Administrationssoftware

In einem internationalen Projekt, für das ich 2 Jahre in Mexico City gelebt habe, sollte eine neue Business- und Administrationssoftware für eine weltweite Organisationsstruktur geschaffen werden. Das moderne 3-Tier-Projekt umfasste Module für Personalwesen, Lagerhaltung, Produktion, Versand und Administration. Meine Rollen umfassten die klassische Backend-Programmierung, sowie die Analyse der Business-Prozesse und basierend darauf der Ableitung der Grundkonzepte für die 3 Entwicklungsteams (Database, Business-Logik/Services und Webinterface). In dieser Zeit habe ich mein Englisch stark verbessert, sowie Spanisch gelernt.

02/1996 – 12/1999

Mitarbeit bei der Entwicklung eines komplexen Frameworks, um betriebliche Anwendungen schnell und effizient nach einheitlichen Strukturen erstellen zu können.

01/1995 – 08/1995

Mainframe Software für Umgang mit Gefahrgütern

Kurzfristige Mitarbeit an der Entwicklung und Anpassung bestehender Anwendungssysteme im Rahmen eines zeitlich begrenzten Projekteinsatzes.