Senior Consultant und Entwickler
- Verfügbarkeit einsehen
- 0 Referenzen
- 85‐95€/Stunde
- 14547 Beelitz, Mark
- National
- de | en
- 10.11.2024
Kurzvorstellung
Qualifikationen
Projekt‐ & Berufserfahrung
10/2021 – 3/2023
Tätigkeitsbeschreibung
Toolchain-Experte, Jenkins-Experte, Dev-Op, Groovy-Entwickler, Software-Integrationsmanagement
Umfeld: Windows-basierte Jenkins-Buildumgebung unter SVN zur Erzeugung von Embedded Software
Bereitstellung einer definierten Python-Umgebung (automatische Installation des benötigten Pythons, Erzeugung von PyPi-Packages, Selektion und Download von PyPi-Packages)
Erstellung von Python-Skripten zur Unterstützung von Software-Lieferungen (Export von SVN-Dateien entsprechend JSON-Konfigurationsdateien, Analyse der korrekten Anwendung von SVN-Branches und Ausgabe von Abweichungen sowie Statistiken)
Installation der neuesten VisualSvn Server Software auf eine neue virtuelle Maschine
Migration der Daten des alten VisualSvn Servers auf den neuen VisualSvn Server
Installation einer Jenkins 3.x Master und einer Jenkins Slave Instanz auf getrennten virtuellen Maschinen als Windows-Services.
Ermittlung und Dokumentation aller Anforderungen benötigter Jenkins-Mechanismen und Ableitung der zu verwendenden Software und ihre Installation/Konfiguration.
Installation eines Nexus Artefakt-Manage-Servers und Export von Jenkins Artifakten auf Nexus
Migration alter Jenkins 2.x-Builds auf das neue Jenkins 3.x System
Entwicklung generischer Jenkins-Pipelines (Groovy Jenkinsfile)
SW-Integration durch Selektion von Komponenten-Releases (SVN Externals) mittels dynamischer Jenkins Kontrollelementen
Einbindung von versionierter Toolchain, Quality-Gates (Lint, Ceedling Unit-Test, Software-Test)
Subversion, Continuous Delivery, DevOps, Jenkins
10/2021 – offen
Tätigkeitsbeschreibung
Toolchain-Experte, Jenkins-Experte, Rest-API-Entwicklung, Gradle-Entwickler, Groovy-Entwickler, Python-Entwickler
Umfeld: Windows/Ubuntu-basierte Jenkins-Buildumgebung unter Gradle, BitBucket, Artifactory
Bereitstellung einer definierten Python-Umgebung (automatische Installation des benötigten Pythons, Erzeugung von PyPi-Packages, Selektion und Download von PyPi-Packages)
Erstellung von Jenkins-Pipelines zur Entwicklung und Anwendung von Python Paketen (PyLint-Test, Unit-Test)
Erstellung von Python-Skripten zur Erkennung von Konfigurationsfehlern in AsciiDoc basierten XML-Dateien und Darstellung von Fehlern im Jenkins Junit-Ausgabeformat
Erstellung von Skripten und Pipelines zur Erzeugung und Aktualisierung von CodeBeamer Items (zum Beispiel zum Import von Inhalten aus Autosar-arxml Dateien)
Erstellung und Konfiguration von Virtuellen Maschinen (Virtual-Box Ubuntu)
Git, Gradle, Json, Jenkins, Python, Software Quality, Ubuntu, Windows 10, XML
5/2021 – 10/2022
Tätigkeitsbeschreibung
Umstellung des Systems von Cmake 2.x auf Cmake 3.x
Ermittlung von Anforderungen und Toolchain-Inkompatibilitäten
Administration eines Jira-Projekts zum Management der Migrationsabläufe
Erstellung von Cmake-Regeln zur Gewährleistung der Zukunftssicherheit der Cmake-Konfiguration
Parsing von Cmake-Konfigurationen unter Python 3.x zur Erkennung und
Ausgabe von Konfigurationsfehlern (Violations) und Konfigurationsschwächen (Deviations)
Umsetzung moderner Cmake Features und Standards
Automatische Erkennung unbenutzter Cmake-Konfigurationen
Analyse alter Build-Skripte und Entfernung unbenötigter Dateien aus den Git-Repositories
Umfeld: Feudora 10, Python 3.9, PyCharm, Eclipse, Jira Admin, CMAKE 2.8, CMAKE 3.20, qcc/g++, Slack, Docker, Jenkins, Yocto, Beyond Compare, git, Github, json
C++, Docker, Git, Json, Linux Entwicklung, Python
3/2021 – 4/2021
Tätigkeitsbeschreibung
Erweiterung der Python Skripte zur Sicherstellung der Build-Reproduzierbarkeit für Langzeitwartung und Software-Releases
Verbesserung der vorhandenen Python-Scripte (Dokumentation und Kodierung nach PEP-8, Umstellung auf Klassen, Verbesserung der Usability durch Docopt und Tcl-Tk GUI
Erstellung eines Python GUI-Frameworks mit CSS/HTML basierter Online-Hilfe und Adaption der Machine-Expert basierten Anwenderführung unter Subversion für Beckhoff SPS unter Git.
Erstellung und Administration eines Jira-Projekts zur Verwaltung der Migrationsschritte
Umfeld: Python 2.7, Iron-Python, Python 3.7, PyCharm, Eclipse, VisualStudio C++, Subversion, DOS batch cmd, Jira Projekt-Admin, CMAKE,Machine-Expert 1.1, Beckhoff, Git, Tkx, Tcl, Citrix, LogicBuilderShell, Confluence
Git, Jira, Python, Tool Command Language
5/2020 – 12/2020
Tätigkeitsbeschreibung
Erweiterung des Cmake-Framework um erweitertes Logging (Ausgabe von Variablengruppen bei Funktionseintritt), Cmake-Factories und andere Bereiche im Projekt CM44Venus
Konzeptionierung, Dokumentation, Implementierung und Testautomatisierung generischer Installationsskripts zur Absicherung und Bereitstellung der korrekten Toolversionen innerhalb eines Software-Releases unterschiedlicher Projekte.
Bereitstellung einer GCC basierten Toolchain zur Übersetzung von Win32 GUI Applilkationen (msys64 with mingw32 and mingw64)
Erstellung und Test von Skripts zum Datentransfer der Jira Projektdatenbanken dreier Projekte auf eine neuere Jira-Installation eines anderen Rechners (Jira-Administration/DEV-OP).
Analyse einer gewachsenen Buildumgebung aus Batchdateien, VS-Projektdateien, JAM-Dateien und Makefiles im Projekt/Board VSLI1. Migration der Buildabläufe nach Cmake und Python. Verwendung des Cmake-Frameworks aus Projekt CM44Venus.
Jira, Python, Microsoft Visual Studio
7/2018 – 5/2020
Tätigkeitsbeschreibung
Fehlerbehebung und Optimierung der Build-Infrastruktur unter Jenkins, DOS-Batch, GitHub, Python, PTC Integrity, cmake, Git, Visual Studio, Eclipse, Pycharm
Software-Integration und Ticket-Management mittels PTC Integrity ALM und Tortoise Ptc
Unterstützung der Entwickler bei Integrationsproblemen, Umgebungsproblemen, Installations-, Test- und und Build-Fehlern
Anpassung von Fahrzeugkalibrierungen durch GUI (GDE) und Xml-Dateien entsprechend Vorgaben.
Implementierung von Jenkins CI-Jobs und Python mittels Integrity Change-Packages (si/im-Kommandos).
Ausführung von ECU Smoketests: Flashen von Binaries mit DediProg, Flashen von ULP-Dateien und CAL-Dateien mit DiagAlyser. Absicherung der Basisfunktionen durch CANoe und Videograbber. Ermittlung von Fehlern über CANoe DTCs and Console-Outputs. Performnce-Messungen unter QNX. Erstellung von Release-Mails.
Unterstützung des Test-Teams bei der Automatisierung von VectorCast-Tests (cmake, buildoptions, Jenkins).
Erstellung und Pflege von etwa 70 Jenkins Jobs (DOS cmd, Cmake, Python)
Durchführung von Integrationen und Erstellung von Testbuilds.
Bereitstellung und Pflege von Virtual Machines (VM's) und Pflege von Jenkins-Slaves.
Management einer generischen Toolbox für die Jenkins-Slaves und Entwickler-PCs.
Unterstützung und Automatisierung von QAC/QAC++ (automatische Aktualisierung von Personality-Dateien)
Entwicklung eines C-Programms zur Erzeugung von CAL-Dateien und ULP-Dateien (S0, S1, S3-records)
Implementierung von Mechanismen zur Verwendung von Config-Specs und einer Config-Spec basierten GUI für PTC in Python
Continuous Integration, Code-Review, Jenkins, Python
4/2017 – 6/2018
Tätigkeitsbeschreibung
Embedded SW-Entwicklung von Notrufsystemen (Valeo „LTENAD“) für Openembedded Yocto basiertes Linux mit Qualcom
9x15/9x28/9x40 Chipsätzen unter Ubuntu
Fehlerbehebung und Optimierung der Build-Infrastruktur unter Jenkins, Gerrit, Python, Bash, bitbake, Git
Software-Integration und Software-Review mittels Gerrit und Tortoise Git
Entwicklung eines Python basierten Skript-Frameworks mittels Gerrit (ssh gerrit und curl REST api), Nexus und Google repo tool
(manifests) zur Unterstützung und Analyse von Integration.
Export von Build Artefakten auf Nexus Repository Manager (curl) und ClearCase UCM
Konfiguration und Betreuung von Jenkins Jobs (CI, Nightly-Builds und Release-Builds für verschiendene Plattformem
9x15/9x28/9x40)
Erstellung von Testbuilds und SW-Release builds und Hochladen der Builds auf das automatisierte Testsystem.
Manueller Smoketest der LTE Modem-Software (flashing, at-commands, audio-test)
Integrationssupport (Rebase von Patches, Merging, erstellen signierter und normaler git tags) unter Yocto (Layered embedded
Linux / bitbake)
Erstellung von Build-Skripts (bash, python)
Developer-Support for the automated Test-System (Erstellung von Testbuilds, Upload)
Instandhaltung des automatisierten Testsystems (job-Management durch mysql-Datenbank, flashing der Boards)
Unterstützung des Release-Managements (Bearbeitung von ClearQuest Tickets), Planung von SW-Builds
Ubuntu, Windows 10, Windows 7, Bash Shell, Eclipse, Git, Jenkins, Python
10/2016 – 3/2017
Tätigkeitsbeschreibung
Windows 7, Ubuntu
Rollen
Software-Integrator, Toolchain-Experte, Tool-Entwickler
Umfeld
Embedded SW-Entwicklung für Navigationssysteme (VW „MIB 3“) unter Ubuntu VM und Git
Aufgaben / Methoden
Fehlerbehebung und Optimierung der Build-Infrastruktur unter Jenkins, Portage, Bash, Bob, Git, Autotools und Cmake.
Automatisierte Erzeugung und Test von Jenkins-Jobs mittels Seed-Jobs durch Job-Dsl.
Entwicklung eines objektorientierten Skript-Frameworks zur Erzeugung portabler Konsolen und GUI-Anwendungen unter Ubuntu und Windows mittels Python 3.4 bzw. WinPython sowie tkinter und Eclipse.
Entwicklung von Parsing-Klassen und eines IDE (GUI) für Parsing-Konfiguration und Test.
Entwicklung von Python 3.4 basierten GUI-Klassen mit entkoppelten Hintergrundprozessen.
Entwicklung einer GUI zum Vergleich, Konfiguration und SW-Build der Git/Bob-basierten Software-Releases bzw. Entwicklungs-Linien bzw. Branches. Anbindung von Kdiff3, SmartGit, Tortoise-Git, Notepad++ und Beyond Compare.
Python 3.4, WinPython 3.4, TortoiseSVN, Beyond Compare for Ubuntu, Cmake, Jenkins, Git Commandline, Bash, SmartGit 4.x Ubuntu/Win, TortoiseGit, Yaml, JIRA, autotools, emerge, portage, Virtual Box, Job-Dsl, Git-Lab, Kdiff3, Notepad++, Yaml, Bash, Confluence, curl
Ubuntu, Windows 7, Bash Shell, Eclipse, Python, Softwareentwicklung (allg.), Git, Jenkins, Portage (für Gentoo), Konfiguration, User Interface (UI), Virtualbox
6/2014 – 9/2016
Tätigkeitsbeschreibung
Umfeld
Windows 7, Embedded SW-Entwicklung C++, Plattformen ENET & KNX-RF, 30 Projekte je 4-10 Build-Konfigurationen, 3 Firmen (Hausautomatisierung/Beleuchtungstechnik)
Aufgaben / Methoden
Umstellung von monolitischen Einzelprojekten unter IAR Embedded Workbench und Visual-Studio (msbuild) auf einen Komponenten-Baukasten einheitlicher Entwicklungsumgebung.
Einführung einer Baukasten-basierten Arbeitsweise (Prozess, Branch/Merging-Strategie). Einführung und Entwicklung notwendiger Enterprise-Tools (etwa 50.000 Zeilen Perl Quellkode), Infrastruktur und Workflows.
Sicherstellung und Support einheitlicher Vorgehensweisen, installierter Tools und Entwicklungsumgebungen. Schrittweise Entwicklung und Einführung neuer Tools, Features und Mechanismen in laufenden Projekten entsprechend den Prioritäten, sowie Support und Abwärtskompatiblität zu alten Abläufen und alten Projektständen.
Anpassung/Optimierung von Infrastruktur und Prozessen. Unterstützung agiler Entwicklung. Einsatz von JIRA (Installation, Filter, Dashboards, Tracking).
Dokumentation und Schulung notwendiger Arbeitsabläufe und Tool-Chains. Einhaltung von Corporate Identity in entwickelten GUIs und Webpages.
Modularisierung/Refactoring bestehender C-Komponenten. Betrieb, Überwachung und Fehlerbehebung in gesamter Entwicklungs-Infrastruktur. Innovation und Einsatz der neuesten Technologien. Umsetzung von Config-Specs und entsprechender GUIs unter SVN.
Skript-Entwicklung: Entwicklung von Enterprise-Tools/GUIs unter Perl/Tkx (sowie Hudson-Jobs und SVN-Hooks). Entwicklung von SVN-Tools und GUIs der Bereiche Repository, SW-Build, Config-Spec, Working-Copy, Admin, SVN-Hook-Managers, Caching und Deployment. Parsing von mapfiles verschiedener Linkerformate (generische Auswertung für Memory-Statistics).
SW-Entwicklung VS 2005 C++ MFC: Erweiterung des Dali-Gateway Plugins (KNX-RF, ETS4). Dokumentation/Web-Design/GUI-Design, Schulungsvideos mit Jing aufnehmen, Manpages erstellen, Icons entwerfen/konvertieren.
SW-Integration: Rebase von Projekten auf neue Plattform-Lieferungen mittels TortoiseSVN und Beyond Compare.
SW-Test: Entwicklung eines Frameworks + GUI für automatisierten SW-Test für Skripts und GUIs.
Agiles Vorgehen: Kanban (Visualisierung der Durchlaufzeiten/Bearbeitungszeiten von Jira-Tickets in Dashboards, Erhöhung von Transparenz, Überwachung von Build/Ladezeiten, Einhaltung von Prozessregeln (Rollen, Zustände, Überführungen), Service-Klassen (via Ticket-Prios) usw. in Vorbereitung auf die Scrum-Einführung.
Methoden der LEAN-Produktion: Kompetenzen zusammenführen, Daten des Netzwerkes verwenden, Verschwendung vermeiden (nutzlose SW-Builds, Wartezeiten, kontrollierbare Systeme, kurze Wege), kontinuierliche Verbesserungen (Kaizen).
Build Management: Analyse und Beseitigung von Buildproblemen jeglicher Art, sowie Support der Entwickler, Projekte und Plattform-BMs. Remote Support mit MS Lync. Support des Memory-Teams unter msbuild, perl/DOS-Skripts, BINEX, SREC (srecord).
Konfigurations-Management
Hudson (Skripts, Plugins, Konfiguration, Build-Reproduktion, Support).
Continuous Integration (Auto-Publishers, Precommit-Quality-Gates, Roles, CI-Unterstützung durch perl Tkx-GUIs).
Aktualisierung des KM-Plans, Überwachung des Lebenszyklus aller Konfigurationselemente, ihrer Eigentümer und deren Rollen.
Klassifizierung von Warnungen/Fehlermeldungen: Hudson, Compiler/Tool-Ausgaben parsen/umwandeln.
Kostenoptimierung durch Berechnung von Kosten/Nutzen effizienzsteigernder Massnahmen (MS Excel) und deren Priorisierung.
Eclipse Entwicklungsumgebung für Perl & C++, Skripts zum Abgleich von msbuild Sources/Includes/Defines und Eclipse .project/.cproject-Files bereitstellen.
Hudson-Builds für MPLABX-IDE/XC8 Entwicklungsumgebung unterstützen.
Webpages erzeugen/programmieren, u.a. Übersichten für cmt, mapfiles, SW-Releases und SW-Tags.
Support der Projekte z.B. durch Aufsetzen neuer Komponenten, Projekte und deren Config-Specs.
Qualitätssicherung mittels cmt-Metrics, PClint, PClint Misra 2004, IARSystems Misra 2004, Compiler-Warnings, Speicherüberwachung (mapfile-Auswertung).
Buildautomatisierung mittels Hudson-Konfiguration, Hudson-CLI, perl-Tkx-GUI.
Monitoring und Ausfallsicherheit durch Automatisierung und manuelle Überwachung der Verfügbarkeit von Rechnern, Diensten und Ressourcen, Vorhaltung von Fallback-Mechanismen, permanenter Datenhaltung und Dokumentation manueller Abläufe.
Installation und Administration von VisualSVN.
ActiveState Perl 5.18.2, PerlDevKit, TortoiseSVN 1.8.7, Beyond Compare 3.3, gnu make, Misra 2004, Gimpel lint_nt.exe 9.0l, Hudson, vSphere Web-Client, Config-Specs, SVN, CSS/HTML, Visual Studio 2010/2015 Express, msbuild Proj-Files, JIRA, IARSystems EmbeddedWorkbench 6.0 for Atmel AVR (XMEGA Controller) + 7.0 for ARM (STM Controller), Windows Server 2012 R2, Sysinternals ProcessExplorer/handle64, regedit, cmt, robocopy, Collabnet Subversion client 1.8.9, Virtual Box, VMWare, VNC, Remote Desktop
Windows Server (allg.), Windows 7, Betriebssysteme, Scrum, Testen, Qualitätsmanagement / QS / QA (IT), Subversion, C, C++, Eclipse, Microsoft Foundation Classes (MFC), Perl, Hudson Software, Kanban
10/2012 – 4/2014
Tätigkeitsbeschreibung
Windows 7, Windows 2008, Linux
Software-Integrator/Build-Manager in der Entwicklung von 2G/3G/4G modem software in einem auf mehrere Zeitzonen verteiltem Entwickler-Team (u.a. Deutschland, USA, China, Indien) im Projekt XMM7260.
Integration und Verifikation von Build-Konfigurationen (Features/System-Defines) anderer Systemplattformen (propagates).
Durchführung von Engineering und Pre-Integrations-Builds. Bereitstellung täglicher Hauptlinien (daily mainline builds) und Release Mails.
Integration, build und automatisierter Test von bis zu 10 Builds unterschiedlicher Hardware-Varianten und Build-Typen pro Tag (jeweils bis zu 10 SW-Varianten).
Unterstützung von Entwicklern zu Problemen der Build Umgebung, zu Build-Requests und Verfahrensabläufen.
Erstellung von Parsing-Skripten zur automatischen Erkennung von Inkonsistenzen zwischen den Schnittstellen (Registern und Speicherbereichen) der verwendeten Hardware-Simulation (generierte Headerfiles) und der Anwendung durch die Software-Entwickler (verwendete Headerfiles, map-files)
Erstellung eines perl-Tkx basierten GUI Frameworks, sowie von Skripten zur automatisierten Installation des GUI Frameworks. Entwicklung einer automatisierten Indizierung von Clearcase VOBs, zur optimierten Suche von Datei-Inhalten einer Config-Spec unter Berücksichtigung extrem hoher Datenmengen (Index-Sharing, Parallelisierung, Mehrfach-Infizierung, Caching etc.).
Eclipse Juno, MS SharePoint, ClearCase, ClearQuest, GNU gmake, ARM armcc, MS Lync, MS Office 2003, ActiveState Perl 5.8.9 + 5.14.2, Perl-DevKit, Perl-Tk, Perl-Tkx (Tcl), bash, Linux, Windows 2008
Hardware-Design, Linux (Kernel), Windows 7, Bash Shell, Eclipse, Perl, Softwareentwicklung (allg.), Tool Command Language, Konfiguration, User Interface (UI)
7/2009 – 9/2012
Tätigkeitsbeschreibung
Windows XP, CentOS 5.4 (RedHat Enterprise 5.4 compatible)
Arbeit als Haupt-Integrator/Build-Manager/Tooling-Entwickler in der Softwareintegration eines Navigationsradios im Projekt ”VW/Audi MIB” für PASE SW (Panasonic Neumünster) – alle Rollen wurden gleichzeitig ausgeübt (im letztem Jahr wurde die Rolle des Haupt-Integrators übergeben um den Tooling-Bereich weiter zu stärken).
Erstellung von Konzepten und Erweiterung der Unternehmensweiten Build-Umgebung, der Software-Integrations-Werkzeuge und Software-Lieferung von Panasonic an VW/Seat/Skoda/Audi für die Märkte EU, Nord-Amerika, Japan und China (von DOS-Batch-Builds und einfachem SVN zur Config-Spec basierte Entwicklung mittels umfangreichem perl/Tk Werkzeugen).
Erweiterung der SVN/Tortoise-Toolchain um ClearCase-Elemente wie Config-Specs, GUIs zum Working-Copy Management und Version-Tree-GUIs (perl Skripte und perl/Tk/Tkx GUIs), sowie Integration der ersten Config-Spec basierten SVN Builds (Umstellung im laufenden Projekt).
Reduzierung der durchschnittlichen Arbeitskopie-Ladezeiten von 2 Stunden auf 15 Minuten (Implementierung der Client-Server Architektur und Caching-Mechanismen).
Bereitstellung der Werkzeuge für Kommando-Zeilen und GUI-basierter Software-Builds.
Unterstützung der IT beim Aufsetzen des Subversion (SVN) Servers (CentOS 5.4) und des Remote-Backups (Symantec Backup Exec 11d Agent for Linux). Support der Entwickler-Teams in Neumünster und Langen (Netmeeting). Unterstützung von Pre-Integratoren bei der Analyse von Build-Problemen.
Build-Management: Erstellung von Skripten für generische und projektspezifische Build-Abläufe; Durchführung von Testbuilds zur Vermeidung von Problemen während der Software-Integation; Kontinuierliche Verbesserung des Ablaufverhaltens der Software-Builds (Parallelität, Geschwindigkeit, Fehlerweiterleitung, Fortsetzung); Start und Überwachung/Fortsetzung von Builds (z.B. an Samstagen/Sonntagen oder am späten Abend bzw. mittels Fernzugang von Zuhause); Berücksichtigung von speziellen Betriebssystemproblemen wie maximalen Pfad-Tiefen; Erzeugung automatischer Emails (bei Build-Fehlern, bei Erzeugung wesentlicher Build-Artefakte, bei Fertigstellung des Builds); Unterstützung von Continous Integration (automatisch gestartete Builds);
Integrations-Management: Zusammenführen von Config-Specs und Hinzufügen von Bugfixes; Bereinigung von Config-Specs; Durchführung lokaler Builds; Durchführung von Testbuilds; Prüfung der Protokolldateien und Build-Artefakte; Verwaltung offizieller Softwarebuilds und Testbuilds in Jira. Bereitstellung von Informationen an das Test-Team; Unterstützung der Software-Stabilisierung durch Config-Spec Branching (Modul-Branching und Kopieren der Patches und dessen Verifizierung);
Tooling-Management und Support: Planung der Feature-Entwicklung; Priorisierung von Bugfixes; Sicherstellung der Funktionalität der (12) Build-PCs; Sicherstellung der Langzeit-Reproduzierbarkeit von Builds; Kontinuierliche Messung der Geschwindigkeit einzelner Build-Schritte und der Arbeitskopie-Ladezeiten der Entwickler-PCs; Verwendung von Jira-Tickets zur Koordinierung der Tool-Entwicklung und Feature-Anfragen der Entwickler (etwa 2 pro Tag); Kontinuierliche Erhöhung der Code-Qualität; Überwachung von Servern und Clients (Ressourcen, Software-Versionen, Ablaufzeiten); Erarbeitung von Zukunftskonzepten (Build-Farm, Parallele Builds, Build-Dienste usw.); Berücksichtigung von Systemausfällen in Hardware und Software (Bereitstellung von Rückfallebenen); Lizenzmanagement;
Tool-Entwicklung: Bereitstellung von Skripten und Konfigurationsdateien für Arbeitsabläufe der Entwickler, Qualitätsmanager, Release-Manager, IT, Build-Manager, Deployer und Integratoren (u.a. generierten Webseiten). Verwendung von Feature-Branches zur Verringerung des Risikos bei Patch-Lieferungen; Implementierung von Caching-Mechanismen zur Erhöhung des Netzwerkdurchsatzes. Entwicklung und Dokumentation eines Skript-Frameworks mit ungefähr 130.000 Skript-Zeilen + Zeilen von Konfigurationsdateien (davon ungefähr 70 Kommando-Zeilen Skripts und 15 GUIs). Umstellung auf ActiveState Perl 5.14.2 + TCL 8.5. Entwicklung generischer auch eigenständig betreibbarer Gui-Plugins; Erzeugung Perl-unabhängiger Perl-Exe Dateien mittels PerlApp (für make-framework und Zulieferer); Erstellung umfangreicher Online-Hilfen (einschließlich Installationsanweisungen, abgesicherter Namensräume für Umgebungsvariablen etc.);
Liste entwickelter GUIs: Build-Starter, Build-Monitor, Build-Manager (Status, Fortsetzung), Config-Spec Vergleich (Webseite mit Dateivergleich), Test-Tower Management (Build-Upload Management), Approval-Sheet Generator (erzeugt Excel-Seiten mit Jira-Infos), Conig-Spec GUI, Config-Spec Ladezeiten/Undo-Manager, SVN Repository Manager, Server-Monitor, Client-Admin, Client-Monitor, SVN Version-Tree (ähnlich ClearCase mit Merge-Info), Config-Spec/Arbeitskopie Grep.
Liste entwickelter Kommandozeilen-Skripte: Build-Sequenz-Interpreter; Datenverschlüsselung; Übersetzerwarnungen in generisches Format für Excel CSV umwandeln; Trace/Debug Meldungen Parsen und Ressourcen ablegen (reduziert Speicherbedarf der Hardware und beschleunigt die ausgeführte Software); Rekursiver Vergleich oder Export von Verzeichnissen; Management persistenter Build-Konfigurationen und ID; Vergleich der Rechnerkonfiguration mit der Referenzmaschine; Zugriff auf tiefe Pfade unter DOS; Erzeugung von und Zugriff auf Jira-Tickets; Analyse von Map-Dateien (Generierung von Excel-Seiten); Erzeugung kompletter Software-Builds (einschließlich laden der Arbeitskopien); nachträgliche Änderung von Tooltip/Version-Infos (dlls + exe); Erstellung von Release-Webseiten und Index-Seiten; Automatischer Mailversand; Bereitstellung und Ermittlung von Software-Paketversionen (für Release-Notes); Exportieren von Zug-CDs auf die Testtower; Backup und Wiederherstellung von Verzeichnissen der Arbeitskopien (verhindert das Entwickler unarchivierte Quelldateien verlieren); Ermittlung aller Branches und Versionen von Dateien einer Config-Spec bzw. Arbeitskopie; Erzeugung von Branches (Berücksichtigung von Syntax und User-ID); Berücksichtigung von Rollen; Laden von Arbeitskopien; Verifikation von Arbeitskopien; Repository Mapping; Anwender-ID Management; Server Administration; Server Prozess (SVN Proxy + Batchmode-Unterstützung); Server Zugriffs-Management; Server-Caching (Cleanup, Management); Server Replikations-Management; Kommando-Wrapper (Queue); Wrapper-Management;
MS Windows CE 5.0 (Platformbuilder), MS eMbedded Vis C++ 4.0 (Evc), Multitool 516C GHS (Greenhills-Sofware), Visual DSP 4.0, MS Netmeeting, MS Office 2003 (Word, Excel, PowerPoint), Cygwin (UNIX commands and scripts on Win32), FTP, makefiles, HTML, XML, CSS, ActiveState Perl 5.8.9 + 5.14.2, Perl-DevKit, Perl-Tk, Perl-Tkx (Tcl), bash, UNIX-Tools like nm, od, grep, tail, sed, tar, gzip, etc., SVN Command Line Cllient 1.6.13 (Collabnet), Tortoise SVN 1.6.11 for SVN 1.6.13, Notepad++, Beyond Compare 3.2.4, Robocopy XP010, Jira-CLI 2.0.0-rc1, smbclient, Eclipse Juno
Hardware-Design, Symantec (allg.), UNIX, Windows XP, Microsoft Windows CE, Betriebssysteme, Microsoft Windows (allg.), Release-Management, Subversion, Sed (Programming Language), Bash Shell, C, C++, Eclipse
7/2008 – 3/2009
Tätigkeitsbeschreibung
Windows XP, Windows 2000 5.0
Arbeit als Haupt-Integrator in der Softwareintegration eines Navigationsradios im Projekt ”Ford MFD NAV”. Verifikation und Integration von Software-Zulieferungen (Plattform, HMI, Middleware, Applikationen). Durchführung der Software-Verifikations-Tests (BVT).
Durchführung und Optimierung ClearCase basierter Software-Lieferungen von Software-Untermengen an Zulieferer des HMI-Frameworks + PDAL).
Untersuchung von Risiken und Optimierung im Softwarelieferprozess und der Softwareintegration. U.a. Beschleunigung von Abläufen wie Grep und ClearCase Snapshot-Erzeugung mittels Caching um Faktor 5 gegenüber ClearCase und Windows.
Entwicklung von Skripten zur Beschleunigung des Build- und Lieferprozesses (Optimierung von Datei-Transfer, Netzwerklast, Speicherbedarf, uvm.).
Entwicklung von XML-konfigurierten Skripten zur automatisierten Suche und Lieferung von Release-Notes.
Erweiterung von Perl-Skripten und XLS-Dateien zur Darstellung von Memory-Maps (NOR, NAND, RAM, Prozesse).
Erstellung Template-basierter Skript-Systeme unter Perl und Bash (Cygwin) zur Automatisierung der Integration und Softwarelieferung, zur Identifikation von Integrationsproblemen und zur Dokumentation des Softwarelieferungen.
Erstellung von Skripten zur Erzeugung von XML-Webseiten mittels CSS.
Erstellung einer GUI zum Management aller ClearCase Dateien der Softwarereleases. Unterstützung von diversen Editoren, Diff-Tools, Grep mit Caching, Snapshot-Management, File-Version-Trees, etc. (etwa 10.000 LOC + 20.000 für weitere Skripts).
Rational ClearCase (MultiSite) on Win32 Dynamic/Snapshot Views, Remedy Action Request System, DocuShare, eBinder (gnu), ARM RVCT C/C++ 2.2, MSVC++ 6.0, MS Netmeeting, MS Office 2003 (Word, Excel, PowerPoint), BP Download Manager (to flash software), BP TTFis (to transfer IO commands to hardware), Cygwin (UNIX commands and scripts on Win32), FTP, Lauterbach Trace32 (to prepare hardware during BVT), gmake, makefiles, HTML, XML, CSS, Perl, Perl-Tk, bash, GNU C++, UNIX-Tools like nm, od, grep, tail, sed, tar, gzip, etc.
Hardware-Design, UNIX, Windows XP, Betriebssysteme, Sed (Programming Language), Bash Shell, C, C++, Perl, Tool Command Language, XML, Telekommunikation / Netzwerke (allg.), File Transfer Protocol (FTP), User Interface (UI)
7/2007 – 5/2008
Tätigkeitsbeschreibung
Solaris, Linux, lsf, Windows 2000 5.0, Windows Server 2003
ClearCase basierte Software-Lieferung und Integration von UMTS Modem Stacks im Projekt ”ICE2” für einen amerikanischen Mobilfunk-Hersteller.
ClearCase/Zip basierte Software-Integration von EDGE/UMTS Modem Stacks im Projekt ”AVIDE/SLEEK” für einen koreanischen Mobilfunk-Hersteller.
Integration von ClearQuest-basierten Änderungsanforderungen in UMTS Modem Stacks (Make, C, C++, SDL).
Verifikation zugelieferter ClearCase Labels, Replikationen, Branching und Inhalte
Erstellung von Baselines, Releases, Websites, Testbuilds, Engineering-Builds
Erstellung von Skripten zur Prüfung der Sichtbarkeit und Gültigkeit der Änderungen unter ClearCase
Erstellung von Skripten zur Indizierung von ClearCase-VOBs zum parallelem Durchsuchen von ClearCase ohne Config-Spec
Optimierung der Installation, Verteilung und Einbettung von Skripten (Deployment) unter UNIX und Win32
Fernwartung der entwickelten Tools und Softwareintegration mittels Tarantella (Sun Secure Global Network)
Schulung des Dallas-Integration Teams (Installation der Tool-Chain, Vermeidung von Integrationsfehlern, Erhöhung der Produktivität und Qualität)
Verbesserung der perl-Tk GUI zur Software-Integration
Erstellung von perl-Skripts unter Win32 und UNIX zum Upload von Dateien und Ordnern auf Verzeichnisse von UNIX auf einen Win32 share
Erstellung von Skripts zum FTP-upload und download mit automatischer Verschlüsselung/Entschlüsselung mittels GNU PG
Citrix Metaframe, WRQ Reflection X 13.0.4, Hummingbird Exceed 7.1.1.0, ClearQuest - UTP (Unified Tracking Platform), Rational ClearCase (MultiSite) on UNIX/Win32 Dynamic/Snapshot Views, ARM RVCT C/C++ 2.2, MSVC++ 6.0, MS Netmeeting, MS Office 2003 (Word, Excel), Network Associates PGP 6.5.8, IFWD FlashTool (to flash fls, eep, dffs to phone), SUN OS 5.9, Redhat Linux (with ClearCase), FTP, platform lsf 6.2, URANIA UNIX/W32 Cluster (about 100 servers), Apoxi 2.10, Lauterbach Trace32, gmake, makefiles, HTML, Perl, Perl-Tk, ksh, GNU C++, UNIX-Tools like nm, od, grep, tail, sed, tar, gzip, etc.
UNIX, Windows Server (allg.), Solaris, Sed (Programming Language), C, C++, Perl, Tool Command Language, Scripting, Telekommunikation / Netzwerke (allg.), Umts, File Transfer Protocol (FTP), User Interface (UI)
11/2006 – 6/2007
Tätigkeitsbeschreibung
Windows XP Professional
Projekt ”CMaRT - ClearCase/ClearQuest-Integration” zur Erhöhung der Qualität und Produktivität von Software-Zulieferungen und Gewährleistung der Einhaltung des Entwicklungs-Prozesses.
Entwicklung objektorientierter Perl-Module (Active State perlobj) zur Integration von ClearCase und ClearQuest (etwa 30 Kommandos zur Automatisierung des Workflows wie etwa Baselining, Drafting, Integration, Aktivierung des Changesets im View).
Entwicklung von Perl-Plugins für den RPC-Server Prozess zur Abfrage/Speicherung von Daten in ClearQuest.
Entwicklung von Perl-Plugins und Framework-Modulen des Clients zur Kommunikation mit den Server-Plugins.
Programmierung von ClearCase-Aktionen, Logging und Fehlerbehandlung in Perl.
Restrukturierung und Neudesign von perl-Modulen (z.B. zur automatischen Integration und zum Baselining).
Erweiterung alter Perl-Module um Logging und bessere Fehlerbehandlung und Dokumentation.
Übersetzung von Perl-Quelldateien und Debugging von Makefiles
Implementation von Parsing-Klassen zur Absicherung gültiger Eingabewerte für ClearCase und ClearQuest Objekte entsprechend dem globalen Konfigurations-Management-Plan (Namenskonventionen) der Firma.
Unterstützung (Support) von Anwendern der Skripts und debugging der Skripts in der Arbeitsumgebung (Configspecs/Views) der Anwender.
Entwicklung der Skripts mittels ClearCase und ClearQuest Web-Frontend und Erstellung persönlicher Abfragen für das ClearQuest Web-Frontend
Programmierung von ClearQuest und Oracle Datenbank-Zugriffen.
Design von Pod-Templates und Anpassung der Perl-Module auf diese Templates zur Ereugung einer einheitlichen HTML-Dokumentation der Perl-Module. Generierung der HTML-Dokumentation mit pod2html. Einbindung des Stylesheets Active.css von Active State. Laufzeit-Extraktion von Pod-Dokumentation aus den Perl-Modulen für Usage-Ausgaben.
Anwendung der perl XML Bibliothek zur Speicherung von Daten.
Erstellung einer Testsuite zur Automatisierung von Black-Box und White-Box Tests mittels Cygwin bash-Skripts (mit Debugging, Break-Points, Logging und Error-Handling). Programmierung von Skript-Templates und Skript-Bibliotheken zur Produktivitätserhöhung.
ClearCase Multisite 2003.06, ClearQuest 2003.06, Active State perl v5.8.8, Cygwin 1.5.24, GNU make 3.81, Oracle 9.2, Beyond Compare 2.3.1, UltraEdit Professional 12.20, Texas Instruments CMaRT CMT 1.0
Oracle-Anwendungen, Windows XP, Bash Shell, Perl, XML, Konfiguration, RPC (Remote Procedure Call), HTML, Workflows
7/2004 – 9/2006
Tätigkeitsbeschreibung
Windows XP Professional, SUNOS 5.9, RedHat Linux, Infineon Cluster ”Urania”, NUC32
Build/Release-Management der GSM Plattform im Projekt ”MP1G” unter UNIX und Win32 mittels Rational ClearCase, ARM ADS 1.2 und RVCT 2.1 für NUC32-basierte GSM Mobiltelefone (07/2004-06/2005).
Build/Release-Management im UMTS Kundenprojekt ”VENUSU” unter UNIX und Win32 mittels Rational ClearCase, ARM RVCT 2.1 und RVCT 2.2 für NUC32-basierte Edge/UMTS-Mobiltelefone (07/2005-09/2006).
Management eines 20.000 Dateien umfassenden Software-Bestands mit Zulieferungen von über 30 Firmen (u.a. Indien und Japan) und Entwicklung von Skripts zur Darstellung des Datei-Bestands jedes Releases und der Abweichungen zum Vorgänger-Release im Intranet (HTML) sowie Design und Entwicklung benötigter Skripts und C++ Applikationen zur Sicherstellung der Lieferqualität und Erhöhung der Produktivität (etwa 80.000 Zeilen Skripts, C++ und Dokumentation).
Sicherstellung der Compilierbarkeit auf UNIX und Windows in Dynamic- und Snapshot-Views.
Integration von Hotfix-, Feature- und Fortschritts-Zulieferungen in ClearCase-Config-Specs, Durchführung mehrerer Software-Lieferungen zur gleichen Zeit unter wechselnden Prioritäten und Berücksichtigung von Änderungen in späten Phasen der Software-Lieferung unter möglichst präziser Abschätzung der beeinflussten Bereiche.
Review und Aufbereitung der Config-Specs anderer Integratoren (Einfügen von Kommentaren, Übertragung endgültiger Lösungen auf Branches mit Namen einer durch ClearQuest verwalteten ID, Labeling mehrerer Dateien eines Hotfixes mit einem Hotfix-Label, Sicherstellung der Verfügbarkeit von UNIX und Win32 Config-Specs und Sub-Config-Specs).
Analyse und Behebung von Compilier- und Link-Fehlern (Verwendung falscher Versionen von C/C++ Quell oder Header-Dateien, falscher Versionen von Makefiles, Inkompatibilitäten zwischen UNIX und Win32, fehlender oder falscher symbolischer Links und load-rules, fehlende Anpassung an geänderte Schnittstellen, fehlerhafter Makefiles etc.).
Ermittlung von Konfigurations-Änderungen der Komponenten (C-Defines der Klassen: Feature, Application, System und Compiler) und derer Abhängigkeiten durch Environment-Auswertung und Makefile-Parsing (Ermittlung und Darstellung der Variablen und Auswertungswege der Makefile-Hierachie).
Rückverfolgung eines Fehlers des Build-Systems oder der Software-Komponente bis zur Ursache und Protokollierung in der ClearQuest-Datenbank (UTP) sowie Kontaktaufnahme mit dem Entwickler oder Feature-Lead. Anforderung offizieller Fixes und Sicherstellung der Verfügbarkeit der Fixes in neuen Lieferungen der Baseline (Entfernung veralteter Patch-Rules aus der CS).
Durchführung und Konfiguration verschiedener Export-Typen von Entwicklungs in Kunden-VOBs entsprechend den Lizenzvereinbarungen: Voll-Export (mittels FS-Import-Skript), manueller oder teilautomatischer Differenz-Export (durch selbst erstellte Skripts) und Sicherstellung der Funktionsfähigkeit am Ziel-Standort sowie Überwachung des Replikations-Abbildung der Standorte und Epoch-Tabellen.
Parallele Ermittlung aller Datei-Versionen eines Releases zur schnellen Erkennung der Release-Differenzen und illegal verschobener Labels und lastreduziertes paralleles Labeling auf Development und Liefer-VOBs.
Erzeugung von Archiven von Bibliotheken mit Debugging-Informationen entsprechend aktueller Copyrights und Lizenzbedingungen und upload verschlüsselter Archive auf die FTP-Server zum Zugriff durch die Empfänger verwendeter PGP-Schlüssel.
Flashen der Software auf das Mobiltelefon bzw. die in Entwicklung befindliche Mobiltelefon-Hardware über Com-Ports oder USB zur Sicherstellung des Zusammenspiels von Flash-Dateien und DFFS (Dymamic Flash File System) und Hardware-Revision des Mobiltelefons.
Start des Mobiltelefons und Durchführung elementarer Tests (Anruf, SMS) über Benutzeroberfläche des Mobiltelefons oder bei Modem-Builds mittels AT-Kommando und Ermittlung von Absturz-Ursachen.
Design, Implementierung, Test und Support eines Projekt-konfigurierbaren Build/Integrations-Toolsets aus etwa 180 Skripts und 80.000 Zeilen ksh, perl, perl-Tk und Dokumentation mit Tool-unterstützter strukturierter externer Datenhaltung, Installation, Administration und Job-Management, wie im folgendem kurz beschrieben:
Automatisches Löschen verbliebener temporärer Dateien und veralteter Logs und Daten entsprechend Konfiguration durch den Anwender.
Anbindung der Installation-Views über symbolische Links und Zugriff über einen Toolset-Alias, zur Verwendung aller Tools unabhängig vom aktuellem Verzeichnispfad oder dem aktuell gesetztem View. Zur Erhöhung der Verfügbarkeit wurden alternative Installation-Views auf einem anderem ClearCase-Server unterstützt und entsprechende Hot-Swap Kommandos angeboten.
Entwurf und Anwendung von Skript-Templates zur Bereitstellung gemeinsamer Basis-Optionen, Logging, Signal-Handling, Cleanup, Soft-Shutdown und Funktionsbibliotheken.
Bereitstellung von Skript-Usage und Man-Pages, sowie aus den Man-Pages generierter HTML-Dokumentation.
Bereitstellung vieler ClearCase-bezogener Kommandos zur paralleler Abarbeitung über mehrere VOBs, wie etwa Labeling, Label lockig/unlocking, Label-Erkennung, Ermittlung von Datei-Versionen (lastoptimiert und laufzeit-skalierbar unter Berücksichtigung vorhandener ClearCase-Lizenzen)
Bereitstellung integrationsbezogener Kommandos wie parallele Dateisuche und paralleles Grep für Dynamic- und Snapshot-Views und Erweiterung um mehrstufiges Suchen und Filterung unrelevanter Datei-Änderungen, sowie Checksum-basierte Verzeichnis-Pfad- und Trigger-Transformations-unabhängige Datei-Vergleiche.
Zum parallelem Build unter Win32 und zur Entlastung des Netzwerk-Transfers für Suchen über große Datenbestände wurde eine Win32 Cluster-Software implementiert, die es gestattet mehreren Usern ungenutzte Rechenleistung aller einbezogener PCs zu nutzen.
Zur Generierung kundenspezifischer Dokumente wurde ein Dokumenten-Compiler in perl entwickelt. Die zugehörige GUI zur Layout-Gestaltung wurde in perl-Tk implementiert. Ebenso wurden ein Rollen-Management, Read-Only-Modus bestimmter Text-Bestandteile, ein Layouter- und ein Daten-Bereitsteller-Modus, Einbettung von Grafik und Hintergrund-Bilder, Dokumenten-Templates, Vererbung von Text-Variablen und Vererbung von Formatierung implementiert.
Erstellung von Perl-Tk GUIs zur Anwendung des Skript-Sets: Expandierung von Verzeichnissen in Config-Specs, Darstellung inaktiver CS-Regeln, Darstellung selektierter Datei-Versionen von Labeln, Warnung vor verdeckten Datei-Versionen von Labeln, Management von Emails und Web-Inhalten. Win32-Kommandos etwa die Win32-ClearCase-Kommandos zur Versions-Baum-Darstellung und Applikationen wie UltraEdit wurden aus der UNIX Perl-Tk-GUI über abgesetzte Kommandos auf den dynamischen Views ausgeführt, um die Möglichkeiten beider Betriebssysteme und der MFC zu verbinden.
Entwicklung von Skripts zur Erzeugung von Meta-Dateien zu einem Release, aus dem die Release- Webseiten generiert wurden (zumeist mit Differenz zum Vorgänger-Release und Zusammenfassung auf der Hauptseite berechnet). Es wurden unter Anderem relevante Informationen der Bereiche: Zustand (aktueller Lieferprogress und automatische Versendung von Emails), ClearCase (Config-Spec, Labels, Load-Rules, VOBs, Replikation, Branches, Fixes), Konfiguration (aktive Applikationen und Features, System-Defines, Makefile-Differenzen), Speicherverbrauch (ROM, RAM, etc. getrennt nach Bereichen etwa Multimedia-Libs), Dateityp, Speicherort, Copyrights, Quality (Lines of Code inkl. Berücksichtigung effektiv verwendeter Dateien, redundante Dateien, ARM/Win32-Warnings) ermittelt.
Citrix Metaframe, WRQ Reflection X 13.0.4, Hummingbird Exceed 7.1.1.0, ClearQuest - UTP (Unified Tracking Platform), Rational ClearCase (MultiSite) on UNIX/Win32 Dynamic/Snapshot Views, ARM ADS 1.2, ARM RVCT C/C++ 2.1 + 2.2, MSVC++ 6.0, MS Netmeeting, MS Office 2003 (Word, Excel), Network Associates PGP 6.5.8, DWD FlashTool 6.4 (to flash fls, eep, dffs to phone), DWD PhoneTool 1.6 (to modify phone-data), Comneon MobileAnalyzer 8.0 (to sample runtime-traces), SUN OS 5.9, Redhat Linux (with ClearCase), FTP, platform lsf 6.2, URANIA UNIX/W32 Cluster (about 100 servers), Apoxi 2.10, Lauterbach Trace32, gmake, makefiles, HTML, Perl, Perl-Tk, ksh, GNU C++, UNIX-Tools like nm, od, grep, tail, sed, tar, gzip, etc.
Hardware-Design, UNIX, Windows XP, Solaris, Betriebssysteme, Release-Management, Sed (Programming Language), C, C++, Mobile Application Development, Perl, Tool Command Language, IT-Support (allg.)
5/2004 – 6/2004
Tätigkeitsbeschreibung
Windows 2000 , MS IIS 6.0
Projekt ”ICS-Adapter” (Design und Entwicklung eines Session-Managements für MS Advanced Server mittels MS-ISAPI Http-Erweiterung)
Erstellung von UML-Diagrammen (Use-Cases, Klassen-Diagramme)
Implementierung und Test des Session-Managements (Multi-Threaded Server-Prozesse)
Ausgabe des Verbindungsstatus im Server-Log (Konfiguration über Windows-Registry)
Entwicklung einer Multi-Threaded DOS Skript-Sprache zur Simulation paralleler Client-Anfragen (Lasttests)
Entwicklung von Skripts in der entwickelten Skript-Sprache zur Automatisierung des Server-Funktionalitäts- und Last-Tests
Erstellung des Administrator-Handbuchs
MS Windows 2000, Rational ROSE Professional 7.7 (Data Modeler), MS IIS 6.0, HTTP 1.1, MS RPC, MS ISAPI HTTP-Extension (SDK), MS Visual Source Safe, MS-Visual C++ 6.0, STL, Real VNC
Microsoft Windows (allg.), IIS, UML, Rational Rose, C, C++, Softwareentwicklung (allg.), Visual C++, Konfiguration, Scripting, RPC (Remote Procedure Call), Hypertext Transfer Protocols (HTTP)
3/2004 – 4/2004
Tätigkeitsbeschreibung
Windows XP Professional, SUNOS 5
Projekt ”Usage Data Backup - Message Coordinator” (Verbesserung und Erweiterung von Backup-Software im Billing-Umfeld)
Analyse bestehender Skripts (bash) und Ermittlung des Gefährdungspotentials
Verbesserung der Protokollierung der Skripts
Erweiterte Fehlerbehandlung entsprechend der Error-Codes der aufgerufenen UNIX-Kommandos
Erweiterte Verwendung von Variablen und Skript-Parametern
Verbessertes Signal-Handling und automatisches Löschen temporärer Dateien
Erweiterung und Test der Benutzer-Schnittstelle
MS-Windows XP-Professional, SUNOS 5, UNIX-Tools (vi, ksh, grep, sed etc.), Rational ClearCase, Netmanage View Now X 1.0, FTP, mit (magnetic tape)
UNIX, Windows XP, Solaris, Microsoft Windows (allg.), Sed (Programming Language), Bash Shell, KornShell, Back up / Recovery, File Transfer Protocol (FTP), Benutzerschnittstelle / Mensch-Maschine-Schnittstelle (MMS), Projektmanagement - Umfeldanalyse
2/2000 – 7/2003
Tätigkeitsbeschreibung
OpenVMS/Alpha, Tru64 UNIX, Windows NT, SUN Solaris
Konsortiumsprojekt mit über 50 Mitarbeitern. Der Einstieg ins Projekt begann etwa 1 Jahr nach Projektstart.
Analyse und Bewertung von C++ Compilern und zugehöriger Bibliotheken der Plattformen Tru64 UNIX, SUN OS/Solaris, Windows NT und OpenVMS unter Berücksichtigung der Kriterien: Kompatibilität, Abweichungen voneinander und von Standards, Qualität der Compilerimplementierungen sowie Risiken der Compilerimplementierungen für den Erfolg des Projekts.
Bereitstellung von C++-Programmierrichtlinien zur Gewährleistung von Portabilität und Qualität der im Projekt durch die einzelnen Entwicklergruppen erstellten Software.
Analyse der Bibliotheksschnittstellen der unter den unterschiedlichen Betriebssystemen verwendeten C++-Compilern und Bereitstellung kompatibler Teilmengen unter Berücksichtigung der Abhängigkeiten der System-Header-Dateien zueinander und ihrer Konfiguration.
Unterstützung der Entwickler bei compiler- und plattformspezifischen Fragen und Problemen (Portabilitätsprobleme, Tru64, NT, VMS) und Teilnahme an zahlreichen Code-Reviews der Entwickler zur Gewährleistung der Qualität der innerhalb der Abteilung erstellten Software.
Berücksichtigung von POSIX und ANSI/ISO C++ Standard (Final Draft).
Erstellung von Checklisten und Verfahren (Dokumente, Skripts) zur Behandlung notwendiger Abweichungen von allgemeinen Qualitätskriterien unter Verwendung von Werkzeugen (QAC, QAC++). Konzeption, Dokumentation.
Bereitstellung und Konfiguration von Softwareanalyse-Werkzeugen, sowie Integration dieser Werkzeuge in die Entwicklungsumgebung des Projekts.
Design, Implementierung, Dokumentation, Fehleranalyse und Support von Shell-Skripten zur Installation und Migration von Software und Datenbank-Schemata im Doppel-Rechnersytem (Tru64 Cluster) auf Basis von Tar-Archiven mit zusätzlichen Prüfsummen aller Dateien und geeigneter Zusatzwerkzeuge (Pack-Skripts basierend auf Dateisystem der Segmententwicklung unter Berücksichtigung des ClearCase-Versionierungssystems, Skripts zur Gültigkeits- und Versionsprüfung von Dateien etc.). Gewährleistung von Installationen im laufendem Betrieb.
Konzeption, Dokumentation und Umsetzung einer Software aus etwa 40000 Zeilen C++ und Skript-Code (ksh, perl) zur Verwaltung von etwa 40 Prozessen der Entwicklergruppen im Tru64 Doppelrechnersystem und Einzelrechnersystem zur Gewährleistung von Ausfallsicherheit, hoher Verfügbarkeit, Stabilität, minimalem Datenverlust bei Ablauf- und Systemfehlern, sowie Konfigurierbarkeit zeitintensiver Netzwerk oder Datenbank-Operationen (jeweils 100 Seiten ”Konzept”, ”Handbuch der Programmiererschnittstellen”, ”Administratorhandbuch”). Berücksichtigung und Gewährleistung von Nachstart-Reihenfolge, Prozessabhängigkeiten, Shutdown-Folgen, Prozessgruppen, Prozessverlagerung auf andere Rechner, Ressouren-Kontrolle, Protokollierung, Ausfall und Restart von Kontrollprozessen, Fallback-Mechanismen zur Umgehung von möglichen Problemfällen.
Software und Entwickler-Schnittstellen zur Prozessüberwachung wurden im laufendem Projekt eingeführt. Deshalb war es notwendig die Produktivität der Prozessentwickler der Entwicklerteams der Konsortiumspartner der unterschiedlichen Software-Segmente auch bei unvermittelt auftretenden Problemen, Neuanforderungen oder Fehlern durch Support in Form von kurzfristiger Lieferung von Bug-Fixes bzw. Publikation von sofort umsetzbaren Workarounds maximal zu gewährleisten. Ein entsprechend aussagekräftiges Logging der Aktionen der beteiligten Prozesse war aufgrund der üblicherweise in Ereignis-basierten Systemen auftretenden Reproduktionsproblemen hierzu unumgänglich. Unterstützend wurden Skripts zur Ausgabe und Laufzeitkonfiguration der Protokollmeldungen nach Problemkategorien entwickelt.
Optimale Konfiguration des Mounts von Shared-NFS-Partitionen und Implementierung universeller C++-Klassen zum Dateizugriff mit integrierter Korrektur von Zugriffsfehlern, die aufgrund von Fehlern des NFS-Caching auf Seite des Betriebssystems oder Rechnerabschaltung/Absturz auftreten können.
Datenkommunikation über Shared-NFS, SmartSockets, rsh, Compaq TruCluster Memory Channels.
Entwicklung ausfallsicherer Kommunikationsklassen als Ersatz für Sockets, zur Sicherstellung der Abarbeitung von Jobs bei Neustart abgestürzter Prozesse.
Beratung und Unterstützung der Software und Skripts zuliefernden Entwickler unter Berücksichtigung der speziellen Bedürfnisse der einzelnen Entwicklergruppen. Optimierung der Konfigurationen der Client/Server-Prozesse (etwa 100 Konfigurationsparameter) unter Berücksichtigung unterschiedlicher Fälle von Prozessfehlern (z.B. Endlosschleifen, Segmentation Violation, exit, Bibliotheksfehler, Signals, Threads, DB-Fehler, Rechnerabsturz, Netzwerkausfall). Erhöhung der Verfügbarkeit der Prozesse des Clusters durch Management redundanter Prozesse und Vergabe von Rollen, sowie entsprechender Werkzeuge (ksh-Skripts) zum geordnetem Verlagern/Herunterfahren/Abschalten von Prozessen. Automatisiertes Ablegen von Core-Dateien bei Prozessabsturz (verhindert Überschreiben anderer core-Dateien), Werkzeug zum Anzeigen von Core-Dateien. Automatisches Löschen alter Protokolldateien.
Design und Implementierung von Bibliotheken und Administrationswerkzeugen (C++ Programme und Skripts) zur Verwaltung komplexer, zeitlich über Prozessgrenzen hinweg synchronisiert abrufbarer Protokollmechanismen mit einzeln zur Laufzeit ein/abschaltbarer Meldungen.
Einsatz von Design Patterns (z.B. GRASP, Model-View-Controller).
Design und Entwicklung einer perl-Tk GUI zur Bedienung etlicher administrativer Skripts des Prozess-Managements unter Gewährleistung der Ausführung einzelner Operationen im Hintergrund und zur Erhöhung der Nutzbarkeit.
Schulung der Entwickler der Konsortiumspartner zu den Themen ”Installation und Release-Verwaltung auf Tru64-UNIX-Cluster mit Oracle Datenbank” sowie ”Prozessmanagement und Sicherung der Verfügbarkeit von Prozessen im Tru64-UNIX-Cluster”.
Installation und Konfiguration von Testsystemen.
Zur Vermeidung der Notwendigkeit der root-Recht-Vergabe an etliche Entwickler, wurde beim Design der generischen Installationsskripte die Möglichkeit vorgesehen, eingeschränkte Ausführung für normale UNIX-Anwender zu gestatten. Hierdurch konnten mehrere unterschiedliche Entwicklungsstände der integrierten Software parallel von Entwicklern installiert und getestet werden. Entsprechende Skripts zum Management von Test-Usern (automatisiertes Anlegen/Entfernen von UNIX-Anwendern, Anlegen/Entfernen von Verzeichnissen, Kopieren von Referenzdaten, etc.) wurden bereitgestellt.
Erstellung von Referenz-Prozessen zur Simulation diverser Ablauffehler und Analyse der Auswirkung auf die Fehlerkorrekturmechanismen der Prozessüberwachung. Skripts zum automatisiertem Positiv/Negativ-Test aller Hauptfunktionalitäten der Prozessüberwachungssoftware. Verwendung von Purify. Dokumentation der Test-Skripts.
Verwendung eines einheitlichen Ausgabeformats von Meldungen sämtlicher entwickelter Skripts (Klassifizierung der Meldungen in Error, Warning, Status, Info).
Durchführung von Belastungs- und Verfügbarkeitstests in Betriebszentralen des Kunden (Deutsche Bahn) und der Konsortiumspartner. Anpassung von technischen Meldungstexten auf die Sichtebene des Wartungspersonals. Erhöhung der Softwaregüte durch Usability-Tests unter Veränderung der Systemumgebung und bei Durchführung von Anwendungsfehlern (insbesondere für Installationsskripte, GUI, Bibliotheksschnittstellen).
Konzeption und Implementierung von Skripten zum Transfer und Anpassung von Daten unterschiedlicher Datenbankschemata sowie Fehlererkennung, -protokollierung und –behandlung.
Aufgrund der Verwendung etlicher Datenbank-Nutzer mit bestehenden Querbeziehungen und Aufteilung von Datenmodell-Verantwortlichkeiten auf einzelne Konsortiumspartner, sowie zur Gewährleistung eines sauberen Datenmodells, mußte jedem DB-Import ein Wiederaufsetzen des Datenmodells mittels der DM-Skripts erfolgen. Durch Oracle-Import wurden nur die Daten selbst importiert. Bestimmte Datenbereiche der DB waren zu sichern bzw. durch den folgenden Import zu erweitern. Die Konzepte wurden unter meiner Leitung vielfach mit mehreren DB-Entwicklern überarbeitet.
Erstellung diverser sqlplus, PL/SQL und ksh-Skripts zum Datentransfer zwischen verschiedenen Oracle 8.x Datenbankinstanzen. Verwendung von TOAD.
Verwendung des Doxygen Dokumentationssystems (Anwendung des Doxygen Kommentar-Formats).
Erstellung der Dokumentationen unter MS-Word 8.0 nach V-Modell unter Anwendung des Dokumentenmanagement-Systems EDMS bzw. FileNet Content Management.
Entwicklung unter Rational ClearCase unter UNIX und Windows NT.
Verwaltung von Bugfixes und Änderungsanforderungen unter Rational ClearQuest und Bugbase.
Compaq TruCluster Production Server, Compaq Tru64 UNIX, OpenVMS, SQL, sqlplus, Oracle 8.x (Parallel Server), Oracle imp/exp, PL/SQL, Compaq Tru64 ASE-Dienste, Signals, Threads, Talarian SmartSockets, UNIX Admin (root) auf SUN Solaris 7.x, Compaq Tru64 Einzelrechner/Cluster, Rational ClearCase, Rational ClearQuest, Rational Standard C++ Library, Doxygen, V-Modell, Exceed, Telnet, ftp, ksh, perl, perl-Tk 800.023, Excel, MS-Word 8.0, TOAD, POSIX, EDMS, FileNet, Bugbase, Primavera, Purify unter Tru64.
Oracle-Anwendungen, UNIX, Virtual Memory, Solaris, Betriebssysteme, Softwareanforderungsanalyse, C, C++, Perl, PL/SQL, Shell (CSH), SQL*Plus, Tool Command Language, Software Version Control
9/1998 – 12/1999
Tätigkeitsbeschreibung
MS-Windows, SUN Solaris
Großprojekt mit über 50 Mitarbeitern. Der Einstieg ins Projekt begann etwa 2 Jahre nach Projektstart.
Design und Implementierung von Detailed-Windows, List-Windows und GeoMap-Windows unter Visual C++ und dem GUI_Framework IlogViews zur Visualisierung und Handling von Netzelementen der Synchronen Digitalen Hierachie (SDH).
Erstellung des System Designs entsprechend Use Cases des CASE Tools Aonix STP (Software through Pictures).
Visualisierung und Handling von Objekten der Klassen ”site”, ”Multiplex Section Protection”, ”uni/bi-directional Trails”, ”Network Manager”, ”Network Element”. Durchführung von Usability-Tests zur Gewährleistung des geeignetem Zusammenspiels aller GUI-Bereiche.
Grafisch unterstütztes Routing von Netzwerkverbindungen (Endgerät-zu-Endgerät) mit Auswahl von Leitungen auf unterschiedlichen SDH-Ebenen. Berücksichtigung von Konflikten und freien Kapazitäten.
Verwendung des verteilten Dateiverwaltungssystems ClearCase.
Erarbeitung und Verbesserung der Spezifikationen.
Qualitätssicherung durch Code-Review, Change-Management, Testcases und Purify.
Anwendung von Versant mittels CORBA (Wrapper, Subscription).
OOP unter Anwendung von Rational Tools.h++ (Template Library) und RW Standard C++ Library.
Gewährleistung von Jahr 2000-Sicherheit.
Teilnahme an Schulungen zum Thema Telekommunikation und SDH.
Design und Dokumentation der Software unter dem CASE-Tool Aonix StP und üblicher Design Patterns (GRASP, Model-View-Controller etc.)
Arbeit in multi-kulturellem Team (Projektsprache ”Englisch”, etwa 60 Entwickler). Abstimmung benötigter Daten-Populationsskripte und C++-Schnittstellen zum Versant-Server mit anderen Entwicklern.
Gewährleistung von ”Human Interface Guidelines” und ”Corporate Identity” im GUI-Design. Verwendung von Ressource-Dateien zur Unterstützung unterschiedlicher Benutzersprachen.
Parallele Entwicklung in mehreren Clearcase-Views mit Pflege von Bug-Fix-Branches zum Support mehrerer Auslieferungsstände und gleichzeitige Entwicklung mehrerer Entwickler an Quelldateien gleicher Komponenten.
MS-Windows NT 4.0, MS-Visual C++ 4.0, Solaris 7.x, SUN C++, Purify für Windows NT/Solaris, Aonix StP CASE/UML Tool, IlogViews für Windows NT/Solaris, UNIX-Tools (vi, emacs, etc.), Borland Versant (CORBA), Rational ClearCase, Rogue Wave Tools.h++, Rogue Wave Std C++ Library, MS-Word 7.0, Change-Management
UNIX, Solaris, Microsoft Windows (allg.), Qualitätsmanagement / QS / QA (IT), UML, C, C++, Computer-Aided Software Engineering, Visual C++, CORBA, Telekommunikation / Netzwerke (allg.)
1/1998 – 7/1998
Tätigkeitsbeschreibung
Windows NT
Ein Warenwirtschaft / PPS-System ähnlich SAP R/3 wurde von UNIX unter MS Visual C++ auf Windows NT Konsolen-Modus portiert (u.a. Anpassung der Druckeransteuerung).
Das PPS-System wurde vom StdIO-basierten Eingabemodus unter Object C und OCC um eine MS-Windows GUI-Schnittstelle erweitert.
MS Visual C++ 4.0, Object C, GUI-Bibliothek OCC, MS StdLib (POSIX), ISAM, MS-Windows NT 4.0, Make
Isam, UNIX, Microsoft Windows (allg.), SAP Beratung (allg.), C, C++, Visual C++, User Interface (UI), Rechnergestütztes Betriebsleitsystem (RBL), Produktionsplanung und -steuerung (PPS)
11/1993 – 12/1997
Tätigkeitsbeschreibung
Apple MacOS, IBM OS/2, BSD UNIX, SUN Solaris, LINUX, MS-DOS, MS Windows, SCO UNIX, SCO Unixware
Analyse von Stärken und Schwächen sowie von Kompatibilitätsproblemen von C++.
Konzeption einer portablen C-basierten OOP-Sprache zur Erweiterung von ANSI-C/C++ Compilern zur Erhöhung der Produktivität, Portabilität und Stabilität der Programme von OOP-Projekten, sowie der Reduzierung von Speicherplatz-Bedarf (z.B. in embedded Projekten).
Konzeption, Implementierung und Test eines Parsers zur Analyse von objektorientiertem Quellcode sowie eines C-Code, C-Makro und C-Preprozessor-Code Generators.
Entwicklung portabler Laufzeitbibliotheken für Speicher und Dateizugriff, sowie geschwindigkeitsoptimierter Auflösung dynamischer Mehrfachvererbung beliebiger Hierarchietiefe.
Portable Implementierung der Obermenge aller Elemente der grafischen Oberfläche (Controls) der Betriebssysteme Windows 3.x/95/NT, MacOS 7.x (68K & PPC) und IBM OS/2 v.2-4 unter der entwickelten OOP-Sprache.
Implementierung einer Software zum Lizenzmanagement mittels Remote Procedure Calls (RPC).
Entwicklung von grafischen Debuggern unter Windows und MacOS.
Aufbau/Pflege von Geschäftsverbindungen zu Firmen wie SUN, IBM, MetroWerks, GMD (Partnerprogramme).
Implementierung moderner Mechanismen wie Garbage Collection und Incremental Compiling.
Veröffentlichung von Programmier-Kursen in Fachzeitschriften.
Dokumentation des Compilers und der GUI-Bibliothek unter plain HTML in englischer Sprache.
Bereitstellung von Web-Sites in plain HTML.
Administration der Produkt-Web-Site unter Interland Vservers (ftp, email).
Portierung einer Bibliothek zum Management mehrfach vernetzten Speicherbereichen auf weitere 5 Plattformen.
Support der Entwicklungsabteilung des ”Excalibur”-Projekts der GMD-FIRST (Institute for Computer Architecture and Software Technology) in Fragen zu OOP, C++ und des Einsatzes der entwickelten OOP-Werkzeuge.
HTML, FTP, Telnet, Vservers, MacOS 7.x (68K & PPC), Windows 3.x/95/98/NT, IBM OS/2 2-4, BSD UNIX, SUN Solaris 1+2.x, Suse LINUX, MS-DOS, C++ (Borland, Watcom, Microsoft, SUN, GNU, IBM, Metrowerks, Apple), Photoshop, MS Paint, MS IE, Netscape, SCO UNIX, SCO UnixWare
IBM OS/2, Solaris, OpenSuse, Freebsd, Dos, Microsoft Windows (allg.), Apple Mac Systems, C++, Codewarrior, Linux Entwicklung, Visual C++, Telnet (Telecommunication Network), File Transfer Protocol (FTP), HTML
11/1992 – 10/1993
Tätigkeitsbeschreibung
Apple MacOS, UNIX (SGI IRIX, SUN Solaris)
Entwicklung einer GUI zu einem Bestuhlungsplan zum Projekt "Kartenreservierungssoftware" unter 4th Dimension (MacOS) unter Anbindung von Oracle.
Anpassung einer Apple DAL-Schnittstelle (Data Access Language ähnlich ODBC) an 4th Dimension (als sog. 4D-Extension).
Entwurf und Konzeption portabler GUI-Software und Widgets unter GUI-Framework "Open Interface" für MacOS 7.x und Solaris 2.x. Transfer von Daten zwischen Apple PDA und Solaris.
Erstellung kleinerer GUI-Programme unter X11-GUI mittels Motif für SGI IRIX (Silicon Graphics UNIX).
Installation und Konfiguration von Solaris 1.x und Solaris 2.x auf SUN Workstation. Einrichtung von Nutzern, Anbindung von Geräten usw.
SUN Solaris 1.x + 2.x, SGI IRIX, Apple MacOS 7.x, 4th-Dimension, Oracle, Motif, Open Interface, Apple DAL, Booch Components, SUN C++
Oracle Database, 4th Dimension (4D), C++, Motif
8/1991 – 6/1992
Tätigkeitsbeschreibung
UNIX (SUN Solaris), Apple MacOS
Konzeption und Entwicklung eines zuverlässigen Multi-Printer-Spoolers mittels Interprozess-Kommunikation (RPC) unter Einbettung in Solaris 2.x (SUNOS 5.x) zur optimalen Ausnutzung von Druckergruppen und Erhöhung des Druckdurchsatzes und Verfügbarkeit im Verlagswesen. Design und Entwicklung geeigneter Administrationswerkzeuge.
Installation von Software und Betreuung der Anwender im Verlagshaus des Kunden.
Entwicklung von Skripts zum Parsen der Ausgaben des GNU Debugger gdb und Umlenkung der Ausgaben in spezielle X-Fenster.
Überarbeitung vorhandener C-Bibliotheken des Datenbank/Verlagssoftware-Herstellers zur Multi-Plattform-Unterstützung.
SUN Solaris 2.x, SUNOS 5.x, MacOS 7.x, SUN KR-C (cc), SUN ANSI-C (acc), GNU C, GNU gdb, SUN dbx, sed. egrep, lpd, IBM RS/6000
Solaris, Apple Mac Systems
7/1988 – 7/1991
Tätigkeitsbeschreibung
MS Windows, UNIX (SUN Solaris)
Entwicklung eines Programmes (GUI) zur Ansteuerung und Darstellung der Daten eines digitalen Meßsystems unter Windows 1/2.x und SUN OS (u.a. State-Views, Triggers, reguläre Ausdrücke; Routing, Projektdauer etwa 2 Jahre).
Entwicklung und Test von C-Modulen unter SUN OS in strukturierter datenorientierter Programmierung.
Überarbeitung der Siemens-Programmierrichtlinien zur Nutzung in der Entwicklungsabteilung.
Portierung von etwa 30000 Zeilen C-Source von Kernighan/Richie C nach Ansi-C.
Entwicklung einer grafischen Benutzerschnittstelle zur Konfiguration von digitalen Heizkostenverteilern unter Windows 3.x.
Erstellung von Software für den Personenschutz in Cross-Compilation für VME-Boards unter MacOS 6.x entsprechend Pflichtenheft der Firma Bosch (u.a. Implementierung einer LCD-Display gestützten Benutzerführung auf Basis einer State-Machine und Übertragung von Protokolldaten mittels Mobilfunk).
Entwicklung von Parsern in ANSI C mit Analyse rekursiver Ausdrücke.
Dokumentation sämtlicher Software-Konzepte, Benutzerhandbücher und Schnittstellen in MS-Word 4.0 unter Macintosh.
Windows 1.x, Windows 2.x, Windows 3.x, UNIX, SUN OS 4.x, Solaris 1.x, Microsoft C, MS-DOS, MKS DOS-Tools (rcs, make, vi), GNU C / Ansi-C, SUN C / KR-C, MacOS 6.x, MPW, VME-Bus, GNU Make, SUN Make, GNU Debugger gdb, Macintosh MPW, MS-Word, Think C, Symantec C, C-StdLib, UNIX-Tools (grep, rcs, sed, tr, vi,...), UNIX Shells (ksh, csh, sh).
UNIX, Dos, Microsoft Windows (allg.), Apple Mac Systems, Shell (CSH), KornShell, Make (Software), Erstellung Programmiervorgaben
Ausbildung
1. OSZ für Naturwissenschaften Berlin
TU Berlin
Über mich
Weitere Kenntnisse
Persönliche Daten
- Deutsch (Muttersprache)
- Englisch (Fließend)
- Europäische Union
Kontaktdaten
Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.
Jetzt Mitglied werden