Erfahrung

Allgemeine
Führungserfahrung
Als Operations Manager einer Entwicklungsabteilung und Büroleiter waren mir 15 Personen direkt unterstellt, 8 im Bereich Helpdesk, 6 Netzwerkadministratoren und eine Bürokraft in der Anmeldung. Als stellvertretender Entwicklungsleiter war ich zusätzlich verantwortlich für mehr als 40 Entwickler.
Projektleitung Als ein herausragendes Beispiel habe ich ein Projektteam von bis zu 40 Entwickler geführt, mit der Aufgabe (80+ Mannjahre), mehrere ähnliche Systeme aus einer gemeinsamen Quellcode-Basis zu entwicklen. Alle Projekte waren sehr erfolgreich am Markt, manche sind es noch immer.
Auch sonst habe ich wiederholt die Projektleitung einzelner Projekte übernommen, oft mit der Qualität des Entwicklungsprozesses als Schwerpunkt.
Entwicklungsprozesse Von CMM bis Automotive SPiCE, traditionell bis agil, ist die Palette ziemlich breit. Da ich seit mehr als 17 Jahre hauptsächlich in der Automobilindustrie tätig bin, kann ich ausführliche Erfahrungen in dem Bereich aufweisen. Ich war als Software-Projektleiter involviert in einem Assessment nach Automotive-SPiCE, sowohl bei der Vorbereitung als auch bei der Umsetzung der daraus resultierenden Maßnahmen.
Als Berater habe ich auch bei einem renommierten PKW-Hersteller eine Analyse der gelebten Prozesse durchgeführt.
Architektur & Design
UML
Von den drei Generationen von Infotainmentsystemen die ich entwickelt habe (1990-1997) war ich der Software-Architekt. Prinzipien wie Modularität, Wiederverwendbarkeit, und – auch in der Sprache C – Objektorientierung waren von Anfang an die Bausteine. In den Projekten die folgten habe ich immer auch mit Architektur und Design zu tun gehabt, meist unterstützt durch UML-Diagramme oder beim Einsatz von ‘Rational Rose’.
RTOS Ich habe verschiedene Echtzeit-Betriebssysteme für spezielle Anforderungen evaluiert und eines selbst geschrieben (ereignisabhängig, mit Semaphoren und prioritätsgesteuerten Scheduler, für einen Siemens C166 Mikrokontroller).
Bei meinen Arbeiten habe ich unter Anderem mit den RTOS’s VxWorks und OSEK gearbeitet.
Netzwerkprotokolle Verschiedene Netzwerkprotokolle habe ich selbst entworfen, und an der Schaffung von anderen mitgearbeitet (das wichtigste anzuführende ist die MCNet Spezifikation für den CAN-Bus, von Robert Bosch). Bei verschiedenen Gelegenheiten war meine Erfahrung im Design von Protokollen von Nutzen bei der Entwicklung verteilter Systeme.
Spezielle Fähigkeiten in der Entwicklung Entwickeln von Qualitätssoftware für Embedded Systeme – es ist ein großer Unterschied, eine Applikation für Windows zu schaffen, die gewöhnlicherweise nur einige Stunden hintereinander läuft, oder für ein Embedded System, das manchmal jahrelang fehlerfrei laufen soll. Diese Art von Qualität kann nur entstehen durch konsequentes Design: Modultests, Simulationsentwicklung, Konfigurationsmanagement, unter Verwendung von genügend (und den richtigen) Werkzeugen, und Fehlersuche mit der richtigen Einstellung.
Programmierung Ein Teil meiner Arbeit besteht noch immer aus Programmierung und Design, hauptsächlich in C/C++, aber auch Assembler (unterschiedliche Varianten), Perl oder Java.
Ich habe mit unterschiedlichsten Compilern gearbeitet: Diversen embedded Compilern (u.a. Cosmic, Greenhills), dem Microsoft Compiler (seit der Version 3) sowie später mit Microsoft Visual C/C++/Studio (seit Version 2.x, einschließlich .NET), GCC in unterschiedlichsten Versionen (einschließlich 4.x) auf verschiedenen Plattformen, sowie Sun Forte 5/6 auf Solaris.
Zielumgebung Ich besitze Erfahrung in PC-Programmierung (DOS, Windows 9x/NT/ME/2K/XP/Vista, Linux), Solaris 2.6-2.8, AIX 4.x, HP-UX 10/11, und verschiedenen Prozessoren (Embedded und ‘normale’ Systeme). Unter Anderem Zilog Z80, Siemens C16x, Motorola/Freescale 68K, HC08, HC11, S12, 8051, ARM).
Entwicklungsumgebung Üblicherweise ein PC mit Windows 2000/XP – eventuell mit Cygwin – oder Linux (Suse/Redhat), oder auch eine Unix Umgebung (Sun Solaris, HP-UX, IBM AIX, wenn erforderlich mit Remote Access von einer Windows Arbeitsstation aus).
Spezifikation
Dokumentation
Ich habe technische Spezifikationen, Architektur- und Designspezifikationen, sowie Programmdokumentationen geschrieben (auch reverse Engineering). In letzter Zeit wurden dabei DOORS-Kenntnisse vorausgesetzt, Microsoft Office war schon immer selbstverständlich.
Werkzeuge Als Editor für alle Entwicklungsarbeiten verwende ich Visual SlickEdit, sofern erlaubt, auch beim Kunden.
Als Build-Werkzeug verwende ich GNU make ab Version 3.79.1. Ich habe unter Verwendung von GNU Make und bash eine plattformunabhängige Umgebung kreiert, mit sehr flexiblen Konfigurationsmöglichkeiten.
Für das Konfigurationsmanagement, besonders bei kleinen oder persönlichen Projekten, verwende ich Visual SourceSafe (aus Bequemlichkeit) oder CVS, außer der Kunde benötigt ein anderes System (ich habe Erfahrung mit PVCS, Continuus, ClearCase, und CCC/Harvest).
Für deutlichere Fehlermeldungen und sauberen Code benutze ich PC-Lint/Flexe-Lint for C/C++.
Für Dokumentationen benutze ich das vom Kunden verlangte Format, hauptsächlich Microsoft Word oder FrameMaker.
Für detaillierte Illustrationen, die nicht in einem speziellen Paket erstellt werden können, verwende ich AutoCAD, oder Visio, abhängig von den Anforderungen.
Standard
Applikationen
  • Adobe Acrobat
  • FTP Voyager
  • Microsoft FrontPage
  • Microsoft Internet Explorer
  • Microsoft Office, inkl. VBA Anpassungen
  • Microsoft Outlook
  • Netscape
  • PGP
  • WinZip
Sprachen Ich beherrsche Holländisch, Englisch und Deutsch fließend in Wort und Schrift. Ferner kann ich brauchbare Erfahrung in Französisch, sowie Grundkenntnisse in (Neu-) Griechisch vorweisen.

Diese Liste soll einen generellen Überblick bieten, keine erschöpfende Abhandlung.