Beschreibung
Für unseren Kunden am Standort Frankfurt/Main suchen wir einen C++ Entwickler (m/w) Software-Implementierung.
Projektbeschreibung
Das Programm neXt – Digitale Kapazitätssteigerung (DK) entwickelt und implementiert einen angebotsorientierten, durchgängigen, sequentiellen und automatisierten Fahrplanungsprozess, der eine transparente Kapazitätsmessung und –steuerung ermöglicht. Die unterstützende Fahrplan-IT soll durchgängig, konsistent, modular sowie wartungsfreundlich sein. Fokus des Projekts ist die automatische Konstruktion und Belegung von Fahrplantrassen. Mittels der automatisierten Konstruktion und Belegung sind folgende Ziele zu erreichen:
Erhöhung der Konstruktionskapazität
Bessere Ausnutzung der Konstruktionskapazität
Effizienzsteigerung bei der Planung
Reduktion Bearbeitungszeiten für Trassenanfragen
Aufgaben
Der Dienstleister erbringt folgende Leistungen: Scope: Scope ist die Software-Implementierung von anspruchsvollen Optimierungsalgorithmen mit dem Ziel einer automatisierten Fahrplankonstruktion und Trassenbelegung. Die implementierte Software ist auf der Enterprise Integration Plattform in die IT-Basislandschaft zu integrieren. Der Dienstleister unterstützt durch seine fachliche und IT-Expertise im Beratungsgebiet. Zusammenarbeitskonzept: Die Entwicklung erfolgt agil in der SAFe-Methodik. Die Mitarbeiter verantworten dabei die fachliche Konzeption („Product Owner“), die Priorisierung der Anforderungen sowie die Vorgaben für IT-Architektur, Integration und Qualitätssicherung. Der Dienstleister verantwortet die effektive Umsetzung der Anforderungen durch das Scrum Team im jeweiligen Beratungsgebiet.
Leistungen des Auftragnehmers:
Anforderungsmanagement:
Analyse der vorhandenen Optimierungs-Prototypen hinsichtlich funktionaler und non-funktionaler Features
Analyse der mathematischen Optimierungsmodelle mit Bezug auf mögliche technische Implementierungsvarianten
Beratung der Business Engineers und der technischen Architekten hinsichtlich Machbarkeit und Laufzeitverhalten der funktionalen und non-funktionalen Anforderungen an die operativen Optimierungskerne
Erstellen der technischen Anforderungs- und Spezifikationsdokumentation
Vorbereitung von Entscheidungsvorlagen zu technischen Themen
Implementierung:
Strukturierung der Implementierungs-Tasks
Programmierung und Implementierung der mathematischen Optimierungsalgorithmen in C++ mit Anbindung von Solvern (z.B. Gurobi) unter Einhaltung der Standards des Auftraggebers (z.B. Nutzung der standardisierten Entwicklungsumgebungen und Programmierrichtlinien)
Beheben von Fehlern aus den Testphasen in den Applikationen / Komponenten
Dokumentation der technischen Komponenten
Erstellen von Systemdokumentationen
Erstellen von Lieferpaketen für die betreffenden Applikationen
Einrichten von Entwicklungsumgebungen incl. Continuous Integration
Durchführen von Code-Reviews, Komponententests, Modultests, Modulgruppentests
Risikomanagement:
Berichten von Risiken und Problemen an die Technischen Architekten und an das Projektmanagement
Standort der Leistungserstellung ist Frankfurt am Main und Dresden. Reisebereitschaft ist zwingend erforderlich.
Anforderungsprofil
Muss-Anforderungen:
Expertise in Operations Research mit langjähriger und fundierter Erfahrung in der Konzeption und IT-technischen Abbildung komplexer mathematischer Verfahren in laufzeitoptimierten Services
Zertifizierungen in mehr als einem relevanten Softwareentwicklungsthema oder vergleichbare Qualifikation
Erfahrung in der Leitung kleiner bis mittlerer Entwicklerteams (>5 MA) oder in der Implementierung von technischen Lösungen, davon in mindestens 3 Projekten mit komplexer Implementierung oder vergleichbare Qualifikation
3 Projektreferenzen zu Implementierungsleistungen in mittleren und Großprojekten in den letzten Jahren
Zertifizierung „UML Foundation“ oder vergleichbare praktische Erfahrung
Für C++-Entwicklung relevante Erfahrungen oder Zertifizierungen
Reisebereitschaft, insbesondere zwischen den beiden Projektstandorten Dresden und Frankfurt (auch mehrfach in der Woche)
Soll-Anforderungen:
Spezialkenntnisse in Algorithmen zur Routensuche
Spezialkenntnisse bei der Verwendung von Column Generation Verfahren und/oder SATSolvern
Unterstützt Projektmanager in allen Aspekten des Projektmanagements.
Analysiert neuartige und komplexe Sachverhalte und Problemlagen durch kreativen Wissenstransfer, legt sie für Dritte verständlich dar und bewertet Konsequenzen.
Analysiert hemmende/stützende Kräfte bewusst und baut sein Handeln darauf auf.
Erweitert seinen Handlungsspielraum und führt in seinem Technologiecluster Lösungen herbei.
Analysiert neuartige fachliche und technische Anforderungen durch Wissenstransfer, setzt sie in technische Lösungen um, legt sie für Dritte verständlich dar und bewertet mögliche Konsequenzen.
Leitet daraus Vorschläge zur Weiterentwicklung bestehender Architekturen ab.
Führt Maßnahmen zur Umsetzung der Technologiestrategie durch.
Ist ein beim Kunden anerkannter Gesprächspartner.
Führt die relevanten Beteiligten sicher durch Analyse- und Entscheidungsprozesse.
Bewältigt Komplexität/Abstraktion und reduziert diese in Entscheidungsprozessen bewusst.
Präsentiert ihm vertraute Themen routiniert und moderiert in kleinere Gruppen auch bereichsübergreifend.
Aktuelle Kenntnisse in einem Spezialgebiet der Softwareentwicklung (C++) und Überblickswissen in technologisch benachbarten Gebieten
Umfangreiche Methodenkenntnisse und Erfahrung in deren Anwendung (OOA und OOD in UML2, Scrum, Konfigurationsmanagement, Releasemanagement)