Eine 7.Klasse bekam 13 Wochen Schwerpunkt-Unterricht Geometrie, Physik und Mathematik als Epochen mit ca. 20 Wochenstunden.
Hier ging es neben dem Beobachten und Beschreiben auch ums Denken und darum, Gedanken niederzuschreiben und lesend zu erfassen. Das hört sich einfacher an als es ist :)
Bug Fixing, Feature Entwicklung, Systementwicklung, Integration, Systemtests
Analyse komplexer Fehler mit speziellem high-performance-shared-memory -Trace-Konzept wg Echtzeit-Problemen. Typsichere Anpassung der google-protobuf C++ API. JSON basierte Datenbank mit protobuf interface.
Anpassungen der Advantest-V93000-Funktions- und Performance-Tests für CPUs, und Wafer
Entwicklung in C++ zur Erweiterung der Kunden-spezifischen Test-Infrastruktur für Setups mit parallelen Test Patterns. Simulation der Prozessor-externen Komponenten in Echtzeit (Nanosekunden)-
Integration und Test auf Zielumgebung.
Für ein Embedded-Multiprozessor-Multi-OS-System entstand u.a. ein Logging-Subsystem.
Meine Aufgabe war es, eine Logging-Infrastruktur zu entwerfen und umzusetzen, welche gut in die spezielle Systemarchitektur passt.
Das Logging Modul muss in einer Offline-Umgebung bis zu 2 Jahre lang möglichst viele Daten speichern und bei Speicherknappheit weniger interessante Daten verwerfen. Es darf unter keinen Umständen die Hauptanwendung stören.
Anhand eines in Perl entwickelten Code-Analyse- und Generierungswerkzeugs konnten spezielle Komponenten im Anwendungscode so modifiziert werden, dass eine Art C++-Inspection möglich wurde. Auf diese Weise kann die Logging-Auswertung aus kompakt geloggten CAN Nachrichten auf C++-Symbole zurückverweisen.
Die Laufzeit-Logging-Komponente kombiniert C++ Abstraktion (bis C++14) mit hoch performantem Realtime-C-Level-Systemcode (shared memory, sockets), so dass auch bei größeren Datenmengen die Anwendung nicht ausgebremst werden kann. Verhalten der Logging-Komponente kann zur Compile- und zur Laufzeit detailliert konfiguriert werden, um ggfs auch bei der Entwickler-Fehlersuche zu unterstützen.
Robotics, SW-Architektur Franka Emika (März-April 2020)
Für einen Roboter-Hersteller sollte die SW-Architektur eines Sicherheits-Moduls weiterentwickelt und in Design und Implementierung überführt werden. Leider wurde dieses Projekt Corona-bedingt auf unbestimmte Zeit verschoben.
Prototyp für Endlager-Planung (April 2020)
Im Rahmen einer Projektaquise wurde ein Prototyp entwickelt, welcher 3D-Meshes einliest und diese miteinander vereinigt.
Schwerpunkt war die Behandlung von 3D-Körpern, die sich nicht überlappen.
Unterschreitet deren Abstand einen bestimmten Wert, soll trotzdem eine geeignete Vereinigung erfolgen.
Der Prototyp wurde in C++ entwickelt unter Verwendung der freien Bibliothek 'cork', welche 3D-boolsche Operationen ausführen kann. Dazu mussten die vom Auftraggeber bereitgestellten Daten noch aufbereitet werden. Anschließend wurden geeignete Objekte hinzu generiert, damit sich nur knapp berührende Objekte tatsächlich wie spezifiziert überlappen.
Leider hat der erfolgreiche Prototyp dem Kunden vor allem deutlich gemacht, dass seine eigentlichen Probleme ganz woanders liegen, so dass eine Beauftragung nicht zustande kam.
SSD-Test für BBraun, Melsungen
Entwicklung eines speziellen Lasttests einer SSD für Embedded Linux. Ziel war der Nachweis an den Hersteller, dass die Timing-Spezifikation nicht eingehalten wurde. Dieser Nachweis konnte erbracht und dokumentiert werden. Dauer Juni-Juli 2020
CAN Schnittstelle für Deditec (Juli-August 2020)
Basierend auf einem Prototyp sollte eine weitere CAN-Schnittstelle an einen Raspberry PI3 mittels Overlays angebunden werden, so dass diese per Standard-API zu nutzen ist. Ein einfache Test wurde anhand einer CANOpen-Demo durchgeführt.
Für eine unter einem Embedded-Linux (Karo, kernel 2.6.24) laufendes C++/Qt4 Beatmungsgerät (Notfallmedizin) wurde folgendes durchgeführt:
- Analyse des existierenden Logging-Systems
- Bereitstellen einer Logging Architektur, welche die Persistenz von Log Einträgen tatsächlich sicherstellt auch im Falle von Brown Out etc. Der polymorphe Ansatz wurde durch OO umgesetzt.
- Anpassen des Designs an die konkrete Embedded-Umgebung mit Realtime-Anforderungen
- Implementieren in C++, Test
Für den Endkunden wurde die Kommunikation einer AS400/iSeries- sowie Windows-Legacy Anwendung um asynchrones, verteiltes Messaging via MQ-Series und JMS erweitert.
Schwerpunkt war neben der Analyse des unvollständig dokumentierten Bestands-Codes die C++Codierung korrekter MQ-Header vom Typ MQRFH2 für die JMS Transportschicht.
Das Projekt wurde wegen strategischen Entscheidungen des Endkunden C&A nach drei Monaten eingestellt.
In order to support the projects migration towards production large transaction procedures had been applied on big data sets.
Adaptions of my previously development high speed tracing modules allowed detailed performance analysis.
The detected bottlenecks could then be fixed by specific adaptions to business level coding.
Some rework on C++-generics speeded up compilation.
All project code was ported to comply c++11 standard.
In order to collect detailed performance analysis data a new trace tool was designed (and programmed):
requirements:
- no changes in generated business level code necessary
- nano second resolution
- max 5% impact on run time performance
- 0 impact if turned off by configuration
- up to 300MB trace data per second
- off line trace analysis
My solution involved system level C-programming to pass trace data efficiently via shared memory as well as high-level C++-abstractions to allow for flexible tracing configuration both at run time and compile time.
A separate set of Perl-scripts was provided to analyze the generated trace data. Call graphs with accumulated times were generated as well as informative spread sheets on various performance details.
Together with 2 colleages the already provided functionality of AS400/RPG/CL/DB2-emulation was extended, again using 'Modern C++' approaches and OO based implementation.
Due to the R&E nature of the project many components had to be redesigned because of newly 'discovered' features etc.
CL scripts had to be converted into a CL-like syntax compilable by standard C++ and preprocessor.
To support such 'domain specific' C++ preprocessor macros and C++-templates are developed.
Test framework extensions using perl and python.
Based on the previously developed, monolithic prototype a runtime environment needs to implement fuctionality of an AS400's 'session'.
Converted RPG and CL code need to be invoked via very specific call interface.
I successfully designed and implemented those components using test driven development approach. All new components were integrated via CI/CD by providing python test scripts.
Zur Abnahme größerer Steuerungsanlagen sind regressionsfähige Lasttests einschließlich Simulation der zu steuernden Anlagenteile erforderlich
Ausgehend von bestehenden (Alt-)Simulatoren wird eine
C++-Simulationsframework von mir verantwortlich entwickelt
und in den Testlabors eingesetzt. Schwerpunkte sind neben
Portierbarkeit (Linux,Windows,gcc,VC++) die Konfigurierbarkeit
der parallelen Workflow-Threads sowie die Integration in bestehende Simulationsumgebungen und Prozesse.
Genutzt wurde MDA (Model Driven Architecture) , "Modern C++" und Objektorientierung.
Innerhalb eines Infrastrukturprojekts zur funkgestützten Datenversorgung der Zug-Flotte wurde von mir ein (UML-basiertes) DV-Konzept für die Web-basierte technische und fachliche Administration erstellt.
Parallel dazu stellte ich einen Prototyp aus Java-Servlets bereit.
Die Konzeption der Oracle-Datenbank wurde von mir als Coaching-Teilprojekt mit einer Berufsanfängerin umgesetzt.
Die umfangreichen, vom Kunden bereitgestellten ARIS-Konzept-Dokumente waren semantisch inkonsistent. Dank eines nebenher entwickelten Perl-Skripts konnten die Fehler identifiziert und korrigiert werden.
In einer fortgeschrittenen Projektphase wurde das Security/ Benutzerkonzept von mir überarbeitet, implementiert und in die Anwendungsarchitektur integriert.
Als Technischer Leiter des Teams "Kommunikationsarchitektur"
verantwortlich für Entwicklung eines UML-getriebenen Code-Generators (Perl/Java/C++/XML) als Enterprise Application Intergration (EAI) Werkzeug.
Neben der Entwicklung der sicheren Transportschicht unter Nutzung der Message Routing Software Tuxedo waren die Schwerpunkte Design/Coding Standards , Portabilität, Wartbarkeit, Training der Anwendungsentwickler.
Analyse, Design und Implementierung einer ausfallsicheren
Datenverteilung an 700 unbesetzte Endgeräte via ftp
Schwerpunkt war u.a. die zuverlässige Erkennung von Unterbrechungen der Netzwerkverbindungen bei verschiedenen Kommunikationspartnern (Windows NT3.x, NT4, Solaris) sowie das Wiederaufsetzen der Datenübertragung.
Es entstand ein RFC-konformer FTP-Client in JAVA sowie ein Ftp-Manager, welcher die Verteilung von der Zentrale über die Server in den Niederlassungen an die Endgeräte sicherstellte.
Wiederverwendbare Komponente zur 2D-Visualisierung graph-basierter Daten. Design und Programmierung eines Prototyps mit Schwerpunkt auf Knoten- bzw. Kanten-bezogene Benutzerinteraktion
Ein spezieller, überwachter Applikations-Server holt Wetter-vorhersagen vom Deutschen Wetterdienst in das DB-Intranet.
Gesteuert durch Schlüssel werden die Daten in regionale
Lotus-Notes Datenbanken eingespielt.
Analyse, Design, Implementierung
1996 - 1997: Projekt: Software zur Erstellung von Spezialverpackungen
Kunde: ISC (freiberuflich, als Gewerk)
Aufgaben:
Technologien:
Borland C++, Delphi, Windows 95
1996: Projekt Assembler Konvertierung von Z80 auf i386SX
Der Kunde stellte seine sicherheitsrelevante Kraftwerksteuerungssoftware um von einem 8-bit System auf ein 16/32-bit System.
Der Assembler-Code war vom Kunden bereits halbautomatisch von Z80 auf i386sx umgestellt worden. Die etwas aufwändigere Anpassung der Sprung-Befehle sollte von mir als Studenten manuell durchgeführt werden.
Auf meine Anregung hin entstand stattdessen ein geeigneter Parser, welcher die Sprungbefehle und relevanten Register identifizierte und automatisch auf die neuen Assembler-Codefragmente umsetzte.
Im Gegensatz zu einer manuellen Umstellung konnte der Kunde auch später noch Anpassungen seines neuen Code-Modells automatisch umsetzen.
1995 - 1996: Projekt: CAD-Werkzeug für Fertigbetonteile
Kunde: DICAD AG , STRABAG AG (freiberuflich, als Gewerk)
Aufgaben:
Schwerpunkt:
numerische und geometrische Stabilität, standardkonforme C-Programmierung
Technologien:
C, DOS 5.0, Watcom
Das Zertifikat kann auf Nachfrage eingesehen werden.
1991:
Studium der Physik an der UNI Heidelberg, Vordiplom , Abbruch 1997
1988:
Facharbeiterbrief Informationselektronik
1986:
Abitur
SW Entwicklung (Architektur,Design,agil,OO) . C++, Java, Perl, SQL, Unix/Linux/Embedded/Window
2D/3D-CAD-Algorithmen, 3D Visualisierung (openGL), Algorithmenentwicklung (als C++ Templates)
Design Patterns
Enterprise Application Integration (EAI) (J2EE, Tuxedo, Edifact, XML)
Model Driven Architecture, Model Driven Design:
Codegenerierung (u.a. Kommunikations-Frameworks)
XML, XPath, XSLT für Datenmodellierung, Kommunikation, Persistenz
Workflow
Netzwerk-Programmierung
IP, TCP, UDP, RFC-Protokolle wie http, ftp, smtp, pop etc.
VoIP: Protokolle SIP, RTP, RTCP
Software allgemein
Hardware/Elektronik
Medizintechnik
Verkehr (Bahn)
Internet (eCommerce)
Bau (CAD-Entwicklung)
Verpackung/Logistik
Telekommunikation (VoIP)
Bank (Security)
Automotive
Eine 7.Klasse bekam 13 Wochen Schwerpunkt-Unterricht Geometrie, Physik und Mathematik als Epochen mit ca. 20 Wochenstunden.
Hier ging es neben dem Beobachten und Beschreiben auch ums Denken und darum, Gedanken niederzuschreiben und lesend zu erfassen. Das hört sich einfacher an als es ist :)
Bug Fixing, Feature Entwicklung, Systementwicklung, Integration, Systemtests
Analyse komplexer Fehler mit speziellem high-performance-shared-memory -Trace-Konzept wg Echtzeit-Problemen. Typsichere Anpassung der google-protobuf C++ API. JSON basierte Datenbank mit protobuf interface.
Anpassungen der Advantest-V93000-Funktions- und Performance-Tests für CPUs, und Wafer
Entwicklung in C++ zur Erweiterung der Kunden-spezifischen Test-Infrastruktur für Setups mit parallelen Test Patterns. Simulation der Prozessor-externen Komponenten in Echtzeit (Nanosekunden)-
Integration und Test auf Zielumgebung.
Für ein Embedded-Multiprozessor-Multi-OS-System entstand u.a. ein Logging-Subsystem.
Meine Aufgabe war es, eine Logging-Infrastruktur zu entwerfen und umzusetzen, welche gut in die spezielle Systemarchitektur passt.
Das Logging Modul muss in einer Offline-Umgebung bis zu 2 Jahre lang möglichst viele Daten speichern und bei Speicherknappheit weniger interessante Daten verwerfen. Es darf unter keinen Umständen die Hauptanwendung stören.
Anhand eines in Perl entwickelten Code-Analyse- und Generierungswerkzeugs konnten spezielle Komponenten im Anwendungscode so modifiziert werden, dass eine Art C++-Inspection möglich wurde. Auf diese Weise kann die Logging-Auswertung aus kompakt geloggten CAN Nachrichten auf C++-Symbole zurückverweisen.
Die Laufzeit-Logging-Komponente kombiniert C++ Abstraktion (bis C++14) mit hoch performantem Realtime-C-Level-Systemcode (shared memory, sockets), so dass auch bei größeren Datenmengen die Anwendung nicht ausgebremst werden kann. Verhalten der Logging-Komponente kann zur Compile- und zur Laufzeit detailliert konfiguriert werden, um ggfs auch bei der Entwickler-Fehlersuche zu unterstützen.
Robotics, SW-Architektur Franka Emika (März-April 2020)
Für einen Roboter-Hersteller sollte die SW-Architektur eines Sicherheits-Moduls weiterentwickelt und in Design und Implementierung überführt werden. Leider wurde dieses Projekt Corona-bedingt auf unbestimmte Zeit verschoben.
Prototyp für Endlager-Planung (April 2020)
Im Rahmen einer Projektaquise wurde ein Prototyp entwickelt, welcher 3D-Meshes einliest und diese miteinander vereinigt.
Schwerpunkt war die Behandlung von 3D-Körpern, die sich nicht überlappen.
Unterschreitet deren Abstand einen bestimmten Wert, soll trotzdem eine geeignete Vereinigung erfolgen.
Der Prototyp wurde in C++ entwickelt unter Verwendung der freien Bibliothek 'cork', welche 3D-boolsche Operationen ausführen kann. Dazu mussten die vom Auftraggeber bereitgestellten Daten noch aufbereitet werden. Anschließend wurden geeignete Objekte hinzu generiert, damit sich nur knapp berührende Objekte tatsächlich wie spezifiziert überlappen.
Leider hat der erfolgreiche Prototyp dem Kunden vor allem deutlich gemacht, dass seine eigentlichen Probleme ganz woanders liegen, so dass eine Beauftragung nicht zustande kam.
SSD-Test für BBraun, Melsungen
Entwicklung eines speziellen Lasttests einer SSD für Embedded Linux. Ziel war der Nachweis an den Hersteller, dass die Timing-Spezifikation nicht eingehalten wurde. Dieser Nachweis konnte erbracht und dokumentiert werden. Dauer Juni-Juli 2020
CAN Schnittstelle für Deditec (Juli-August 2020)
Basierend auf einem Prototyp sollte eine weitere CAN-Schnittstelle an einen Raspberry PI3 mittels Overlays angebunden werden, so dass diese per Standard-API zu nutzen ist. Ein einfache Test wurde anhand einer CANOpen-Demo durchgeführt.
Für eine unter einem Embedded-Linux (Karo, kernel 2.6.24) laufendes C++/Qt4 Beatmungsgerät (Notfallmedizin) wurde folgendes durchgeführt:
- Analyse des existierenden Logging-Systems
- Bereitstellen einer Logging Architektur, welche die Persistenz von Log Einträgen tatsächlich sicherstellt auch im Falle von Brown Out etc. Der polymorphe Ansatz wurde durch OO umgesetzt.
- Anpassen des Designs an die konkrete Embedded-Umgebung mit Realtime-Anforderungen
- Implementieren in C++, Test
Für den Endkunden wurde die Kommunikation einer AS400/iSeries- sowie Windows-Legacy Anwendung um asynchrones, verteiltes Messaging via MQ-Series und JMS erweitert.
Schwerpunkt war neben der Analyse des unvollständig dokumentierten Bestands-Codes die C++Codierung korrekter MQ-Header vom Typ MQRFH2 für die JMS Transportschicht.
Das Projekt wurde wegen strategischen Entscheidungen des Endkunden C&A nach drei Monaten eingestellt.
In order to support the projects migration towards production large transaction procedures had been applied on big data sets.
Adaptions of my previously development high speed tracing modules allowed detailed performance analysis.
The detected bottlenecks could then be fixed by specific adaptions to business level coding.
Some rework on C++-generics speeded up compilation.
All project code was ported to comply c++11 standard.
In order to collect detailed performance analysis data a new trace tool was designed (and programmed):
requirements:
- no changes in generated business level code necessary
- nano second resolution
- max 5% impact on run time performance
- 0 impact if turned off by configuration
- up to 300MB trace data per second
- off line trace analysis
My solution involved system level C-programming to pass trace data efficiently via shared memory as well as high-level C++-abstractions to allow for flexible tracing configuration both at run time and compile time.
A separate set of Perl-scripts was provided to analyze the generated trace data. Call graphs with accumulated times were generated as well as informative spread sheets on various performance details.
Together with 2 colleages the already provided functionality of AS400/RPG/CL/DB2-emulation was extended, again using 'Modern C++' approaches and OO based implementation.
Due to the R&E nature of the project many components had to be redesigned because of newly 'discovered' features etc.
CL scripts had to be converted into a CL-like syntax compilable by standard C++ and preprocessor.
To support such 'domain specific' C++ preprocessor macros and C++-templates are developed.
Test framework extensions using perl and python.
Based on the previously developed, monolithic prototype a runtime environment needs to implement fuctionality of an AS400's 'session'.
Converted RPG and CL code need to be invoked via very specific call interface.
I successfully designed and implemented those components using test driven development approach. All new components were integrated via CI/CD by providing python test scripts.
Zur Abnahme größerer Steuerungsanlagen sind regressionsfähige Lasttests einschließlich Simulation der zu steuernden Anlagenteile erforderlich
Ausgehend von bestehenden (Alt-)Simulatoren wird eine
C++-Simulationsframework von mir verantwortlich entwickelt
und in den Testlabors eingesetzt. Schwerpunkte sind neben
Portierbarkeit (Linux,Windows,gcc,VC++) die Konfigurierbarkeit
der parallelen Workflow-Threads sowie die Integration in bestehende Simulationsumgebungen und Prozesse.
Genutzt wurde MDA (Model Driven Architecture) , "Modern C++" und Objektorientierung.
Innerhalb eines Infrastrukturprojekts zur funkgestützten Datenversorgung der Zug-Flotte wurde von mir ein (UML-basiertes) DV-Konzept für die Web-basierte technische und fachliche Administration erstellt.
Parallel dazu stellte ich einen Prototyp aus Java-Servlets bereit.
Die Konzeption der Oracle-Datenbank wurde von mir als Coaching-Teilprojekt mit einer Berufsanfängerin umgesetzt.
Die umfangreichen, vom Kunden bereitgestellten ARIS-Konzept-Dokumente waren semantisch inkonsistent. Dank eines nebenher entwickelten Perl-Skripts konnten die Fehler identifiziert und korrigiert werden.
In einer fortgeschrittenen Projektphase wurde das Security/ Benutzerkonzept von mir überarbeitet, implementiert und in die Anwendungsarchitektur integriert.
Als Technischer Leiter des Teams "Kommunikationsarchitektur"
verantwortlich für Entwicklung eines UML-getriebenen Code-Generators (Perl/Java/C++/XML) als Enterprise Application Intergration (EAI) Werkzeug.
Neben der Entwicklung der sicheren Transportschicht unter Nutzung der Message Routing Software Tuxedo waren die Schwerpunkte Design/Coding Standards , Portabilität, Wartbarkeit, Training der Anwendungsentwickler.
Analyse, Design und Implementierung einer ausfallsicheren
Datenverteilung an 700 unbesetzte Endgeräte via ftp
Schwerpunkt war u.a. die zuverlässige Erkennung von Unterbrechungen der Netzwerkverbindungen bei verschiedenen Kommunikationspartnern (Windows NT3.x, NT4, Solaris) sowie das Wiederaufsetzen der Datenübertragung.
Es entstand ein RFC-konformer FTP-Client in JAVA sowie ein Ftp-Manager, welcher die Verteilung von der Zentrale über die Server in den Niederlassungen an die Endgeräte sicherstellte.
Wiederverwendbare Komponente zur 2D-Visualisierung graph-basierter Daten. Design und Programmierung eines Prototyps mit Schwerpunkt auf Knoten- bzw. Kanten-bezogene Benutzerinteraktion
Ein spezieller, überwachter Applikations-Server holt Wetter-vorhersagen vom Deutschen Wetterdienst in das DB-Intranet.
Gesteuert durch Schlüssel werden die Daten in regionale
Lotus-Notes Datenbanken eingespielt.
Analyse, Design, Implementierung
1996 - 1997: Projekt: Software zur Erstellung von Spezialverpackungen
Kunde: ISC (freiberuflich, als Gewerk)
Aufgaben:
Technologien:
Borland C++, Delphi, Windows 95
1996: Projekt Assembler Konvertierung von Z80 auf i386SX
Der Kunde stellte seine sicherheitsrelevante Kraftwerksteuerungssoftware um von einem 8-bit System auf ein 16/32-bit System.
Der Assembler-Code war vom Kunden bereits halbautomatisch von Z80 auf i386sx umgestellt worden. Die etwas aufwändigere Anpassung der Sprung-Befehle sollte von mir als Studenten manuell durchgeführt werden.
Auf meine Anregung hin entstand stattdessen ein geeigneter Parser, welcher die Sprungbefehle und relevanten Register identifizierte und automatisch auf die neuen Assembler-Codefragmente umsetzte.
Im Gegensatz zu einer manuellen Umstellung konnte der Kunde auch später noch Anpassungen seines neuen Code-Modells automatisch umsetzen.
1995 - 1996: Projekt: CAD-Werkzeug für Fertigbetonteile
Kunde: DICAD AG , STRABAG AG (freiberuflich, als Gewerk)
Aufgaben:
Schwerpunkt:
numerische und geometrische Stabilität, standardkonforme C-Programmierung
Technologien:
C, DOS 5.0, Watcom
Das Zertifikat kann auf Nachfrage eingesehen werden.
1991:
Studium der Physik an der UNI Heidelberg, Vordiplom , Abbruch 1997
1988:
Facharbeiterbrief Informationselektronik
1986:
Abitur
SW Entwicklung (Architektur,Design,agil,OO) . C++, Java, Perl, SQL, Unix/Linux/Embedded/Window
2D/3D-CAD-Algorithmen, 3D Visualisierung (openGL), Algorithmenentwicklung (als C++ Templates)
Design Patterns
Enterprise Application Integration (EAI) (J2EE, Tuxedo, Edifact, XML)
Model Driven Architecture, Model Driven Design:
Codegenerierung (u.a. Kommunikations-Frameworks)
XML, XPath, XSLT für Datenmodellierung, Kommunikation, Persistenz
Workflow
Netzwerk-Programmierung
IP, TCP, UDP, RFC-Protokolle wie http, ftp, smtp, pop etc.
VoIP: Protokolle SIP, RTP, RTCP
Software allgemein
Hardware/Elektronik
Medizintechnik
Verkehr (Bahn)
Internet (eCommerce)
Bau (CAD-Entwicklung)
Verpackung/Logistik
Telekommunikation (VoIP)
Bank (Security)
Automotive