07/2023 ? heute: Entwicklung von Softwarekomponenten eines MES
Kunde: BMW über NTT Data
Branche: Automotive
Projektbeschreibung:
Weiterentwicklung von und Bugfixes an Softwarekomponenten, die gemeinsam mit SPSen die Produktion von Fahrzeugkomponenten (Getriebe, Achsen, ?) für die von BMW produzierten Fahrzeuge steuern oder zur Darstellung von Informationen zum Produktionsprozess dienen. Die Softwarekomponenten laufen auf Linux-Servern, die Datenhaltung erfolgt auf separaten Oracle-Servern.
Das Gesamtsystem besteht aus einer Vielzahl einzelner Softwarekomponenten, die jeweils von moderater Komplexität sind und die zum größten Teil als eigenständige Prozesse laufen (ähnlich einer Microservice-Architektur). Die Kommunikation zwischen den Komponenten erfolgt größtenteils über ein von BMW selbst entwickeltes Protokoll, über das Daten im Textformat ausgetauscht werden.
Tätigkeiten:
Technologien/Werkzeuge:
07/2021 ? 06/2023: Serverapplikation zur Analyse großer Datenmengen
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Neuentwicklung einer Serverapplikation, die performance-optimiert eine SQL-Abfrage auf vielen (hunderttausend und mehr) einzelnen SQLite-Datenbanken mit identischem Schema ausführt. Der Server dient dazu, Analysen auf den Daten aus Fertigungsläufen von "3D-Druck"-Maschinen zu fahren (eine SQLite-Datenbank je Fertigungslauf).
Tätigkeiten:
Technologien/Werkzeuge:
11/2021 ? 04/2023: DB2-Applikationen um SQLite als alternatives DBMS erweitern
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Erweiterung von Bestandsapplikationen, um alternativ zu DB2 auch SQLite verwenden zu können. Parallel dazu wurde die monolithische DB2-Datenbank für SQLite in mehrere Datenbanken aufgeteilt, um z.B Export und Löschen alter Daten zu vereinfachen.
Tätigkeiten:
Entwurf eines Konzepts, um Unterschiede zwischen DB2 und SQLite so zu kapseln, dass möglichst viel Code DBMS-agnostisch ist, um den Umstellungs- und späteren Wartungsaufwand zu minimieren.
Sämtliche SQL-Abfragen so umgestellt, dass sie für DB2 und SQLite ausführbar sind (ggf. mit Fallunterscheidungen). Wo Unterschiede zwischen DB2 und SQLite zu groß waren, wurden separate Implementierungen erstellt.
Diverse Sonderbehandlungen implementiert, um Aufteilung auf mehrere Datenbanken zu ermöglichen (z.B. für Fremdschlüsselbeziehungen).
Erweiterung bestehender und Ergänzung neuer Unit-Tests.
Technologien/Werkzeuge:
Microsoft Visual Studio / C#
SQLite & DB2
VSTest
Git
05/2019 ? 10/2021: Neuentwicklung Datenbanksystem
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Neuentwicklung eines Datenbanksystems für alle im Zusammenhang mit Fertigungsläufen von "3D-Druck"-Maschinen relevanten Daten (Prozessdaten, Konfigurationsdaten der Bauaufträge, Informationen über die Bauteile, Ereignisse u.Ä.).
Das System besteht aus einem Windows-Service, der eine SQLite-Datenbank kapselt, einer Bibliothek für die Inter-Prozess-Kommunikation (gRPC) zur Anbindung der schreibenden Systeme sowie einer API für Lesezugriffe (Entity Framework). Das System bietet neben den reinen Schreib- und Lesezugriffen auch Funktionalität für den Ex- und Import. Im Rahmen der Neuentwicklung erfolgte eine komplette Überarbeitung des Datenbankschemas.
Tätigkeiten:
Anforderungen analysiert und mit Stakeholdern abgeklärt.
Lösungskonzepte erarbeitet und dokumentiert (Word-Dokumente und UML-Diagramme), Konzepte im Team vorgestellt, diskutiert und angepasst.
Technologien hinsichtlich Performance und anderer Anforderungen (z.B. Datenintegrität bei Absturz) evaluiert (SQLite, OPC UA, gRPC).
Entwurf und Dokumentation des Datenbankschemas.
Implementierungen am gesamten System, größtenteils in C#, teilweise in C++.
Erweiterung des von Entity Framework bereitgestellten Migrationsmechanismus, um trotz der Einschränkungen in SQLite, die Struktur bestehender Tabellen zu ändern, beliebige Schemaänderungen zu ermöglichen.
Implementierung eines generischen Mechanismus mittels Reflection, um empfangene gRPC-Nachrichten an einen weiteren Empfänger weiterzuleiten. Logik zur Vorhaltung bestimmter Nachrichten implementiert, um den zusätzlichen Empfänger bei verspätetem Zuschalten vollständig über den aktuellen Zustand des Bauvorgangs zu informieren.
Erstellen eines Generators für Testdaten, die in XML spezifiziert werden inkl. Visualisierung der XML-Eingangsdaten als HTML mittels XSLT.
Erstellen von Architekturdokumentation (UML und Textform).
Erstellen von Unit-Tests und automatisierten Integrationstests.
Technologien/Werkzeuge:
Microsoft Visual Studio / C# / C++
STL
SQLite
Entity Framework
UML / Enterprise Architect
gRPC
OPC UA
TFS / Azure DevOps
Git
XML
XSD
XSLT
VSTest
10/2016 ? 05/2019: Datenbankentwicklung
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Weiterentwicklung
eines Datenbankschemas für alle im Zusammenhang mit
Fertigungsläufen von "3D-Druck"-Maschinen
relevanten Daten (Prozessdaten, Konfigurationsdaten der Bauaufträge,
Informationen über die Bauteile, Ereignisse u.Ä.).
Weiterentwicklung
von C++-Bibliotheken für Datenbankzugriffe.
Tätigkeiten:
Erweiterungen am Datenbankschema konzeptioniert und implementiert unter Berücksichtigung von Speicherverbrauch und Performanceaspekten.
Relevante Anwendungsfälle für Lesezugriffe ermittelt; sichergestellt, dass diese mit ausreichender Performance möglich sind, ggf. geeignete Indizes eingeführt, bei Bedarf Ausführungsdiagramme analysiert.
Anpassungen an Export-/Import-Funktionalität (C++), z.B. Remapping von Auto-IDs und Überwachung des Transaktionslogs, um ein Überlaufen aufgrund von comitteten aber noch nicht zurückgeschriebenen Seiten zu verhindern.
Verbesserungen zur signifikanten Erhöhung der Schreibrate (C++).
Erweiterung eines Mechanismus, um bei Ausfall der Datenbank in Binärdateien zu schreiben mit der Möglichkeit, diese Daten später zu importieren (C++).
Funktionalität zur automatisierten Pflege der Datenbank (Löschen der ältesten Daten, Aktualisierung von Statistiken) implementiert (C++).
Anforderungen und Interfaceänderungen mit den Stakeholdern abstimmen.
Erstellen von Architekturdokumentation (UML und Textform).
Erstellen von Unit-Tests und automatisierten Integrationstests.
Technologien/Werkzeuge:
Microsoft Visual Studio / C++
UML / Enterprise Architect
STL & Boost
DB2 / IBM Data Studio
Google Test, VSTest
TFS & Git
05/2018 ? 05/2019: Neuentwicklung eines Monitoring-Systems
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Es wurde ein Nachfolger für das Monitoring-System aus dem vorangegangenen Projekt entwickelt. Das neue System bietet eine für den Anwender deutlich einfachere, modulare REST-API an, außerdem können Livedaten über einen OPC UA Server abgefragt werden; auch die Webapplikation (Front- und Backend) wurde komplett neu entwickelt.
Tätigkeiten:
C#-Bibliothek für Datenbankzugriffe mit dem Entity-Framework implementiert.
Bereitstellen von Daten über REST-API und OPC UA (C#).
Erstellen der Benutzerdokumentation der REST-API mittels Swagger.
Technologien/Werkzeuge:
Microsoft Visual Studio / C#
Entity Framework
OPC UA
JSON
Swagger
TFS / Azure DevOps
Git
10/2016 ? 05/2018: Weiterentwicklung eines webbasierten Monitoring-Systems
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Weiterentwicklung eines Monitoring-Systems zur Abfrage des aktuellen Status sowie laufender oder abgeschlossener Fertigungsläufe von "3D-Druck"-Maschinen. Die Datenbasis bildet eine DB2-Datenbank, die Darstellung erfolgt über eine Webapplikation sowie eine iOS- und Android-App, die ihre Daten über einen REST-Service erhalten. Außerdem sind über eine SOAP-API beliebige Maschinendaten abfragbar.
Tätigkeiten:
Weiterentwicklung der dem SOAP-Service zugrundeliegenden C++-DLL, welche in XML formulierte komplexe Anfragen inklusive Schleifen, Fallunterscheidungen u.Ä. entgegennimmt und Ergebnisdaten als XML zurückliefert. Umfangreiche Refactorings sowie Weiterentwicklung der XML-Abfragesprache. Steigerung der Ausführungsgeschwindigkeit einiger Abfragen um den Faktor 20. Parallelisierung zeitkritischer Schleifen mit OpenMP.
Weiterentwicklung des REST-Service (PHP sowie Extensions in C++).
Neue Features konzeptioniert, spezifiziert und mit Stakeholdern abgestimmt.
Koordination der Zusammenarbeit mit externem Entwicklungspartner der Apps.
Anpassungen an der mit GWT / Java erstellten Webapp.
Anpassungen des SOAP-Service unter C# / WCF.
Konfiguration des Servers für die verschiedenen Komponenten des Monitoring-Systems, insbesondere Anpassungen der IIS-Konfiguration.
Implementierung von Lizenzprüfungen mit WIBU CodeMeter / CmDongle, Verschlüsseln von Executables mit WIBU AxProtector.
Erstellen von Unit-Tests und automatisierten Integrationstests.
Benutzer- und Architekturdokumentation (letztere in UML und Textform).
Technologien/Werkzeuge:
Microsoft Visual Studio / C++ / C#
DB2 / IBM Data Studio
PHP
IIS (Microsoft Internet Information Services)
UML / Enterprise Architect
Boost, STL, OpenMP
JSON, XML, XSD
TFS / Azure DevOps, Git
GWT / Java
WIBU CodeMeter und AxProtector
Google Test
02/2018 ? 03/2018: Analyse und Dokumentation Architektur von Bestandsapplikationen
Kunde: ProSiebenSat.1 Applications GmbH
Branche: Medien
Projektbeschreibung:
Erstellung einer Übersicht über die Architektur von einem guten Dutzend Bestandsapplikationen, um die für den Betrieb relevanten Zusammenhänge zu visualisieren. Hintergrund war die Übernahme des Betriebs durch das In-House-Operations-Team.
Tätigkeiten:
07/2013 ? 09/2016: (Teil-)Projektleitung und Softwarearchitektur Messsoftware
Kunde: Rohde & Schwarz GmbH & Co. KG, München
Branche: Test & Measurement
Projektbeschreibung:
Neuentwicklung einer Messsoftware unter Verwendung von Komponenten einer bestehenden Software mit geringerem Featureumfang und geringerer Flexibilität. Die Messsoftware läuft auf in Messgeräten verbauten PCs, steuert in mehreren parallelen Threads komplexe Messabläufe und nimmt die Messdatenaufbereitung, -analyse und -anzeige vor. Wesentlicher Bestandteil des Projekts ist es, eine Komponentenstruktur zu schaffen, mit der geeignete Teile der bestehenden Software in zwei anderen Projekten wiederverwendet und über eine möglichst schmale Schnittstelle mit neu zu erstellenden Komponenten verknüpft werden können.
Tätigkeiten als Projektleiter (formal ?Teilprojektleiter Software?, das Projekt umfasst auch Hardwareentwicklung, jedoch Alleinverantwortung für den Software-Teil):
Abgabe der Rolle als Teilprojektleiter am 01.04.2015, da wg. Umstrukturierung beim Kunden nur noch interne Mitarbeiter diese Rolle besetzen dürfen.
Tätigkeiten als Softwarearchitekt und Seniorentwickler:
Technologien/Werkzeuge:
09/2012 - 12/2013: Funktionserweiterung und Refactoring einer Messsoftware
Kunde: Rohde & Schwarz GmbH & Co. KG, München
Branche: Test&Measurement
Projektbeschreibung:
Durchführung größerer Funktionserweiterungen sowie von Refactoring-Maßnahmen an einer bestehenden Software, die auf in Messgeräten verbauten PCs läuft und in mehreren parallelen Threads komplexe Messabläufe steuert sowie die Messdatenaufbereitung, -analyse und -anzeige vornimmt.
Tätigkeiten:
Analyse der bestehenden Softwarearchitektur als Vorbereitung für Refactoring und größere Funktionserweiterungen
Durchführung und Test von Funktionserweiterungen
Durchführung von Refactorings sowohl im Bereich der Architektur als auch auf Ebene einzelner Methodenimplementierungen
Erweiterung bestehender mathematischer Algorithmen im Bereich Zeitbereichstransformation
Fehlersuche, -analyse und -behebung
Dokumentation bestehender und erweiterter Algorithmen, Online-Hilfe
Technologien/Werkzeuge:
04/2012 - 08/2012: Architektur Bildverarbeitungsschnittstellen
Kunde: Audi AG, Ingolstadt
Branche: Automotive
Projektbeschreibung:
Neu- und Weiterentwicklung von Schnittstellen zu Bildverarbeitungsmodulen von Fahrerassistenzsystemen zu Analyse- und Auswertungszwecken. Erstellung von Softwarekomponenten für Analyse- und Auswertungszwecke.
Tätigkeiten:
Technologien/Werkzeuge:
04/2011 ? 03/2012: Prognose von Gasverbrauch
Kunde: Pichler Engineering GmbH, München
Branche:
Leit-, Informations- und Automatisierungssysteme (SCADA) für Pipelinesysteme, Software zur Leckerkennung und -ortung
Projektbeschreibung:
Produktentwicklung einer Anwendung zur Prognose des Gasverbrauchs für Betreiber von Gasnetzen. Das Produkt beinhaltet ein Oracle-basiertes Archiv für Zeitreihen. Die Software läuft sowohl unter Windows als auch unter Linux.
Tätigkeiten:
Technologien/Werkzeuge:
01/2011 ? 03/2011: Erweiterung einer Webanwendung
Kunde: Pichler Engineering GmbH, München
Branche:
Leit-, Informations- und Automatisierungssysteme (SCADA) für Pipelinesysteme, Software zur Leckerkennung und -ortung
Projektbeschreibung:
Realisierung kundenspezifischer Anpassungen in einer Webanwendung mit Datenbankanbindung zur Administration von Tanklägern für Rohöl. Die Kommunikation mit bestehendem C++-Code wurde von JNI auf eine Webservice-Schnittstelle umgestellt.
Tätigkeiten:
Technologien/Werkzeuge:
06/2010 - 12/2010: Produktentwicklung Leckerkennungssoftware
Kunde: Pichler Engineering GmbH, München
Branche:
Leit-, Informations- und Automatisierungssysteme (SCADA) für Pipelinesysteme, Software zur Leckerkennung und -ortung
Projektbeschreibung:
Produktentwicklung einer Client-/Server-Anwendung zur Erkennung von Lecks in Rohrleitungsnetzen, die sowohl unter Windows als auch unter Linux lauffähig ist. Der serverseitige Teil der Anwendung besteht aus mehreren nebenläufigen Threads und läuft redundant auf mehreren Servern. Die auf Leckagen zu überwachenden Rohrleitungsabschnitte werden von der Anwendung dynamisch aus einem gerichteten Graphen ermittelt. Daten über den hydraulischen Zustand werden aus dem firmeneigenen SCADA bezogen.
Tätigkeiten:
Technologien/Werkzeuge:
02/2010 ? 05/2010: Umstellung bestehender Produkte auf neue API
Kunde: Pichler Engineering GmbH, München
Branche:
Leit-, Informations- und Automatisierungssysteme (SCADA) für Pipelinesysteme, Software zur Leckerkennung und -ortung
Projektbeschreibung:
Für ca. 20 Produkte wurde die API zu firmeninternen Bibliotheken des SCADA-Systems von einer C- auf eine C++-Schnittstelle umgestellt und Code-Cleanup durchgeführt.
Tätigkeiten:
Technologien/Werkzeuge:
02/2010 ? 03/2012: Remote-Wartung eines Leit- und Sicherheitssystems
Kunde: Pichler Engineering GmbH, München
Branche:
Leit-, Informations- und Automatisierungssysteme (SCADA) für Pipelinesysteme, Software zur Leckerkennung und -ortung
Projektbeschreibung:
Das Produkt meines Arbeitgebers ist ein aus mehreren Dutzend Einzelapplikationen bestehendes Leit- und Sicherheitssystem (inkl. SCADA), das in diversen Kundenanlagen im Einsatz ist. Für einen Schlüsselkunden war ich dafür zuständig, Kundenanfragen zu bearbeiten, die für das reguläre Wartungsteam zu komplex waren.
Tätigkeiten:
01/2009 ? 01/2010: Optimierung intralogistischer Prozesse / Personaleinsatzplanung
Kunde: Axxom Software AG, München
Branche: Optimierung von Unternehmensprozessen in Logistik und Produktion
Projektbeschreibung:
Bei diesem Projekt waren verschiedene Produkte meines Arbeitgebers aus dem Bereich Logistikplanung und ?optimierung sowie Personaleinsatzplanung im Zentrallager eines der führenden Schweizer Unternehmen im Bereich Einzelhandel einzuführen und in die bestehende IT-Landschaft zu integrieren. Dazu waren sowohl erhebliche Erweiterungen der Produkte als auch umfangreiche kundenspezifische Implementierungen zu realisieren.
Tätigkeiten:
Technologien/Werkzeuge:
09/2008 ? 01/2010: Analysen im Bereich Logistikoptimierung
Kunde: Axxom Software AG, München
Branche: Optimierung von Unternehmensprozessen in Logistik und Produktion
Projektbeschreibung:
Import und Analyse von umfangreichen Daten aus intralogistischen Prozessen mit dem Ziel, konkrete Prozessoptimierungen zu erarbeiten und deren Einsparpotential zu quantifizieren.
Tätigkeiten:
ca. 6 Monate im Zeitraum 01/2007 ? 08/2008: Anlagensteuerung für Prüfstande
Kunde: Ramitek GmbH, Kaiserslautern, Ingenieurbüro Mess- und Regeltechnik
Projektbeschreibung:
Entwicklung einer Windows basierten Steuerung / Messwerterfassung für mehrere Pumpenprüfstände, die Daten über die Prüflinge aus einer vom Kunden bereitgestellten Datenbank liest und Prüfergebnisse in eine im Rahmen des Projekts entwickelte Datenbank schreibt. Die Messwerterfassung findet in mehreren parallelen Threads statt, die nebenläufig zum GUI-Thread und zum Thread für die Steuerung der Aktoren sind.
Tätigkeiten:
Technologien/Werkzeuge:
ca. 6 Monate im Zeitraum 01/2007 ? 08/2008: Gerätesteuerung im Bereich Biotechnologie
Kunde: Ramitek GmbH, Kaiserslautern, Ingenieurbüro Mess- und Regeltechnik
Projektbeschreibung:
Entwicklung einer PC-basierten Steuerungssoftware unter Windows für ein Gerät aus dem Bereich Biotechnologie. Die Ablaufsteuerung wird vom Anwender über Textdateien mit Steuerfolgen vorgegeben. Die Ablaufsteuerung ist in mehreren parallelen Threads nebenläufig zum GUI-Thread realisiert.
Tätigkeiten:
Technologien/Werkzeuge:
ca. 3 Monate im Zeitraum 01/2007 ? 08/2008: Anlagensteuerung für einen Prüfstand
Kunde: Ramitek GmbH, Kaiserslautern, Ingenieurbüro Mess- und Regeltechnik
Projektbeschreibung:
Entwicklung einer kompletten Anlagensteuerung unter Windows mit Datenbankanbindung und nebenläufigen Threads zur Steuerung und Messwerterfassung.
Tätigkeiten:
Technologien/Werkzeuge:
ca. 3 Monate im Zeitraum 01/2007 ? 08/2008: Anlagensteuerung mit Labview
Kunde: Ramitek GmbH, Kaiserslautern, Ingenieurbüro Mess- und Regeltechnik
Projektbeschreibung:
Entwicklung einer kompletten Anlagensteuerung mit Datenbankanbindung im Bereich Biotechnologie mittels National Instruments Labview.
Tätigkeiten:
Technologien/Werkzeuge:
12/2003 ? 12/2006:
Kunde: MERU Stiftung, Abteilung zur Erstellung von Anschauungsmaterialien
Tätigkeiten:
01/1996 ? 12/2003: selbständiger Softwareentwickler
04/1998 – 10/2003 Studium zum Diplom-Physiker an der Universität Hamburg, Abschlussnote 1,0
Softwarearchitektur mit UML, Erstellen von Klassen-, Komponenten-, Aktivitäts- und Sequenzdiagrammen für Design und Dokumentation, automatische Codegenerierung, Reverse Engineering
Vorgehensmodelle: Wasserfallmodell, V-Modell, Scrum
Test&Measurement, Automotive, Logistik, Leitsysteme, SCADA, Optimierung von Unternehmensprozessen, Elektrotechnik, Maschinenbau, Lasersintertechnologie (Additive Manufacturing, "3D-Druck"), Biotechnologie
07/2023 ? heute: Entwicklung von Softwarekomponenten eines MES
Kunde: BMW über NTT Data
Branche: Automotive
Projektbeschreibung:
Weiterentwicklung von und Bugfixes an Softwarekomponenten, die gemeinsam mit SPSen die Produktion von Fahrzeugkomponenten (Getriebe, Achsen, ?) für die von BMW produzierten Fahrzeuge steuern oder zur Darstellung von Informationen zum Produktionsprozess dienen. Die Softwarekomponenten laufen auf Linux-Servern, die Datenhaltung erfolgt auf separaten Oracle-Servern.
Das Gesamtsystem besteht aus einer Vielzahl einzelner Softwarekomponenten, die jeweils von moderater Komplexität sind und die zum größten Teil als eigenständige Prozesse laufen (ähnlich einer Microservice-Architektur). Die Kommunikation zwischen den Komponenten erfolgt größtenteils über ein von BMW selbst entwickeltes Protokoll, über das Daten im Textformat ausgetauscht werden.
Tätigkeiten:
Technologien/Werkzeuge:
07/2021 ? 06/2023: Serverapplikation zur Analyse großer Datenmengen
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Neuentwicklung einer Serverapplikation, die performance-optimiert eine SQL-Abfrage auf vielen (hunderttausend und mehr) einzelnen SQLite-Datenbanken mit identischem Schema ausführt. Der Server dient dazu, Analysen auf den Daten aus Fertigungsläufen von "3D-Druck"-Maschinen zu fahren (eine SQLite-Datenbank je Fertigungslauf).
Tätigkeiten:
Technologien/Werkzeuge:
11/2021 ? 04/2023: DB2-Applikationen um SQLite als alternatives DBMS erweitern
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Erweiterung von Bestandsapplikationen, um alternativ zu DB2 auch SQLite verwenden zu können. Parallel dazu wurde die monolithische DB2-Datenbank für SQLite in mehrere Datenbanken aufgeteilt, um z.B Export und Löschen alter Daten zu vereinfachen.
Tätigkeiten:
Entwurf eines Konzepts, um Unterschiede zwischen DB2 und SQLite so zu kapseln, dass möglichst viel Code DBMS-agnostisch ist, um den Umstellungs- und späteren Wartungsaufwand zu minimieren.
Sämtliche SQL-Abfragen so umgestellt, dass sie für DB2 und SQLite ausführbar sind (ggf. mit Fallunterscheidungen). Wo Unterschiede zwischen DB2 und SQLite zu groß waren, wurden separate Implementierungen erstellt.
Diverse Sonderbehandlungen implementiert, um Aufteilung auf mehrere Datenbanken zu ermöglichen (z.B. für Fremdschlüsselbeziehungen).
Erweiterung bestehender und Ergänzung neuer Unit-Tests.
Technologien/Werkzeuge:
Microsoft Visual Studio / C#
SQLite & DB2
VSTest
Git
05/2019 ? 10/2021: Neuentwicklung Datenbanksystem
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Neuentwicklung eines Datenbanksystems für alle im Zusammenhang mit Fertigungsläufen von "3D-Druck"-Maschinen relevanten Daten (Prozessdaten, Konfigurationsdaten der Bauaufträge, Informationen über die Bauteile, Ereignisse u.Ä.).
Das System besteht aus einem Windows-Service, der eine SQLite-Datenbank kapselt, einer Bibliothek für die Inter-Prozess-Kommunikation (gRPC) zur Anbindung der schreibenden Systeme sowie einer API für Lesezugriffe (Entity Framework). Das System bietet neben den reinen Schreib- und Lesezugriffen auch Funktionalität für den Ex- und Import. Im Rahmen der Neuentwicklung erfolgte eine komplette Überarbeitung des Datenbankschemas.
Tätigkeiten:
Anforderungen analysiert und mit Stakeholdern abgeklärt.
Lösungskonzepte erarbeitet und dokumentiert (Word-Dokumente und UML-Diagramme), Konzepte im Team vorgestellt, diskutiert und angepasst.
Technologien hinsichtlich Performance und anderer Anforderungen (z.B. Datenintegrität bei Absturz) evaluiert (SQLite, OPC UA, gRPC).
Entwurf und Dokumentation des Datenbankschemas.
Implementierungen am gesamten System, größtenteils in C#, teilweise in C++.
Erweiterung des von Entity Framework bereitgestellten Migrationsmechanismus, um trotz der Einschränkungen in SQLite, die Struktur bestehender Tabellen zu ändern, beliebige Schemaänderungen zu ermöglichen.
Implementierung eines generischen Mechanismus mittels Reflection, um empfangene gRPC-Nachrichten an einen weiteren Empfänger weiterzuleiten. Logik zur Vorhaltung bestimmter Nachrichten implementiert, um den zusätzlichen Empfänger bei verspätetem Zuschalten vollständig über den aktuellen Zustand des Bauvorgangs zu informieren.
Erstellen eines Generators für Testdaten, die in XML spezifiziert werden inkl. Visualisierung der XML-Eingangsdaten als HTML mittels XSLT.
Erstellen von Architekturdokumentation (UML und Textform).
Erstellen von Unit-Tests und automatisierten Integrationstests.
Technologien/Werkzeuge:
Microsoft Visual Studio / C# / C++
STL
SQLite
Entity Framework
UML / Enterprise Architect
gRPC
OPC UA
TFS / Azure DevOps
Git
XML
XSD
XSLT
VSTest
10/2016 ? 05/2019: Datenbankentwicklung
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Weiterentwicklung
eines Datenbankschemas für alle im Zusammenhang mit
Fertigungsläufen von "3D-Druck"-Maschinen
relevanten Daten (Prozessdaten, Konfigurationsdaten der Bauaufträge,
Informationen über die Bauteile, Ereignisse u.Ä.).
Weiterentwicklung
von C++-Bibliotheken für Datenbankzugriffe.
Tätigkeiten:
Erweiterungen am Datenbankschema konzeptioniert und implementiert unter Berücksichtigung von Speicherverbrauch und Performanceaspekten.
Relevante Anwendungsfälle für Lesezugriffe ermittelt; sichergestellt, dass diese mit ausreichender Performance möglich sind, ggf. geeignete Indizes eingeführt, bei Bedarf Ausführungsdiagramme analysiert.
Anpassungen an Export-/Import-Funktionalität (C++), z.B. Remapping von Auto-IDs und Überwachung des Transaktionslogs, um ein Überlaufen aufgrund von comitteten aber noch nicht zurückgeschriebenen Seiten zu verhindern.
Verbesserungen zur signifikanten Erhöhung der Schreibrate (C++).
Erweiterung eines Mechanismus, um bei Ausfall der Datenbank in Binärdateien zu schreiben mit der Möglichkeit, diese Daten später zu importieren (C++).
Funktionalität zur automatisierten Pflege der Datenbank (Löschen der ältesten Daten, Aktualisierung von Statistiken) implementiert (C++).
Anforderungen und Interfaceänderungen mit den Stakeholdern abstimmen.
Erstellen von Architekturdokumentation (UML und Textform).
Erstellen von Unit-Tests und automatisierten Integrationstests.
Technologien/Werkzeuge:
Microsoft Visual Studio / C++
UML / Enterprise Architect
STL & Boost
DB2 / IBM Data Studio
Google Test, VSTest
TFS & Git
05/2018 ? 05/2019: Neuentwicklung eines Monitoring-Systems
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Es wurde ein Nachfolger für das Monitoring-System aus dem vorangegangenen Projekt entwickelt. Das neue System bietet eine für den Anwender deutlich einfachere, modulare REST-API an, außerdem können Livedaten über einen OPC UA Server abgefragt werden; auch die Webapplikation (Front- und Backend) wurde komplett neu entwickelt.
Tätigkeiten:
C#-Bibliothek für Datenbankzugriffe mit dem Entity-Framework implementiert.
Bereitstellen von Daten über REST-API und OPC UA (C#).
Erstellen der Benutzerdokumentation der REST-API mittels Swagger.
Technologien/Werkzeuge:
Microsoft Visual Studio / C#
Entity Framework
OPC UA
JSON
Swagger
TFS / Azure DevOps
Git
10/2016 ? 05/2018: Weiterentwicklung eines webbasierten Monitoring-Systems
Kunde: EOS GmbH ? Electro Optical Systems, Krailling / München
Branche: Lasersintertechnologie (Additive Manufacturing, "3D-Druck")
Projektbeschreibung:
Weiterentwicklung eines Monitoring-Systems zur Abfrage des aktuellen Status sowie laufender oder abgeschlossener Fertigungsläufe von "3D-Druck"-Maschinen. Die Datenbasis bildet eine DB2-Datenbank, die Darstellung erfolgt über eine Webapplikation sowie eine iOS- und Android-App, die ihre Daten über einen REST-Service erhalten. Außerdem sind über eine SOAP-API beliebige Maschinendaten abfragbar.
Tätigkeiten:
Weiterentwicklung der dem SOAP-Service zugrundeliegenden C++-DLL, welche in XML formulierte komplexe Anfragen inklusive Schleifen, Fallunterscheidungen u.Ä. entgegennimmt und Ergebnisdaten als XML zurückliefert. Umfangreiche Refactorings sowie Weiterentwicklung der XML-Abfragesprache. Steigerung der Ausführungsgeschwindigkeit einiger Abfragen um den Faktor 20. Parallelisierung zeitkritischer Schleifen mit OpenMP.
Weiterentwicklung des REST-Service (PHP sowie Extensions in C++).
Neue Features konzeptioniert, spezifiziert und mit Stakeholdern abgestimmt.
Koordination der Zusammenarbeit mit externem Entwicklungspartner der Apps.
Anpassungen an der mit GWT / Java erstellten Webapp.
Anpassungen des SOAP-Service unter C# / WCF.
Konfiguration des Servers für die verschiedenen Komponenten des Monitoring-Systems, insbesondere Anpassungen der IIS-Konfiguration.
Implementierung von Lizenzprüfungen mit WIBU CodeMeter / CmDongle, Verschlüsseln von Executables mit WIBU AxProtector.
Erstellen von Unit-Tests und automatisierten Integrationstests.
Benutzer- und Architekturdokumentation (letztere in UML und Textform).
Technologien/Werkzeuge:
Microsoft Visual Studio / C++ / C#
DB2 / IBM Data Studio
PHP
IIS (Microsoft Internet Information Services)
UML / Enterprise Architect
Boost, STL, OpenMP
JSON, XML, XSD
TFS / Azure DevOps, Git
GWT / Java
WIBU CodeMeter und AxProtector
Google Test
02/2018 ? 03/2018: Analyse und Dokumentation Architektur von Bestandsapplikationen
Kunde: ProSiebenSat.1 Applications GmbH
Branche: Medien
Projektbeschreibung:
Erstellung einer Übersicht über die Architektur von einem guten Dutzend Bestandsapplikationen, um die für den Betrieb relevanten Zusammenhänge zu visualisieren. Hintergrund war die Übernahme des Betriebs durch das In-House-Operations-Team.
Tätigkeiten:
07/2013 ? 09/2016: (Teil-)Projektleitung und Softwarearchitektur Messsoftware
Kunde: Rohde & Schwarz GmbH & Co. KG, München
Branche: Test & Measurement
Projektbeschreibung:
Neuentwicklung einer Messsoftware unter Verwendung von Komponenten einer bestehenden Software mit geringerem Featureumfang und geringerer Flexibilität. Die Messsoftware läuft auf in Messgeräten verbauten PCs, steuert in mehreren parallelen Threads komplexe Messabläufe und nimmt die Messdatenaufbereitung, -analyse und -anzeige vor. Wesentlicher Bestandteil des Projekts ist es, eine Komponentenstruktur zu schaffen, mit der geeignete Teile der bestehenden Software in zwei anderen Projekten wiederverwendet und über eine möglichst schmale Schnittstelle mit neu zu erstellenden Komponenten verknüpft werden können.
Tätigkeiten als Projektleiter (formal ?Teilprojektleiter Software?, das Projekt umfasst auch Hardwareentwicklung, jedoch Alleinverantwortung für den Software-Teil):
Abgabe der Rolle als Teilprojektleiter am 01.04.2015, da wg. Umstrukturierung beim Kunden nur noch interne Mitarbeiter diese Rolle besetzen dürfen.
Tätigkeiten als Softwarearchitekt und Seniorentwickler:
Technologien/Werkzeuge:
09/2012 - 12/2013: Funktionserweiterung und Refactoring einer Messsoftware
Kunde: Rohde & Schwarz GmbH & Co. KG, München
Branche: Test&Measurement
Projektbeschreibung:
Durchführung größerer Funktionserweiterungen sowie von Refactoring-Maßnahmen an einer bestehenden Software, die auf in Messgeräten verbauten PCs läuft und in mehreren parallelen Threads komplexe Messabläufe steuert sowie die Messdatenaufbereitung, -analyse und -anzeige vornimmt.
Tätigkeiten:
Analyse der bestehenden Softwarearchitektur als Vorbereitung für Refactoring und größere Funktionserweiterungen
Durchführung und Test von Funktionserweiterungen
Durchführung von Refactorings sowohl im Bereich der Architektur als auch auf Ebene einzelner Methodenimplementierungen
Erweiterung bestehender mathematischer Algorithmen im Bereich Zeitbereichstransformation
Fehlersuche, -analyse und -behebung
Dokumentation bestehender und erweiterter Algorithmen, Online-Hilfe
Technologien/Werkzeuge:
04/2012 - 08/2012: Architektur Bildverarbeitungsschnittstellen
Kunde: Audi AG, Ingolstadt
Branche: Automotive
Projektbeschreibung:
Neu- und Weiterentwicklung von Schnittstellen zu Bildverarbeitungsmodulen von Fahrerassistenzsystemen zu Analyse- und Auswertungszwecken. Erstellung von Softwarekomponenten für Analyse- und Auswertungszwecke.
Tätigkeiten:
Technologien/Werkzeuge:
04/2011 ? 03/2012: Prognose von Gasverbrauch
Kunde: Pichler Engineering GmbH, München
Branche:
Leit-, Informations- und Automatisierungssysteme (SCADA) für Pipelinesysteme, Software zur Leckerkennung und -ortung
Projektbeschreibung:
Produktentwicklung einer Anwendung zur Prognose des Gasverbrauchs für Betreiber von Gasnetzen. Das Produkt beinhaltet ein Oracle-basiertes Archiv für Zeitreihen. Die Software läuft sowohl unter Windows als auch unter Linux.
Tätigkeiten:
Technologien/Werkzeuge:
01/2011 ? 03/2011: Erweiterung einer Webanwendung
Kunde: Pichler Engineering GmbH, München
Branche:
Leit-, Informations- und Automatisierungssysteme (SCADA) für Pipelinesysteme, Software zur Leckerkennung und -ortung
Projektbeschreibung:
Realisierung kundenspezifischer Anpassungen in einer Webanwendung mit Datenbankanbindung zur Administration von Tanklägern für Rohöl. Die Kommunikation mit bestehendem C++-Code wurde von JNI auf eine Webservice-Schnittstelle umgestellt.
Tätigkeiten:
Technologien/Werkzeuge:
06/2010 - 12/2010: Produktentwicklung Leckerkennungssoftware
Kunde: Pichler Engineering GmbH, München
Branche:
Leit-, Informations- und Automatisierungssysteme (SCADA) für Pipelinesysteme, Software zur Leckerkennung und -ortung
Projektbeschreibung:
Produktentwicklung einer Client-/Server-Anwendung zur Erkennung von Lecks in Rohrleitungsnetzen, die sowohl unter Windows als auch unter Linux lauffähig ist. Der serverseitige Teil der Anwendung besteht aus mehreren nebenläufigen Threads und läuft redundant auf mehreren Servern. Die auf Leckagen zu überwachenden Rohrleitungsabschnitte werden von der Anwendung dynamisch aus einem gerichteten Graphen ermittelt. Daten über den hydraulischen Zustand werden aus dem firmeneigenen SCADA bezogen.
Tätigkeiten:
Technologien/Werkzeuge:
02/2010 ? 05/2010: Umstellung bestehender Produkte auf neue API
Kunde: Pichler Engineering GmbH, München
Branche:
Leit-, Informations- und Automatisierungssysteme (SCADA) für Pipelinesysteme, Software zur Leckerkennung und -ortung
Projektbeschreibung:
Für ca. 20 Produkte wurde die API zu firmeninternen Bibliotheken des SCADA-Systems von einer C- auf eine C++-Schnittstelle umgestellt und Code-Cleanup durchgeführt.
Tätigkeiten:
Technologien/Werkzeuge:
02/2010 ? 03/2012: Remote-Wartung eines Leit- und Sicherheitssystems
Kunde: Pichler Engineering GmbH, München
Branche:
Leit-, Informations- und Automatisierungssysteme (SCADA) für Pipelinesysteme, Software zur Leckerkennung und -ortung
Projektbeschreibung:
Das Produkt meines Arbeitgebers ist ein aus mehreren Dutzend Einzelapplikationen bestehendes Leit- und Sicherheitssystem (inkl. SCADA), das in diversen Kundenanlagen im Einsatz ist. Für einen Schlüsselkunden war ich dafür zuständig, Kundenanfragen zu bearbeiten, die für das reguläre Wartungsteam zu komplex waren.
Tätigkeiten:
01/2009 ? 01/2010: Optimierung intralogistischer Prozesse / Personaleinsatzplanung
Kunde: Axxom Software AG, München
Branche: Optimierung von Unternehmensprozessen in Logistik und Produktion
Projektbeschreibung:
Bei diesem Projekt waren verschiedene Produkte meines Arbeitgebers aus dem Bereich Logistikplanung und ?optimierung sowie Personaleinsatzplanung im Zentrallager eines der führenden Schweizer Unternehmen im Bereich Einzelhandel einzuführen und in die bestehende IT-Landschaft zu integrieren. Dazu waren sowohl erhebliche Erweiterungen der Produkte als auch umfangreiche kundenspezifische Implementierungen zu realisieren.
Tätigkeiten:
Technologien/Werkzeuge:
09/2008 ? 01/2010: Analysen im Bereich Logistikoptimierung
Kunde: Axxom Software AG, München
Branche: Optimierung von Unternehmensprozessen in Logistik und Produktion
Projektbeschreibung:
Import und Analyse von umfangreichen Daten aus intralogistischen Prozessen mit dem Ziel, konkrete Prozessoptimierungen zu erarbeiten und deren Einsparpotential zu quantifizieren.
Tätigkeiten:
ca. 6 Monate im Zeitraum 01/2007 ? 08/2008: Anlagensteuerung für Prüfstande
Kunde: Ramitek GmbH, Kaiserslautern, Ingenieurbüro Mess- und Regeltechnik
Projektbeschreibung:
Entwicklung einer Windows basierten Steuerung / Messwerterfassung für mehrere Pumpenprüfstände, die Daten über die Prüflinge aus einer vom Kunden bereitgestellten Datenbank liest und Prüfergebnisse in eine im Rahmen des Projekts entwickelte Datenbank schreibt. Die Messwerterfassung findet in mehreren parallelen Threads statt, die nebenläufig zum GUI-Thread und zum Thread für die Steuerung der Aktoren sind.
Tätigkeiten:
Technologien/Werkzeuge:
ca. 6 Monate im Zeitraum 01/2007 ? 08/2008: Gerätesteuerung im Bereich Biotechnologie
Kunde: Ramitek GmbH, Kaiserslautern, Ingenieurbüro Mess- und Regeltechnik
Projektbeschreibung:
Entwicklung einer PC-basierten Steuerungssoftware unter Windows für ein Gerät aus dem Bereich Biotechnologie. Die Ablaufsteuerung wird vom Anwender über Textdateien mit Steuerfolgen vorgegeben. Die Ablaufsteuerung ist in mehreren parallelen Threads nebenläufig zum GUI-Thread realisiert.
Tätigkeiten:
Technologien/Werkzeuge:
ca. 3 Monate im Zeitraum 01/2007 ? 08/2008: Anlagensteuerung für einen Prüfstand
Kunde: Ramitek GmbH, Kaiserslautern, Ingenieurbüro Mess- und Regeltechnik
Projektbeschreibung:
Entwicklung einer kompletten Anlagensteuerung unter Windows mit Datenbankanbindung und nebenläufigen Threads zur Steuerung und Messwerterfassung.
Tätigkeiten:
Technologien/Werkzeuge:
ca. 3 Monate im Zeitraum 01/2007 ? 08/2008: Anlagensteuerung mit Labview
Kunde: Ramitek GmbH, Kaiserslautern, Ingenieurbüro Mess- und Regeltechnik
Projektbeschreibung:
Entwicklung einer kompletten Anlagensteuerung mit Datenbankanbindung im Bereich Biotechnologie mittels National Instruments Labview.
Tätigkeiten:
Technologien/Werkzeuge:
12/2003 ? 12/2006:
Kunde: MERU Stiftung, Abteilung zur Erstellung von Anschauungsmaterialien
Tätigkeiten:
01/1996 ? 12/2003: selbständiger Softwareentwickler
04/1998 – 10/2003 Studium zum Diplom-Physiker an der Universität Hamburg, Abschlussnote 1,0
Softwarearchitektur mit UML, Erstellen von Klassen-, Komponenten-, Aktivitäts- und Sequenzdiagrammen für Design und Dokumentation, automatische Codegenerierung, Reverse Engineering
Vorgehensmodelle: Wasserfallmodell, V-Modell, Scrum
Test&Measurement, Automotive, Logistik, Leitsysteme, SCADA, Optimierung von Unternehmensprozessen, Elektrotechnik, Maschinenbau, Lasersintertechnologie (Additive Manufacturing, "3D-Druck"), Biotechnologie