2017 (2 Monate): Entwicklung eines hybriden Systems
Rolle: Freiberuflich
Bereich: Beratung und Entwicklung
Beschreibung:
Eine bestehende C++-Code-Basis wird in Python gewrappt und um neue Merkmale erweitert. Damit wird sie leicht im umgebenden Python Ökosystem nutzbar. Umsetzung einer proprietären nativen Persistenzschicht. Integration in eine Webservices-Umgebung.
Aufgaben:
Beratung, Entwicklung, Schulung
Werkzeuge:
Python 3.6, Django + REST framework, requests, C++ 11, Cereal, PyBind11
2017 (4 Monate): Portierung einer Client-Server-Applikation
Rolle: Freiberuflich
Bereich: Portierung
Beschreibung:
Eine komplexe Client-Server-Applikation wird modernisiert. Ausreichende Testabdeckung wird sichergestellt, um die Qualität zu wahren. Teilautomatische Übersetzung der Client-Teile mit 2to3 und mit 4to5 wird angewandt. Auf der Server-Seite wird das Linux-Betriebssystem ebenso aktualisiert wie der Stack bestehend aus Apache, Python und Django.
Aufgaben:
Portierung
Werkzeuge:
Microsoft Visual Studio 2008 / 2015, C++ 99 / 14, Python 2.7/ 3.6, PySide 1 / 2
2017 (4 Monate): Objekt-Erkennung und -Verfolgung
Rolle: Freiberuflich
Bereich: Konzeption und Umsetzung
Beschreibung:
Dynamisch sich bewegende Objekte werden mittels Video-Aufzeichnung und geeigneten Bildverarbeitungs-Algorithmen erkannt und danach in ihrer Bewegung verfolgt. Die dadurch ermittelten Trajektorien werden dreidimensional dargestellt.
Single Board Computer, CPU: Broadcom BCM2835, Windows PC
Aufgaben:
Konzeption und Umsetzung
Werkzeuge:
Raspberry Pi, Kamera, OpenCV, C++, Python, OpenGL, PySide
2017 (3 Tage): Beratung im Bereich der Testautomatisierung
Rolle: Freiberuflich
Bereich: Technische Beratung
Beschreibung:
Im Bereich des end-to-end Tests für moderne Web basierte Single Page Applications sucht der Kunde nach Lösungen für das effiziente automatische Testen. Der Ist-Zustand wird im Nutzungskontext analysiert. Möglichkeiten und Grenzen der Abstraktion werden aufgezeigt. Ein einfacher Prototyp wird erstellt. Eine Vorgehensempfehlung wird ausgesprochen und mit einer Aufwandschätzung versehen.
Aufgaben:
Ist-Analyse, Technologie-Evaluation, Konzept-Erarbeitung, Vorgehens-Empfehlung, Aufwand-Schätzung
Werkzeuge:
Python, Selenium, PyTractor, Eclipse, AngularJS, GIT
2016 (8 Monate): Robotik im Sportbereich
Rolle: Freiberuflich
Bereich: Konzeption und Umsetzung
Beschreibung:
Ein Trainingsgerät für den Sportbereich wird neu konzipiert. Außerdem wird ein Prototyp desselben implementiert. Mechanik und Elektrik werden robust, langlebig und minimalistisch gehalten. Besonderes Augenmerk wird auf zeitgemäße Bedien- und Software-Schnittstellen gelegt. Als charakteristisches Merkmal ist die dynamische und flexible Konfigurierbarkeit hervorzuheben. Die Bedienung erfolgt wahlweise über Bluetooth und Android oder über eine Web-Schnittstelle. 3 BLDC-Motoren werden von einem PWM-gesteuerten Treiber versorgt. 2 Servos erhalten ebenfalls PWM-Signale und dienen der Positionierung. 1 Schrittmotor wird von einem über I2C angesteuerten Treiber versorgt und dient der Förderung.
Aufgaben:
Konzeption, System- und SW-Architektur, Bau eines Prototyps
Werkzeuge:
ARM STM32F4, ATMEGA328P, Design Spark Mechanical
2015 (1 Monat): Traceability für System- und SW-Architektur (Automotive)
Rolle: Freiberuflich
Bereich: Beratung, Modell Technologie
Beschreibung:
Im Automobilumfeld werden zur Qualitätsverbesserung in einem ASPICE-Prozess sowohl Maßnahmen als auch Werkzeuge auf den Prüfstand gestellt. Die Nachverfolgbarkeit und die Zusammenhänge der Artefakte einer exemplarischen Produktentwicklung sollen besonders herausgearbeitet werden. Dazu wird eine System Architektur in SysML entworfen und verbessert. Darauf aufsetzend wird eine SW Architektur in UML erstellt. Traceability wird jeweils hergestellt zu Requirement- und Test-Artefakten.
Aufgaben:
Analyse, Beratung, System- und SW-Architektur, Tooling
Werkzeuge:
IBM Rhapsody mit SysML und UML, PTC IMS (CM+SI) bzw. Reqtify / Doors
2014-2015 (1 Jahr): Lizenzierungs- und Administrations-Portal eines SW Herstellers
Rolle: Freelance
Bereich: Konzeption und Umsetzung
Beschreibung:
Ein Software Hersteller vertreibt seine Produkte über ein Portal. Die Abwicklung aller kundenrelevanten Aktivitäten wie Registrierung, Bestellung, Linzensierung, Software-Download und Wartung wird unterstützt. Gewählt wird eine Client-/Server-Lösung mit einem cloud-basierten Module-Store.
Aufgaben:
Konzeption und Umsetzung in einem agilen Entwicklungs-Team.
Werkzeuge:
Python, HTML, Jinja, Javascript, Django + REST, Linux
2012-2014 (2 Jahre): cosMatx(R) Modelling Environment
Rolle: Freelance
Bereich: Innovation, Modell Technologie
Beschreibung:
Konzeption und Erstellung einer Meta-Modell-Umgebung. Der Fokus wird auf Grafik, Skriptbarkeit und Erweiterbarkeit gerichtet. Es wird Modell-zu-Modell- und Modell-zu-Text-Transformation unterstützt. Modelle können direkt in der Entwicklungsumgebung ausgeführt und überwacht werden. Hauptbestandteil ist ein validierender Mehr-Phasen-Modell-Compiler. Die Kernbestandteile werden - basierend auf OMG CMOF - in C++ erstellt. Damit wird gute Performanz auch bei großen Modellen erreicht. Flexible und dynamische Handhabung wird durch den Einsatz von Skripttechnologie erreicht. Dies eröffnet auch den Zugriff auf einen riesigen Bereich an bestehenden Bibliotheken und Hilfsmodulen sowie die Adaption an verschiedenste andere Werkzeuge, beispielsweise über COM-Technologie. Bequeme Code-Erzeugung wird durch eine Template-Sprache ermöglicht. Unterstützung für Merge- und Import-Operationen führt zu umfangreichem Reuse bestehender Modelle. Feingliedrige Lizenzierung erlaubt freie Gestaltung bezüglich der Produktpalette.
Aufgaben:
Konzeption, Projektleitung, Entwicklungsleitung und Umsetzung in einem agil arbeitenden Team.
Werkzeuge:
Python, C++, Jinja, BOOST, QT + PySide, Windows, OMG CMOF
2013 (2 Monate): Backoffice-Anbindung für einen Webshop
Rolle: Freiberuflich
Bereich: Konzept, Entwicklung
Beschreibung:
Der Betreiber eines Webshops möchte die Daten des Portals mit den Werkzeugen des Backoffice automatisiert verknüpfen.
Dazu wird ein REST-Adapter für das Portal entwickelt. Dieser kommuniziert dann auf der Backoffice-Seite mittels MS COM und anderen Technologien mit den Werkzeugen.
Aufgaben:
Konzeption und Umsetzung
Werkzeuge:
Python, Django + REST framework, MS COM
2012 (2 Monate): Automatische Dokumenterzeugung
Rolle: Freiberuflich
Bereich: Konzept und Umsetzung
Beschreibung:
Ein Finanzdienstleister bietet für sein Online Geschäft die Erzeugung von Berichten an. Quelle sind dabei Transaktionsvermerke aus Datenbanken. Konfigurierbare Mustervorlagen erlauben eine flexible und maßgeschneiderte Dokumenterzeugung. Verschiedene Ausgabeformate wie PDF, HTML, CSV und XML werden unterstützt.
Aufgaben:
Konzept und Umsetzung
Werkzeuge:
Python, ReportLab, Django
2011 (1 Jahr): Technische Projektleitung für ein grosses Entwicklungsteam
Rolle: SWE Berater
Bereich: Technische Projektleitung
Beschreibung:
Für Trocknungswagen entwickelt ein weltweit tätiger Hersteller eine neue Generation der Steuerungs- und der Bedienungssoftware. Ein Entwicklungsteam mit 20 Mitgliedern stellt sich der Herausforderung, innovative Funktionalität mit modernen Entwicklungsmethoden und agilem Entwicklungsprozess umzusetzen.
Aufgaben:
Der Kandidat übernimmt die technische Projektleitung für das Entwicklungsteam, ermittelt und deckt den Schulungsbedarf. Das Team entwickelt Kernbestandteile des Softwaresystems, trifft Maßnahmen zur Sicherstellung der Qualität und setzt diese um. Die Zusammenarbeit im Team wird optimiert.
Werkzeuge:
ARM 9, IBM Rhapsody, C++, BOOST, QT, USB, SqLite.
2010 (3 Wochen): Evaluation eines Echtzeitbetriebssystems
Rolle: SWE Berater
Bereich: Beratung, Schulung
Beschreibung:
Moderne Mikropumpen bedürfen der Ansteuerung durch Software, die auf einem deterministischen Echtzeitbetriebssystem aufsetzt. Der Kunde benötigt Unterstützung zur Auswahl eines solchen Betriebssystems und eine Einführung in das Erstellen einer geeigneten Software-Architektur.
Aufgaben:
Ermittlung der Anforderungen. Einführung in Echtzeitbetriebssysteme und Software-Architektur. Suche nach geeigneten
Betriebssystemen und jeweilige Charakterisierung. Präsentation und Empfehlung an den Kunden.
2010 (1 Woche): Tooleinsatz im regulierten Umfeld
Rolle: SWE Berater
Bereich: Beratung
Beschreibung:
Auch für bahntechnische Anwendungen steigt die Nachfrage nach moderneren Entwicklungsmethoden und -Werkzeugen. Herausfordernd ist dabei die gleichzeitige Einhaltung branchentypischer Regulatorien.
Aufgaben:
Bewertung des Werkzeugeinsatzes und des Entwicklungsprozesses unter Berücksichtigung der bahntechnischen
Normen. Präsentation der Empfehlung für das weitere Vorgehen.
Werkzeuge:
IBM Rhapsody
2010 (3 Wochen): Beratung für Architektur-Strategie
Rolle: SWE Berater
Bereich: Strategie, Beratung
Beschreibung:
Elektrische Gleichrichter-Anlagen für Mobilfunknetze werden künftig verstärkt auch im außereuropäischen Markt eingesetzt. Entsprechend steigen die Anforderungen an die Agilität der Softwareentwicklung drastisch. Ein Workshop zusammen mit dem Kunden soll dabei helfen, das Potenzial dafür aufzudecken und zu evaluieren.
Aufgaben:
Analyse der Architektur. Ermittlung technischer Schwachpunkte und Potenziale. Sammlung geeigneter Technologien zur strategischen Verbesserung des Software-Systems. Durchführung und Moderation eines Evaluationsworkshops.
2010 (6 Wochen): Contextual Inquiry für Beschichtungsanlagen
Rolle: SWE Berater
Bereich: Usability Engineering
Beschreibung:
Moderne Beschichtungsanlagen für metallische Werkstücke stellen vielfältige Anforderungen an die Usability der Bedienungssoftware. Gleichzeitig steigt der Kostendruck. Es sollen daher Verbesserungs- und auch Einspar-Potentiale aufgedeckt werden.
Aufgaben:
Die Analyse von Handbüchern und Sichtung der Anlagen vor Ort helfen, die wichtigsten Anforderungen an entsprechende
Softwaresysteme zu ermitteln. Aus Interviews direkt am Einsatzort ergeben sich zudem benutzertypische Anforderungen. Ein Use Case Modell wird erstellt, um die funktionalen Anforderungen zu manifestieren. Mehrere Contextual Inquiries legen die spezifischen Anforderungen verschiedener Nutzer offen. [Name auf Anfrage] zeigt in einer Präsentation die Potenziale und gibt den Entscheidungsträgern eine Empfehlung.
Werkzeuge:
Contextual Inquiry
2010 ( 3 Wochen )
Erstellung einer Schedulability-Expertise
Für Frequenz-Umrichter wird Software benötigt, die sehr hohe Anforderungen bezüglich des zeitlichen Determinismus erfüllen muss. Der Hersteller eines solchen Systems stellt in seiner Software eine auffallend hohe Prozessor-Auslastung fest. Dies wird als potentielles Risiko angesehen.
Der Consultant analysiert daher die Softwarearchitektur und setzt ein mathematisches Modell zur Bewertung der Schedulability ein. Die Entscheidungsträger erhalten eine Bewertung des Systemzustandes und eine Empfehlung für das weitere Vorgehen.
Aufgaben: Analyse der Software-Architektur. Durchführung einer Rate Monotonic Analysis. Befähigung des Kunden, solche Analysen künftig selbst durchzuführen. Präsentation der Vorgehensempfehlung.
Werkzeuge: Rate Monotonic Analysis
2008 ( 2 Jahre )
Redesign einer Gebäude-Automations-Software
Der Consultant übernimmt einen innovativen Ansatz zur Gebäude-Automation und entwickelt diesen zu einer tragfähigen, erweiterbaren Lösung weiter. Dabei wird besonderer Wert auf eine offene
Architektur gelegt, die eine einfache und flexible Integration verschiedenster Geräte und Feldprotokolle sicherstellt.
Ergänzend zum Kernprodukt wird eine maßgeschneiderte Test- und Simulationsinfrastruktur entwickelt, mit der sich die Qualität der Software kontinuierlich sicherstellen lässt. Zudem unterstützt dies die Konfiguration und Inbetriebnahme von Produkten vor der Auslieferung an die Kunden.
Aufgaben: Analyse des bestehenden Konzeptes und der Prototypen-Implementierung. Anschliessend Definition und Umsetzung der Architektur, Aufbau und Projektleitung eines vierköpfigen
Entwicklerteams.
Werkzeuge: Embedded Linux, Eclipse, Java, JamVM, openArchitectureWare.
2007 ( 6 Monate )
Automatisches Testing für Aufzugsanlagen
Der Kunde ist ein weltweit tätiger Hersteller, der die Qualität der Software seiner Liftanlagen verbessern will. Gleichzeitig soll der Aufwand für manuelle Tests reduziert und damit die Release-Zyklen deutlich verkürzt werden. Nach einer Analyse des bisherigen Vorgehens bei Entwicklung und Test werden Vorschläge zum Testen auf Unit-, Komponenten- und Systemebene erarbeitet und diskutiert.
Das entwicklungsbegleitende Testen soll fortan im Fokus stehen. Ein erster Aufbau für den automatischen Test einer Anlagen-Komponente wird implementiert und in Betrieb genommen.
Aufgaben: Analyse des Entwicklungs- und Testvorgehens. Erarbeitung von Verbesserungsvorschlägen. Beratung der Test- und Qualitätsleitung. Implementierung eines ersten automatisierten Komponententests.
Werkzeuge: Microsoft Windows, Infragistics Komponenten, Interface-Hardware von National Instruments, CAN Interface-Hardware von Vector. Entwicklungsumge-bung: Microsoft Visual Studio.
Sprachen: C#
2006
Einführung von Modellierungstechnologie für Medizinprodukte
Der Kunde ist ein führender Hersteller von Hörgeräten, der innovatives Zubehör für seine Produkte entwickelt. Mit dem bisherigen Entwicklungsvorgehen wird die geforderte Qualität nicht erreicht. Die
Transparenz in der Software fehlt - Änderungen und Fehlerkorrekturen sind sehr aufwändig.
Schrittweise wird die bestehende Software in ein UML-Modellierungs-Werkzeug eingepflegt und aus demselben Werkzeug generiert. Design und Verhalten der Software werden so sichtbar. Das
Entwicklungsteam wird in die Lage versetzt, Änderungen schnell durchzuführen und die bestehenden Fehler rasch zu beseitigen.
Aufgaben: Einführen von Telelogic Rhapsody, Schulung in UML, Testbare Adaption der generierten Software via USB an einen C#-Client.
Werkzeuge: ARM9, Nucleus, Microsoft Windows, UML mit Rhapsody.
Entwicklungsumgebung: Microsoft Visual Studio, Mentor Graphics Edge.
Sprachen: C, C++, C#.
2005
Architektur und Projektleitung bei einem Hörgerätehersteller
Der Kunde ist ein führender Hersteller von Hörgeräten und Zubehör. Er löst ein vorhandenes Gerät durch ein neues ab. Dies ist nur möglich mit neuen Werkzeugen und Prozessen für die Software-Entwicklung.
Zum Projekt gehören die Unterstützung der Projektleitung, die Planung der Tätigkeiten und die Entwicklungsarbeiten in enger Zusammenarbeit mit dem Kundenteam. Die umfangreiche maßgeschneiderte Test-Infrastruktur wird konzipiert, implementiert und von den Entwicklern
flexibel und erfolgreich eingesetzt. Die Spezialisten konzipieren ein Configuration Management und stellen ein automatisches Build-System bereit.
Aufgaben: Architektur, Unterstützung der Projektleitung, Testing und Configuration Management.
Werkzeuge: ARM9, Sciopta RTOS, Microsoft Windows, UML mit Rhapsody. Entwicklungsumgebung: Microsoft Visual Studio, WinIDEA.
Sprachen: C, C++, Python. Tools: CppUnit, Boost, GccXml, BuildBot, PEG.
2004
Integration in einem VoIP-Projekt
Ein namhafter Dienstanbieter im Telefonie-Umfeld erhält ein komplexes VoIP-basiertes Client-Server-System, das auf seine Wünsche zugeschnitten ist. Zusammen mit Dritt-Herstellern werden Hard- und
Soft-Phones entwickelt und mit landestypischen Anforderungen auf der Server-Seite abgestimmt. Der Soft-Client kommuniziert über SOAP mit dem Application-Server.
Das Projektteam entwickelt dafür Macromedia-Flash-Plug-Ins und testet Sie systematisch mit Unit-Tests. Die Web-Service-Komponenten werden in Python eingebunden, um flexibel und skriptgesteuert mit den Servern kommunizieren zu können. Dieses Potential ist auch für Wartungs- und Monitoring-Aufgaben unter Linux nutzbar. Die Entwicklungsumgebung für die Übersetzung und grafische Anpassung einer
Rezeptionisten-Applikation sowie eines Microsoft-Outlook-Plug-Ins wird weitgehend automatisiert.
Aufgaben: Unit-Testing, Performance-Optimierung, Automatisierung und Scripting
Werkzeuge: Microsoft Windows, Red Hat Linux.
Entwicklungsumgebung: Microsoft Visual Studio. Sprachen: C++, Python. Tools: CppUnit, Boost,
gSoap.
weitere Projekte auf Anfrage
Weitere Qualifikationen
11/2017
Schulungsprojekt Technologie: pyBind11
08/2017
Schulungsprojekt Technologie: Cereal C++
05/2017
Schulungsprojekt Cloud: Amazon WebServices
03/2016
Schulungsprojekt Internet Of Things (IOT): Raspberry Pi / Atmel / Stm32 / Arduino / System Workbench
10/2015
Weiterbildung SysML
04/2014
Weiterbildung Django
09/2013
Weiterbildung Javascript, Twitter Bootstrap, AngularJS
05/2012
Weiterbildung QT
08/2011
Evaluation bestehender Metamodell-Umgebungen
03/2011
Schulung Projekt Management
12/2010
Embedded Software Engineering Kongress in Sindelfingen
09/2010
Ausbildungscamp: Projekt-Management, Rhapsody-Alternativen
08/2010
MDA und DSLs mit openArchitectureWare, xText
04/2010
Zertifikat IBM Certified Solution Designer - Rhapsody in C++
01/2010
OOP 2010 in München
11/2009
Evaluation von Meta GME
09/2008
Ausbildungscamp: DSLs mit UML und Topcased
05/2008
openArchitectureWare
12/2007
Zertifikat Projekt Management
11/2007
Zertifikat Software Estimation
09/2007
Ausbildungscamp: Scrum, C#, .net, Team Foundation Server
09/2006
Ausbildungscamp: Usability Engineering, Telelogic TAU
09/2005
Ausbildungscamp: Code Analyse, Automatisiertes Testen
01/2005
Embedded World in Nürnberg
01/2005
Rational Rose RT und iLogix Rhapsody
09/2004
Ausbildungscamp: UML 2, Embedded Architekturen
04/2004
Zertifikat C# and the Microsoft .NET Framework
02/2004
Zertifikat Qualitäts-Management
09/2003
Ausbildungscamp: MDA, XMI, MDSD-Tools
06/2002
Zertifikat Rational Unified Process (RUP)
05/2002
Zertifikat Testing Object Oriented Systems
03/2002
Zertifikat Sun Certified Java Programmer
10/2001
Zertifikat Objektorientierte Analyse und Design mit UML
09/2001
Ausbildungscamp: UML RT mit Rational Rose RealTime
Werdegang
02/2012 ? heute
Freiberuflicher Berater für Software Engineering
01/2012 ? 01/2012
Software Engineering Consultant, Mettler-Toledo AG, Greifensee
07/2001 ? 12/201
Software Engineering Consultant, Zühlke Engineering AG, Schlieren
10/1997 ? 06/2001
Development Engineer Control Systems, SIG / FIAT / ALSTOM, Neuhausen am Rheinfall
03/1993 ? 09/1997
Studium zum Diplom-Ingenieur Maschinenbau & CA-Technologien, Fachhochschule Konstanz
10/1991 ? 09/1992
Wehrdienst, Technische Schule des Heeres in Eschweiler
Entwicklung eines Simulators für ein komplexes technisches System
Industrie
Telekommunikation
Medizin
Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.