Wolfgang Petroschka teilweise verfügbar

Wolfgang Petroschka

Software-Architekt & -Entwickler: C++ (98/11/14/17), REST, MQTT, IIoT

teilweise verfügbar
Profilbild von Wolfgang Petroschka Software-Architekt & -Entwickler: C++ (98/11/14/17), REST, MQTT, IIoT aus Trossingen
  • 78647 Trossingen Freelancer in
  • Abschluss: Dipl.-Mathematiker (FH)
  • Stunden-/Tagessatz: nicht angegeben
  • Sprachkenntnisse: deutsch (Muttersprache) | englisch (verhandlungssicher) | französisch (Grundkenntnisse)
  • Letztes Update: 19.03.2020
SCHLAGWORTE
PROFILBILD
Profilbild von Wolfgang Petroschka Software-Architekt & -Entwickler: C++ (98/11/14/17), REST, MQTT, IIoT aus Trossingen
SKILLS
Fachlicher Schwerpunkt
Software-Architekt & -Entwickler, Mathematiker, Schwerpunkt C++ (98/11/14/17), Coach/Trainer Visual Studio & C++

Key-Skills
Mathematiker/Spezialist für C++ (98/11/14/17) mit besonderem Erfahrungsschatz in der Erweiterung, im nachhaltigen Refactoring und in der Restrukturierung von großen, gewachsenen Projekten (Umfang von 20-100+ Personenjahren). In diesem Umfeld ist auch die Fähigkeit zur schnellen Orientierung in "fremdem" Code gereift.

Ebenso große Erfahrung in der Neuentwicklung, davon in 5 Projekten mit signifikantem Umfang (Teamgröße 5 - 10 Mitarbeiter, mehrjährige Entwicklungsdauer).

Training/Coaching
Zu folgenden Themen wurden bereits Trainings/Workshops durchgeführt:
  • Visual Studio (2010) für C++-Entwickler
  • Debugging mit Visual Studio
Dozent für C++ an der DHBW Stuttgart, Campus Horb März 2015 - Dezember 2016

Technische Skills

Programmiersprachen
  • C++ (98/11/14/17)
  • Java
  • C#
  • C
  • Delphi
  • Python
  • Pascal
  • Basic
  • NC-Programmierung/G-Code
  • PostScript
  • JavaScript
  • Perl
  • PHP
  • Kotlin
Bibliotheken/Frameworks/APIs
  • STL
  • Boost
  • libcurl
  • BlueZ
  • Qt 4, Qt 5
  • MFC
  • VCL
  • WinAPI
  • .NET 3.0, 3.5, 4.0
  • WCF
  • nHibernate
  • OpenGL
  • WPF
  • Grit 2.6
  • Segger emFile, emUSB, embOS
  • LibMPSSE
  • Linux/Unix Programming Interface
  • rapidjson
  • CUDA
  • paho.mqtt.c
  • Mosquitto
  • CivetWeb
Dokumentbeschreibungssprachen
  • XML
  • (X)HTML & CSS
  • JSON
Datenbanken
  • MySQL
  • MS SQL Server
  • SQL
  • Access
  • BDE
  • ODBC
  • Sybase (SQL Anywhere)
  • MySQL Workbench
  • SQLite
  • ORM nHibernate
  • OTL 4.0
Protokolle
  • HTTP
  • HTTPS
  • TLS
  • MQTT
  • D-Bus
  • RTP
  • TCP/IP
  • UDP
  • Bluetooth/Bluetooth LE (BLE)
  • GATT
Methodiken
  • REST
  • Microservices
  • IoT
  • UML2
  • Objektorientierte Analyse (OOA)
  • Objektorientiertes Design (OOD)
  • Objektorientierte Programmierung (OOP)
  • Methoden der agilen Entwicklung (XP, Scrum)
Tools
IDEs
  • Microsoft Visual Studio 6/2003/2005/2008/2010/2012/2013/2015/2017
  • Eclipse & Eclipse CDT
  • IDEA IntelliJ
  • Android Studio
  • Visual Studio Code
  • IAR Embedded Workbench (6.x)
  • Borland C++ Builder 4/5
  • Borland Delphi 5/7
  • Borland C++
  • Turbo Pascal
  • Sourcery CodeBench Lite
Build & Compiler
  • make/nmake
  • SCons
  • CMake
  • MSBuild
  • gcc
  • clang

Revision Control Systeme
  • git
  • Subversion (svn)
  • Visual Source Safe 6.0 (VSS)
  • Perforce
  • PVCS

Unit tests
  • Boost.Test
  • googletest
  • Microsoft UnitTest-Framework
  • NUnit
  • JUnit
Sonstige
  • BugZilla
  • Jira
  • Team Foundation Server
  • Altova XML Spy
  • Visual Paradigm
  • SparxSystems Enterprise Architect
  • Code Smith
  • T4 text templates
  • Confluence
  • valgrind
  • Tera Term
  • putty
  • Postman
  • mqtt-spy
  • curl
  • Maple
  • VLC
  • PhonerLite
Branchen
  • Maschinenbau
  • Sondermaschinenbau
  • Anlagenbau
  • Robotersteuerung
  • Automatisierungstechnik
  • Softwarehersteller
  • Automotive
  • Autobranche
  • Unterhaltungselektronik
  • Kommunikation

Ausbildung
03/1998 – 02/2003
Fachhochschule Stuttgart – Hochschule für Technik
Studium Mathematik
Abschluss als Dipl.-Math. (FH)
PROJEKTHISTORIE
  • 04/2014 - 06/2020

    • auf Anfrage
    • 500-1000 Mitarbeiter
    • Telekommunikation
  • Embedded Entwicklung für Gebäudekommunikationssystem
  • Beschreibung:
    Für ein Gebäudekommunikationssystem wurde für ein Gateway, das zur Anbindung des proprietären Kommunikationssystems an IPbasierte
    Netzwerke dient, ein Software-Modul entwickelt, das für die Verteilung und Überwachung von Kommunikations-, Benutzer- und
    Systemanforderungen zuständig ist (z.B. Rufe, Video, Konfiguration).

    Im Fokus standen hierbei die Skalierbarkeit (Parallelisierung, Multithreading: bei Einsatz auf leistungsfähigerer Hardware sollte diese
    auch genutzt werden können), Stabilität, Testbarkeit und Wartbarkeit der Software.

    Hauptaufgaben waren die Vorgabe der Server-Architektur, die Entwicklung von zentralen Komponenten des Servers, die Vorgabe der
    Architektur für die plattformunabhängige Client-Bibliothek, die Vorgabe der Teststrategie und der Testbibliothek, das Coaching des
    Teams in C++ (insbesondere C++11/C++14) und die Durchführung von Code-Reviews (dabei war insbesondere die Identifizierung von
    Potential zur Verbesserung der Code-Qualität und die Vorgabe von Maßnahmen dieses auszuschöpfen wichtig).

    Eine große Teilaufgabe lag in der effizienten Verteilung von Videoströmen über Netzwerke. Ebenso wurde die Anbindung an eine MySQLDatenbank
    realisiert.

    Weiterhin wurde ein Systemtest-Framework aufgesetzt. Dieses führt automatisiert Testfälle durch, indem es das System initialisiert und
    dann die Test-Scripts (Python) auf einen oder mehrere Test-Clients verteilt. Weiterhin synchronisiert es die Clients und sammelt die
    Testergebnisse ein.

    Das System hat eine REST Schnittstelle erhalten. Für diese habe ich den kompletten Software-Stack auf Server- und Client-Seite
    entworfen und federführend implementiert (HTTP-Server, Anbindung an C++-Applikation, Ressourcen-Mapping und Anbindung an
    Systemkern, Übersetzung von Transportformat in native Datentypen und zurück, HTTP-Requests). Zum Kommunikations-Layer wurde
    ebenso ein MQTT-basiertes Message-System hinzugefügt. Die Anbindung wurde mit paho.mqtt.c entwickelt. Auf der Server-Seite wird
    Mosquitto verwendet. Die API wird mit OpenAPI 3.0 definiert. Es wurde ein Generator für Java-Client-Code zum Aufruf der API entwickelt.
    Der Generator benutzt die API-Spezifikation als Eingabe. Der generierte Code wird unter anderem auch für REST API-Tests verwendet.
    Damit basiert die Kommunikationsschicht auf einem modernen IoT-Technologiestack.

    Ein weiterer Aufgabenbereich lag in der Vorgabe der Architektur und der Mitentwicklung von diversen Clients (Windows-Client,
    Innensprechstelle, Tür).

    Die Bereitstellung eines robusten Update-Mechanismus für Embedded Geräte, inklusiver der kompletten Logik, wurde auch
    implementiert. Hier war es wichtig, dass die Geräte auch im Fehlerfall funktionsfähig bleiben. Deswegen wurde auch diverse Recovery-
    Mechanismen eingebaut (Fallback auf vorherige Firmware, Recovery-Modus).

    In einem weiteren Evolutionsschritt wurde die monolithische Systemarchitektur auf eine Microservice-Architektur umgestellt. Diese
    Umstellung habe ich koordiniert und architektonisch gestaltet.

    Nun folgte die Implementierung der Anbindung an einen cloud-basierten Kommunikationsdienst, der zur Ruf- und Videoverteilung an
    Apps über das Internet dient.

    Als nächstes folgte die Erstellung der Software für eine neue Innenstation. Die Anbindung der Innenstation, die via WLAN ans lokale Netz angeschlossen wird, an den Cloud-Dienst, wurde ebenso umgesetzt. Die Inbetriebnahme des Geräts erfolgt über Bluetooth Low Energy (Bluetooth LE, BLE) und einer GATT-API. Hierfür wurde zum einen auf Geräteseite BlueZ eingesetzt (D-Bus API, Management API) und zum anderen eine Android Test-App unter Android Studio mit Kotlin entwickelt. Wichtiger Fokus war eine sichere Inbetriebnahme mit zusätzlicher interner Verschlüsselung auf GATT-Ebene.

    Projektmetrik:
    Laufzeit: >5 Jahre
    Umfang: >50 Personenjahre

    Position: Consultant, Architekt & Entwickler

    Teamgröße: 10+

    Technologien:

    Sprachen
    - C++ (C++11, C++14, C++17)
    - C
    - Java
    - Python
    - Kotlin
    - SQL

    Bibliotheken/Frameworks/API
    - STL/C++-Standardbibliothek
    - googletest
    - Linux Programming Interface
    - Boost
    - rapidjson
    - libcurl
    - OTL
    - paho.mqtt.c
    - Mosquitto
    - BlueZ
    - CivetWeb

    Tools
    - Eclipse CDT
    - Visual Studio 2015
    - IDEA IntelliJ
    - MySQL Workbench
    - Subversion
    - git
    - Bitbucket
    - valgrind
    - Tera Term
    - putty
    - Confluence
    - Jira
    - Postman
    - mqtt-spy
    - PhonerLite
    - VLC
    - curl

    Sonstiges
    - SCons
    - gcc
    - gdb (Debugging und Remote Debugging)

    Besonderheiten
    - Multithreading
    - Netzwerk (TCP/IP, UDP, Sockets)
    - RTP
    - H.264, MJPEG
    - REST
    - TLS
    - HTTP, HTTPS
    - MQTT
    - Scrum
    - IoT/IIoT
    - JSON
    - Bluetooth/Bluetooth LE, GATT
    - Microservices
    - D-Bus
    - WLAN
    - TFTP

    Plattform
    - Zielplattform: Embedded Linux. Windows (für Client-Software)
    - Entwicklungsplattform: Debian Linux, Fedora Linux, Windows (für Client-Software)

  • 07/2012 - 08/2014

    • auf Anfrage
    • 1000-5000 Mitarbeiter
    • Pharma und Medizintechnik
  • Embedded Entwicklung für ein medizintechnisches Gerät
  • Beschreibung:
    Auf Anfrage

    Projektmetrik:
    Laufzeit: 26 Monate
    Umfang: 10 Personenjahre

    Position: Entwickler & Consultant

    Teamgröße: 4


    Technologien:

    Sprachen
    - C
    - C++

    Bibliotheken/Frameworks/APIs
    - Segger emFile, emUSB, embOS, emWin
    - STL
    - Boost, Boost.Test
    - DirectC
    - LibMPSSE
    - TinyXML

    Tools
    - IAR Embedded Workbench 6.4, 6.5
    - Visual Studio 2010/2013
    - Sourcery CodeBench Lite
    - Hercules
    - Jira
    - Subversion
    - Doxygen
    - Cppcheck
    - Uncrustify

    Sonstiges
    - Segger J-Link

    Besonderheiten
    - ISO/IEC 62304
    - EN/IEC 60601

    Plattform
    - Zielplattform: ARM 9 und ARM Cortex-M3, teilweise ohne Betriebssystem, teilweise mit embOS
    - Entwicklungsplattform: Windows 7, Ubuntu Linux 12.04

  • 01/2011 - 06/2014

    • auf Anfrage
    • >10.000 Mitarbeiter
    • Industrie und Maschinenbau
  • Pflege, Wartung & Erweiterung eines Programmiersystems für Werkzeugmaschinen (Stanzen & Laser), Mentoring & Coaching von Nachwuchsentwicklern
  • Beschreibung:
    An einem grafischen Programmiersystem für Stanz- und Lasermaschinen mussten laufend Wartungsarbeiten und Weiterentwicklung
    betrieben werden. Dabei lag mein Schwerpunkt fachlich im Bereich Werkzeuge und Technologien, technisch im Bereich Algorithmen,
    Datenbanken und Oberflächen.

    Eine große Aufgabe war die Konsolidierung der Anbindung eines Systems mittels WCF, eine andere die Entwicklung und
    Implementierung eines komplexen Algorithmus zum Einsatz von Rollenwerkzeugen. Weiterhin war ich für diverse Themen im Gebiet
    Werkzeuge und NC-Code-Generierung verantwortlich.

    Ebenso habe ich andere Entwickler laufend bei Refactoring- und Debugging-Aufgaben unterstützt.
    Außerdem habe ich bei der Einarbeitung und Förderung junger Entwickler (zumeist Universitäts-Absolventen im Fach Informatik) Wissen
    und Praxiserfahrung übertragen und saubere Vorgehensweisen und Anti-Patterns an einem realen System erläutert. Dabei habe ich auch
    meinen tiefen Kenntnisse im Bereich C++ weitergegeben und für eine steile Lernkurve bei den Entwicklern gesorgt.
    Als Vorgehensmodell in der Entwicklung wurde hier Scrum eingesetzt.

    Projektmetrik:
    Laufzeit: 42 Monate
    Umfang: > 100 Personenjahre

    Position: Entwickler & Consultant

    Teamgröße: 15

    Technologien:

    Sprachen:
    - C++
    - C#

    Bibliotheken/Frameworks/APIs:
    - STL
    - Boost
    - Grit 2.6
    - Qt
    - ODBC
    - .Net 4.0
    - WCF

    Datenbanken:
    - Microsoft SQL Server 2005 & 2008
    - Microsoft Access

    Tools:
    - Visual Studio 2005 & 2010
    - Perforce
    - PVCS
    - SparxSystems Enterprise Architect
    - make
    - Jira
    - Code Smith

    Sonstiges:
    - NC-Programmierung/-Generierung, G-Code
    - make
    - cygwin
    - yacc/lex

    Besonderheiten:
    - sehr großes, über 2 Jahrzehnte gewachsenes System
    - Mischung von unmanaged und managed Code (C++, managed C++, C#)
    - Verwendung/Entwicklung von Asynchronous State Machines (ASM)

    Plattform:
    - Windows XP, Vista, 7

  • 11/2010 - 12/2010

  • Produktentwicklung Archiv-Recovery-Tool
  • Beschreibung:

    Software-Tool mit den Features Analyse, Recovery und Extrahierung für ein properitäres Archivierungssystem. Es ermöglicht Batch-
    Prüfung und Recovery der Archivstruktur und eine Detailprüfung archivierter Daten.
    Zu den Aufgaben gehörte die Analyse des Archivierungsformates, Abschätzung rettbarer Zustände (auch für teilweise
    Wiederherstellung) und die Entwicklung einer intuitiven Oberfläche zur leichten Handhabung von vielen Archiven und deren Inhalt.
    Dabei wurde u.a. ein Checksummen-Algorithmus mittels statistischer Methoden analysiert und implementiert. Weiterhin wurde für das
    Tool eine Testumgebung für automatische Extraktionstests erstellt.

    Projektmetrik:
    Laufzeit: 1,5 Monate
    Umfang: 6 Personenmonate

    Position: Entwickler & Architekt

    Teamgröße: 2

    Technologien:

    Sprachen:
    - C# (Endprodukt)
    - C++ (für die ersten Prototypen)
    - PHP (für Analyse Extraktionslogs)

    Bibliotheken:
    - .Net 4.0
    - WPF

    Tools:
    - Visual Studio 2010
    - Subversion
    - HxD Hexeditor
    - WinMerge

    Besonderheiten:
    - Multi-Threading in Extraktions- und Analyselogik sowie in GUI

    Plattform:
    - Windows 7

  • 10/2010 - 11/2010

    • auf Anfrage
    • 250-500 Mitarbeiter
    • Industrie und Maschinenbau
  • Erstellung einer Beobachtungs- und Logging-Applikation für eine Produktionsanlage
  • Beschreibung:
    Konsolidierung der Überwachung einer Produktionsanlage (z.B. Betriebsmittel- und Rohstoffverbrauch, Produktionskennzahlen), die
    bisher durch diverse unabhängige Software-Pakete durchgeführt wurde. Ersetzt wurde die bisher genutzte Software durch eine Lösung
    mit einer Client-Server-Architektur.
    Folgende Aufgaben werden durch die neue Software abgedeckt:
    * Erfassung von Parametern und Kennzahlen von Siemens S7 PLCs
    * Betriebsdatenerfassung (BDE)-Rückmeldung an PPS-System
    * Logging in MS SQL Server
    * Visualisierung der erfassten Daten

    Projektmetrik:
    Laufzeit: 1,5 Monate
    Umfang: 4 Personenmonate

    Position: Architekt & Entwickler

    Teamgröße: 4

    Technologien:

    Sprachen:
    - C#

    Bibliotheken/Frameworks/APIs:
    - .Net 4.0
    - WPF
    - Silverlight
    - WCF
    - ADO.NET
    - ACCON-AGLink
    - log4net

    Datenbanken:
    - Microsoft SQL Server 2008 Express
    - SQL Anywhere 9

    Tools:
    - Visual Studio 2010
    - Subversion, TortoiseSvn

    Sonstiges:
    - XML (Konfiguration des Servers)
    - EVOlite PPS-System

    Besonderheiten:
    - Analyse der aktuellen Lösung und Entwicklung einer Migrationsstrategie
    - SOA
    - Multithreading
    - PLC/SPS

    Plattform:
    - Windows 7

  • 08/2010 - 08/2010

    • auf Anfrage
    • 10-50 Mitarbeiter
    • Industrie und Maschinenbau
  • Erstellung eines Prototyps für die Kernfunktionalität eines Prozessüberwachungs- und -steuerungs-Frameworks inkl. Hardware- Anbindung und Demo-UI
  • Beschreibung:
    Ziel des Frameworks ist die Bereitstellung einer Client-Server-Architektur, die es ermöglicht, eine beliebige Anzahl von Systemen (z.B.
    PLC, SAP-System, Datenbank, Anwendung, ...) über eine einheitliche Schnittstelle zu überwachen, zu steuern und zu vernetzen. Dabei ist
    eine Hohe Skalierbarkeit bezüglich der Menge der gesteuerten Systeme essentiell.
    Für diese Aufgabenstellung musste eine grundlegende Architektur entworfen werden und ein Proof of concept-Prototyp erstellt werden,
    der einen vertikalen Durchstich durch das System darstellt (vom UI bis zur Hardware).

    Projektmetrik:
    Laufzeit: 1 Monat
    Umfang: 2 Personenmonate

    Position: Architekt & Entwickler

    Teamgröße: 2

    Technologien:

    Sprachen:
    - C#

    Bibliotheken/Frameworks/APIs:
    - .Net 4.0
    - WPF
    - ACCON-AGLink

    Datenbanken:
    - Microsoft SQL Server 2008 Express

    Tools:
    - Visual Studio 2010

    Besonderheiten:
    - Analyse der Anforderung
    - Analyse der abzulösenden Software
    - Entwurf der Architektur
    - Multithreading
    - Überwachung und Steuerung u.a. von Siemens S7

    Plattform:
    - Windows 7

  • 10/2009 - 07/2010

    • auf Anfrage
    • 10-50 Mitarbeiter
    • Internet und Informationstechnologie
  • Neuentwicklung, Organisations-, Facility- und Zutritts-Management
  • Beschreibung:
    Entwicklung einer Web-basierten Lösung mit SOA. Die Kommunikationsschicht wurde mit WCF umgesetzt. Implementiert wurde mit C#
    unter Visual Studio 2008, später unter Visual Studio 2010. Für das User Interface wurden einerseits HTML, CSS und Javascript sowie
    andererseits Silverlight eingesetzt. Als Webserver kam IIS 6 und 7 zum Einsatz. Server Betriebssysteme waren Windows 2003 und
    Windows 2008. Konsequentes Unit-Testing mit dem Microsoft UnitTest-Framework.

    Position: Architekt/Projekt-Manager/Entwickler
    Meine primäre Aufgabe bestand in der Analyse (OOA) der Anforderungen und dem Objektorientierten Design (OOD) der Logik-Schicht.
    Ebenso war ich für das Projekt-Management verantwortlich und habe hier ein agiles Entwicklungsmodell, das an XP und Scrum angelehnt
    war, eingeführt. Weiterhin war ich für die Umsetzung von Teilen der Service-Logik in C#, Bereitstellung des WCF-Webservice und der
    Anbindung der Service Logik an einen Microsoft SQL Server 2005 und 2008 mittels nHibernate zuständig. Zusätzlich habe ich diverse
    Imports implementiert.

    Projektmetrik:
    Laufzeit: 1 Jahr
    Umfang: 5 Personenjahre

    Teamgröße: 6

    Technologien:

    Sprachen:
    - C#

    Bibliotheken/Frameworks/APIs:
    - .NET 3.5, .NET 4.0

    Kommunikation:
    - SOAP
    - WCF

    Datenbanken:
    - MS SQL Server 2008
    - nHibernate
    - SQL

    Tools:
    - Visual Studio 2008 & 2010
    - Subversion
    - TFS 2010
    - Visual Paradigm

    Sonstiges:
    - XML
    - IIS 6, 7
    - Internet Explorer 6, 7
    - WWF
    - KWD
    - Enterprise Library, Unity
    - T4
    - Unity

    Besonderheiten:
    - SOA
    - Dependency injection
    - Code-Generierung (C#)
    - Unit-Tests

    Plattform:
    Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008

  • 01/2007 - 09/2009

    • auf Anfrage
    • 50-250 Mitarbeiter
    • Industrie und Maschinenbau
  • Neuentwicklung Anlagensteuerungs-Framework
  • Beschreibung:
    Die Kernfunktionaliät der Software ist die Erzeugung von NC-Code für 5- und 6-achsige CNC-Maschinen (mit Siemens Sinumerik 840D
    und Siemens S7). Auf der Bedienerseite sind die Anlagen mit einem Industrie-PC (PCU 50) mit Windows Embedded-Betriebssystem
    ausgestattet. Anwendung findet die Software ebenso auf externen Arbeitsplatz-PCs zur Arbeitsvorbereitung und zur Simulation.
    An die Software werden höchste Ansprüche an Stabilität, Usability und Genauigkeit gestellt.

    Weitere Details siehe „Weiterentwicklung und Pflege Anlagensteuerungs-Framework“.

    Position: Projektleiter/Architekt/Entwickler
    Meine Hauptaufgabe bestand in der Vorgabe der Anforderungen sowie deren Umsetzung in Analyse (OOA) und Design (OOD). Ebenso
    war ich für das Projekt-Management zuständig.
    Zusätzlich habe ich bei der Implementierung von Kernkomponenten mit C++ mitentwickelt. Hierbei handelte es sich hauptsächlich um
    Algorithmen im mathematisch/kinematischen/simulatorischen Bereich. Ebenso habe ich das Grundkonzept für ein dynamisches, aus dem
    Modell generierten GUI unter Anwendung von Qt4 erarbeitet.

    Projektmetrik:
    Laufzeit: 3 Jahre
    Umfang: 10 Personenjahre

    Teamgröße: 5

    Technologien:

    Sprachen:
    - C++
    - PHP
    - G-Code

    Bibliotheken/Frameworks/APIs:
    - Boost
    - STL
    - Qt 4
    - SQLApi
    - dxflib
    - SINUMERIK HMI programming package

    Kommunikation:
    - COM
    - OPC
    - DDE
    - Profibus

    Datenbanken:
    - MySQL
    - PostgreSQL
    - SQL

    Tools:
    - Visual Studio 2005
    - Subversion
    - yWorks yEd

    Sonstiges:
    - XML
    - UML
    - Excel

    Besonderheiten:
    - frei programmierbarer Bearbeitungsablauf- Multithreading
    - State machines
    - Persistenz
    - Adynerisches GUI
    - Code-Generierung (C++ & G-Code)
    - Mathematik (Bewegungsalgorithmen, Kinematik)
    - Scheduling
    - Plattformübergreifende Prozesskontrolle
    - Naked objects-Pattern
    - Multithreading

    Plattform:
    - Windows XP (Embedded) auf PCU50
    - Sinumerik 840D CNC Power/Solution Line
    - Simatik SPS

  • 03/2003 - 09/2009

    • auf Anfrage
    • 50-250 Mitarbeiter
    • Industrie und Maschinenbau
  • Weiterentwicklung und Pflege Anlagensteuerungs-Framework
  • Beschreibung:
    Die Kernfunktionaliät der Software ist die Erzeugung von NC-Code für die 5- und 6-achsigen CNC-Schleifmaschinen aus eigener
    Produktion. Dabei wird auf eine Drei-Säulen-Strategie gesetzt: Die Produkte, die geschliffen werden können, kommen aus den drei
    Bereichen Werkzeuge (z.B. Stufenbohrer, Fräser, Abwälzfräser, Schnecken), Medizinaltechnik (z.B. Knieimplantate, Hüftimplantate,
    Raspeln) und Sonderanwendungen (z.B. Automobil, Luftfahrt, Abrichtschleifscheiben).

    An die Software werden höchste Ansprüche an Stabilität, Usability und Genauigkeit gestellt. Oft werden vom Kunden Toleranzen im
    Mikrometerbereich gefordert. Plattform für die Anwendungen sind Steuerungen aus dem Hause Siemens, die auf Bedienerseite mit
    einem Industrie-PC mit Windows-Betriebssystem ausgestattet sind. Anwendung findet die Software ebenso auf externen Arbeitsplatz-PCs
    zur Arbeitsvorbereitung und zur Simulation.

    Um das Kernprodukt zur NC-Code-Erzeugung mit ca. 200 Plug-Ins existiert ein breites Umfeld von Tools. Darunter sind unter anderem
    eine Datenbankanwendung zur Verwaltung der eingesetzten Werkzeuge (z.B. Schleifscheiben und Fräser), ein 2,5D-CAD-System, eine
    2D-Grafik für die Nutprogrammierung, das Kinematikdefinitionsmodul, ein NC-Code-Editor und diverse Konfigurationsprogramme
    vorhanden.

    Ein weiteres Highlight der Software-Palette ist die eigenentwickelte 3D-Simulation, mit welcher die Kinematik der Maschine, der Abtrag
    am Werkstück sowie Kollisionsproblematiken betrachtet werden können.
    Ebenso wird die Software zur Steuerung von Automatisierungslösungen für den mannlosen Betrieb der Anlagen entwickelt.
    Automatisierungen umfassen z.B. Lösungen mit Robotern, Stößel-Handlings oder Kettenmagazinen.
    Großer Wert wird auch auf die Automatisierung der Software-Entwicklung selbst gelegt.
    Es existiert eine breitgefächerte Tool-Chain zur Qualitätssicherung, zur Erstellung der Software und von Installern.
    Ältere Software-Versionen wurden mit Object Pascal mit der Delphi-IDE erstellt. Die neue Generation wird mit C++ mit Visual Studio
    entwickelt. Ein besonderes Augenmerk wurde diesmal auch auf die Portabilität gelegt, um auch Steuerungen mit einem Nicht-Windows-
    Betriebssystem (z.B. Linux) bedienen zu können.

    Besonders an der neuen Software sind die Definition der Software-Module mit einer Meta-Sprache aus der C++-Code generiert wird.
    Datenspeicherung, GUI und andere Konzepte entstehen automatisch aus der Modul-Definition, es ist keine manuelle Programmierung
    von Rahmen-Code nötig.

    Projektmetrik:
    Laufzeit: 10+ Jahre
    Umfang: 30+ Personenjahre

    Position: Projektleiter/Architekt/Entwickler

    Teamgröße: ca. 10

    Technologien:

    Sprachen:
    - Object Pascal
    - G-Code

    Bibliotheken/Frameworks/APIs:
    - VCL
    - SINUMERIK HMI programming package

    Kommunikation:
    - DDE
    - COM
    - OPC

    Datenbanken:
    - Access
    - SQL
    - ADO
    - Jet

    Tools:
    - Delphi 5
    - Delphi 7
    - Visual SourceSafe 6.0

    Sonstiges:
    - Excel (Import von Daten via COM-Schnittstelle)

    Besonderheiten:
    - Refactoring: Umstrukturierung Plug-in-System, Extrahieren, reimplementieren und reintegrieren der Kommunikationsschnittstelle,
    Konsolidierung, Performance-Optimierung
    - Code-Generierung (G-Code)
    - Mathematik (Bewegungsalgorithmen, Kinematik)
    - Plug-in basiertes Framework

    Plattform:
    - Windows NT 4.0 (Embedded), Windows XP (Embedded) auf PCU50
    - Sinumerik 840D CNC Power Line
    - Simatik SPS

  • 03/2007 - 09/2007

    • auf Anfrage
    • 50-250 Mitarbeiter
    • Industrie und Maschinenbau
  • Neuentwicklung einer konfigurierbaren Scheduling-Software zur Zuführungssteuerung und Produktionsanlagenbestückung
  • Beschreibung:
    Mit dieser Software wird in einem GUI grafisch die Belegung von unterschiedlichen Paletten mit verschiedenen Werkstücken und den
    entsprechenden Bearbeitungsprogrammen konfiguriert.

    Von den Paletten werden die Werkstücke via Roboter in die Schleifmaschine geladen und nach der Bearbeitung wieder entladen. Die
    Software kommuniziert mit dem Fanuc Roboter und der Siemens Sinumerik 840D und steuert damit den vollautomatischen Beladungsund
    Fertigungsprozess. Dabei wird erreicht, dass der Großteil der Automatisierungsvorgänge hauptzeitparallel abläuft.

    Zusätzlich kann in der Software die Abarbeitungsreihenfolge definiert werden und auch Besonderheiten wie das Weitertakten von
    Werkstücken in Zusammenarbeit von Maschine und Roboter, wenn die Teile nicht in einer Aufspannung bearbeitet werden können,
    werden abgebildet.

    Die Software gibt es in einer Ausführung für einkanalige und zweikanalige NCs. Die zweikanalige Variante ist in der Lage, noch mehr
    Vorgänge zu parallelisieren. Hier läuft das steuernde System auch multithreaded, um die parallelen Vorgänge optimal bedienen zu
    können.

    Die Steuerungslogik wird durch State Machines abgebildet.

    Projektmetrik:
    Laufzeit: 0,5 Jahre
    Umfang: 1 Personenjahr

    Position: Architekt/Entwickler

    Teamgröße: 2

    Technologien:

    Sprachen:
    - Object Pascal
    - G-Code

    Bibliotheken/Frameworks/APIs:
    - VCL
    - SINUMERIK HMI programming package

    Kommunikation:
    - Profibus
    - COM
    - OPC

    Datenbanken:
    - Access
    - ADO
    - SQL

    Tools:
    - Delphi 7
    - Visual SourceSafe 6.0

    Besonderheiten:
    - Fanuc Roboter
    - State Machine
    - 1- und mehrkanalige Variante
    - Multithreading

    Plattform:
    - Windows XP (Embedded) auf PCU50
    - Sinumerik 840D CNC Power/Solution Line
    - Simatik SPS

  • 10/2002 - 02/2003

    • auf Anfrage
    • >10.000 Mitarbeiter
    • Automobil und Fahrzeugbau
  • Integration einer Bluetooth-Schnittstelle
  • Beschreibung:
    Voranalyse und Start einer prototypischen Entwicklung für die Integration einer Bluetooth-Schnittstelle in ein KFZ-Kombiinstrument. Über
    die Bluetooth-Schnittstelle sollte ein Mobiltelefon angebunden werden, um Informationen aus dem Internet zu laden.

    Projektmetrik:
    Laufzeit: 5 Monate
    Umfang: 5 Personenmonate

    Position: Entwickler

    Teamgröße: 1

    Technologien:

    Sprachen:
    - C

    Bibliotheken/Frameworks/APIs:
    - WinAPI

    Tools:
    - Visual C++ 6
    - Greenhill Compiler

    Besonderheiten:
    - Windows Demo-Client

    Plattform:
    - Ercosek (32-Bit Micro-Controller)
    - Windows 2000/XP (Demo-Client)

  • 07/2000 - 01/2003

    • auf Anfrage
    • 50-250 Mitarbeiter
    • Internet und Informationstechnologie
  • Mifare-Kartenanwendung
  • Beschreibung:
    Die Anwendung dient dazu, Studentenausweise auszulesen und zu beschreiben. Dazu gehört ein mit VCL entwickeltes GUI, die
    Datenbankanbindung via BDE und die Anbindung der Hardware über RS232. Teil der Aufgabenstellung war die Entwicklung eines
    Abstraktions-Layers für das Protokoll der Hardware, um die Kommunikation mit dem Leser zu kapseln.

    Projektmetrik:
    Laufzeit: 1,5 Jahre
    Umfang: 4 Personenmonate

    Position: Entwickler

    Teamgröße: 1

    Technologien:

    Sprachen:
    - C++

    Bibliotheken/Frameworks/APIs:
    - VCL
    - STL

    Datenbanken:
    - BDE

    Tools:
    - Borland C++ Builder 5

    Sonstiges:
    - RS232

    Besonderheiten:
    - Hardware-Anbindung
    - Abstraktions-Layer

    Plattform:
    - Windows 95/98/NT4.0

  • 05/2001 - 06/2001

    • auf Anfrage
    • 5000-10.000 Mitarbeiter
    • Automobil und Fahrzeugbau
  • Ansteuerung eins Mobiltelefons über RS232
  • Beschreibung:
    Ansteuerung eines Siemens-Mobiltelefons, um aus einer Windows-Anwendung wählen zu können. Zusätzlich stehen andere über ATBefehle
    zur Verfügung stehende Funktionen wie z.B. das Auslesen des Telefonbuchs zur Auswahl.
    Dazu wurde das Telefon über eine RS232-Schnittstelle an das System angebunden und über AT-Befehle gesteuert.

    Projektmetrik:
    Laufzeit: 2 Monate
    Umfang: 2 Personenmonate

    Position: Entwickler

    Teamgröße: 1

    Technologien:

    Sprachen:
    - C

    Bibliotheken/Frameworks/APIs:
    - WinAPI

    Tools:
    - Visual C++ 6

    Sonstiges:
    - AT-Befehle

    Plattform:
    - Windows NT 4.0

  • 04/2001 - 05/2001

    • auf Anfrage
    • >10.000 Mitarbeiter
    • Konsumgüter und Handel
  • Signalanalyse-Tool
  • Beschreibung:
    Für die Halbleiterproduktion wurde ein Tool benötigt, das eine Signalanalyse mit Hilfe einer FFT (Fast Fourier Transform) durchführte.
    Dazu wurde von einer Kollegin ein GUI mit C und Tcl/Tk entwickelt. Ich habe hierzu die darunterliegenden Algorithmen implementiert:
    - Portierung von bestehendem C-Code zur FFT von einem Solaris-System
    - Druckausgabe der Kurven mit PostScript
    - Histogramm-Analyse

    Projektmetrik:
    Laufzeit: 6 Monate
    Umfang: 8 Personenmonate

    Position: Entwickler

    Teamgröße: 2

    Technologien:

    Sprachen:
    - C++
    - PostScript

    Tools:
    - Visual C++ 6
    - Borland Builder 5
    - gcc

    Besonderheiten:
    - FFT (Schnelle Fourier-Transformation, Fast Fourier Transform)
    - Multiplattform-Entwicklung

    Plattform:
    - Windows NT 4.0
    - Linux
    - Solaris

  • 05/2001 - 05/2001

    • auf Anfrage
    • Pharma und Medizintechnik
  • Code-Review
  • Beschreibung:
    Review von Defibrilator-Software. Die bisher nur auf dem deutschen Markt vertriebenen Geräte sollten auch auf dem amerikanischen
    Markt eingeführt werden. Daher musste die Software gewisse QS- und Zertifizierungsmaßnahmen durchlaufen. Dazu gehörte ein Code-
    Review durch unabhängige Experten. Dieses habe ich zusammen mit eine Kollegin durchgeführt.

    Projektmetrik:
    Laufzeit: 2 Wochen
    Umfang: 1 Personenmonat

    Position: Reviewer

    Teamgröße: 2

    Technologien:

    Sprachen:
    - C

    Sonstiges:
    - PC-Lint

  • 03/2001 - 03/2001

    • auf Anfrage
    • >10.000 Mitarbeiter
    • Konsumgüter und Handel
  • Grafische Debugging-Tools für TV-Geräte
  • Beschreibung:
    Für ein neu entwickeltes TV-Geräte wurden folgende Debugging-Tools benötigt:
    1. Speicherfragmentierungs- und Memory-Leak-Analyse: Anzeige des Hauptspeichers als Grafik, die bestimmte Speicherblöcke als
    Rechtecke darstellt. Jedes Subsystem bekommt eine eigene Farbe zugewiesen. So kann anhand des „Kachelmusters“ untersucht
    werden, welche Subsysteme den Speicher fragmentieren und welche Memory-Leaks verursachen.

    2. Analyse des internen Message-Systems: Alle internen Messages des Systems werden in Binärdateien gedumpt. Diese Dateien können
    eingelesen werden und als sortier- und filterbare Tabellen dargestellt werden (Quelle, Ziel, Nachrichtentyp, Zeitstempel, usw.).
    Dabei muss auch eine Big-endian Little-endian Konvertierung durchgeführt werden.

    Projektmetrik:
    Laufzeit: 1 Monat
    Umfang: 1 Personenmonat

    Position: Entwickler

    Teamgröße: 1

    Technologien:

    Sprachen:
    - C++

    Bibliotheken/Frameworks/APIs:
    - VCL
    - STL

    Tools:
    - Borland Builder 4

    Besonderheiten:
    - Big-Endian-/Little-Endian-Problematiken

    Plattform:
    - Windows NT 4.0

  • 09/2000 - 02/2001

    • auf Anfrage
    • < 10 Mitarbeiter
    • Internet und Informationstechnologie
  • C++-Code-Analyse-Tool
  • Beschreibung:
    Tool, das auf Grund von Source-Code-Analyse unter anderem diese Features bietet:
    - im Projekt enthaltene Source-Dateien
    - Aufruf-Graphen (inkl. Rekursionserkennung)
    - Klassenhierarchien (inkl. Member-Funktionen)
    Dabei können makefiles, Visual C++ 6-Projekte und Borland C++ Builder 4/5-Projekte als Startpunkt gewählt werden.

    Projektmetrik:
    Laufzeit: 0,5 Jahre
    Umfang: 0,5 Personenjahre

    Position: Entwickler

    Teamgröße: 1

    Technologien:

    Sprachen:
    - C++

    Bibliotheken/Frameworks/APIs:
    - MFC
    - STL

    Tools:
    - Visual C++ 6

    Plattform:
    - Window NT 4.0, Windows 2000

ZEITLICHE UND RÄUMLICHE VERFÜGBARKEIT
Vor-Ort Einsätze in D7

verfügbar ab Juli 2020
KONTAKTANFRAGE VERSENDEN

Nachricht:

Absenderdaten:

WEITERE PROFILE IM NETZ