karl-heinz reichel Software-Entwicklung Profil Name: Karl-Heinz Reichel Staatsbürgerschaft: deutsch Verfügbar ab: Mai 2016 Ausbildung Studium der Elektrotechnik an der Univ. Erlangen-Nürnberg Kenntnisse Programmiersprachen Assembler: 80x86, div Controller (PIC, ATMEL) C: Ansi C, div. Embedded C (gcc) C++: Gnu C++ / CLANG / Visual C++ JavaScript: Python C#: Visual C# Java: JDK, Swing Scripting: Java-Script, PHP, Perl, Python, QML SQL: Microsoft TSQL, Oracle PL/SQL Werkzeuge Tools: IDE: QtCreator, Microsoft Visual Studio, Eclipse, PyCharm, IntelliJ, CLion, KDevelop Versionsverwaltung: GIT, CVS, SVN, Source Safe, Rational Clear Case Atlassian Stash, GitLab UML: Sparx Enterprise Architect Requirementsmanagement: Doors Datenbank-Entwurf: Sybase PowerDesigner Report Generatoren: Crystal Reports / Combit List & Label div. Grid & Charting Tools Unit-Testing: QtTest / Google Test / JUnit, CppUnit Build Server: Jenkins Tracker: JIRA, YouTrack Datenbanken: Microsoft Access Microsoft SQL Server Oracle MySQL SqLite Produkte / Standards / Erfahrungen Erfahrungen im Bereich: Architektur / Design Anwendungs- & Systemprogrammierung Refactoring bestehender Anwendungen Spezifikation, Programmierung, Testverfahren Erstellung von Installationen Requirements Management Dokumentation / Online-Hilfe Methoden: UML (Enterprise Architect) Datenbank-Design (Sybase PowerDesigner) Microsoft Technologien: MFC, ATL, COM, COM+, Applikationsentwicklung, Treiberentwicklung div Frameworks embedded SQL, ADO C#, ASP.NET, ADO.NET, Windows FORMS, WebServices Software-Entwicklung: QT4 / QT5 (unter Windows / Linux / Embedded Linux ucLinux) QML / QtQuick NDK Entwicklung Android Java Technologien AWT, SWING, BEANS, XML, JDBC Embedded Technologien Entwicklungsumgebungen für ARM (STM / Raspi) Entwicklungsumgebungen für PowerPC InCircuit Emulatoren / Debugger Busanalysatoren für Feldbusse (CAN, CanOpen) Erfahrung Berater / Architekt Zeitraum: April 2015 – Mai 2016 Firma/Institut: Kommerzielle Software (ERP) Projekt : Konzeption / Architektur / Training Migration von Komponenten von MFC auf QT5 Aufgaben Entwurf eines Model- / View-Konzepts zur Migration einer auf der MFC basierenden TabellenKomponente auf QT5. Implementierungsunterstützung für kundenspezifische Tabellen- und Tree- Komponenten. Training und Unterstützung weiterer Entwickler im Bereich Modell/View-Architektur und QT5. Installation und Konfiguration eines automatischen Buildprozesses mit Jenkins. Verwendete Werkzeuge QtCreator (C++ / QML / JavaScript) Microsoft Visual Studio 2015 QT 5.4 (QT/QML) Enterprise Architect Windows Mac OSX GIT Jira Tracker Berater / Architekt Zeitraum : Januar 2013 – April 2015 Firma/Institut : Industrie Projekt : Konzeption / Architektur / Entwicklung eines modernen Bedienkonzepts zum Management von Anlagen / Messwerten Aufgaben Entwurf einer modularen, leicht skalierbaren Bedienoberfläche zum Management von Anlagen und erfassten Messwerten. Entwicklung einer Mehrschicht-Architektur zur einfachen Integration von unterschiedlichen Datenquellen. Beratungs- und Entwicklungsunterstützung für das Betriebssystem Linux. (Crossplattform-Entwicklung) Unterstützung der Entwickler (bisher wurde unter Microsoft MFC entwickelt) beim Einsatz der Bibliothek QT. Installation und Konfiguration eines automatischen Buildprozesses mit Jenkins. Verwendete Werkzeuge • QtCreator (C++ / QML / JavaScript) • Enterprise Architect • QT 4.8 / 5.2 (QML) • Windows • Microsoft Visual Studio 2010/13 • Linux ( Debian / Ubuntu) • GIT / Perforce • YouTrack Tracker (JetBrains) Berater / Hauptentwickler Zeitraum : Januar 2013 – April 2015 (teilw. 25-50%) Firma/Institut : Industrie Projekt : Konzeption / Architektur / Entwicklung eines embedded Linux Systems Aufgaben Konfiguration - Anpassung eines embedded Linux - Kernels an bestehende Hardware (PPC 5125) Entwurf einer mehrschichtigen Anwendungsarchitektur (GUI - Middleware - Treiber) Umsetzung des Grafik-Designs in QT/QML basierende Widgets. Implementierung eines Statemachine-basierenden Workflows zur Maskensteuerung. Erstellung von Backend-Prozessen zur Verfahrenstechnik Erstellung von Basis-Komponenten zur Kommunikation mit Ethernet - CAN - RS232 RS485 Aufsetzen eines automatischen Build- und Deployment-Prozesses. Verwendete Werkzeuge • QtCreator / KDevelop (c++) • Enterprise Architect • QT 4.8 (QML) • Linux / embedded Linux (PPC 5125) • GIT • Bitbucket Tracker Berater / Hauptentwickler Zeitraum : April 2012 – Dezember 2012 Firma/Institut : Industrie Projekt : Erstellung einer QT 4.8 embedded Applikation Aufgaben Konzeption und Entwicklung des Userinterfaces einer QT4.8 Applikation für ein embedded System (PowerPC basierend). Umsetzung des Grafik-Designs in QML basierende Widgets. Implementierung eines statemachine-basierenden Workflows zur Steuerung der Frameübergänge. Implementierung von Backend-Funktionalität zur Kommunikation mit der Verfahrenstechnik. Integration Feldbus-Technologien - CANOpen zur Kommunikation der Steuerung mit kundenspezifischen IO-Boards - Ethernet Socket-Kommunikation zur Remotesteuerung der Steuerung Aufsetzen eines automatischen Build- und Deployment-Prozesses. Verwendete Werkzeuge • QtCreator / KDevelop (c++) • Enterprise Architect • QT 4.8 (QML) • Linux / embedded Linux • GIT • Redmine Tracker Berater / Entwicklungsleiter Zeitraum : Oktober 2011 – März 2012 Firma/Institut : Industriesteuerung Projekt : Beratung eines Kunden zum Einsatz von Ethercat in eine neue Kundensteuerung (3-D Fräsanwendung) Aufgaben Erarbeitung eines Konzepts zur Migration eines Steuerungskonzepts von properitären Steuerungseinheiten hin zu Standard-Steuerungskomponenten (Beckhoff Ethercat) Entwurf und Unterstützung der Erstellung einer Klassenbibliothek unter Windows zur Kommunikation mit Ethercat-Controllern Integration von QML-Komponenten für visuelle Effekte der Anwendung. Verwendete Werkzeuge • Microsoft Visual Studio 2010 (c++) • Enterprise Architect • QT 4.8 • MS Project • Git • JIRA Tracker Projektmanagement Zeitraum : November 2010 – Sept. 2011 Firma/Institut : Automotive Projekt : Unterstützung Organisation Kundenprojekt Aufgaben Releaseplanung und Buildmanagement Featureplanung in Zusammenarbeit mit Projektleitung und dem Kunden. Analyse von Softwaredefekten in Zusammenarbeit mit dem Kunden Zuweisung der akzeptierten Softwaredefekte an Entwickler Integration von Bugfixes und Features Tools und Software Version Control : SVN Entwicklungswerkzeuge: Microsoft Visual Studio 2008 (c++) mit div. WinCE SDKs. Dokumentation mit Microsoft Office Planung: Microsoft Project Bugtracking: JIRA Anwendungsentwickler / Berater Zeitraum : November 2009 - Oktober 2010 Firma/Institut : Automotive Projekt : Umstellung einer Navigationslösung auf das standardisierte Automotive-Datenformat NDS Aufgaben Erweiterung und Anpassung einer bestehenden Navigationslösung auf das standardisierte Datenformat NDS. Definition des Feinkonzepts der Datenzugriffsschnittstelle zu NDS Erstellung von Testkonzepten für die neuen Komponenten. Portierung bestehenden Datenbankzugriffsschichten auf den neuen Datenbankzugriffslayer. Untersuchung von Performance / Speicherverbrauch zur bisherigen properitären Datenbank-Zugriffsschicht. Verwendete Werkzeuge • Microsoft Visual Studio 2008 (C++) • Enterprise Architect (UML) • Eclipse für die NDS Simulation • MS Project • SVN • JIRA Tracker Anwendungsentwickler / Berater Zeitraum : Januar 2009 - Oktober 2009 Firma/Institut : Navigon AG Projekt : Portierung eines Navigationskernels für Automotive Devices Aufgaben Weiterentwicklung / Redesign einer kommerziellen Navigationslösung für den Einsatz als automotivetauglicher Navigationskern. Erarbeitung eines Portierungskonzepts. Portierung der Navigationslösung auf embedded Linux (ARM). Portierung der Navigationslösung auf Android. Erarbeitung von Testkonzepten. Verwendete Werkzeuge • Microsoft Visual Studio 2008 (C++) • Enterprise Architect • Kdevelop (g++) • MS Project • Crosscompiler Toolchain (ARM Compiler) • CMake • Perforce • Bugzilla Tracker • QT (Simulation auf dem PC) • Eclipse Anwendungsentwickler Zeitraum : April 2007 - Januar 2009 Firma/Institut : Elektrobit Projekt : Erweiterung eines Navigationsgeräte Konfigurators Aufgaben Entwicklung einer Windows-Applikation zur Konfiguration von Navigationsgeräten. Entwicklung von grafischen Komponenten (Widgets) zur Darstellung von Kartendaten und berechneten Routen (OpenGL). Erweiterung der Applikation um ein Webinterface zur Darstellung von aufgezeichneten Routen. Erweiterung der Applikation um ein Shopinterface zum direkten Einkauf von Kartenmaterialen in der Anwendung. Customizing der Applikation für verschiedene Kunden (verschiedene Styles und Plugins) Erstellung eines automatischen Deployments der Anwendung für verschiedene Versionen der Anwendung. Aufsetzen eines Continous-Buildprozesses (Cruise Control). Verwendete Werkzeuge • Microsoft Visual Studio 2005 (c++) • Nokia QT • OpenGL • SVN • Enterprise Architect (UML) • Criuse Conrol continous build Feature Owner / Architekt Zeitraum : November 2006 - März 2007 Firma/Institut : Bosch/Blaupunkt Projekt : Neuentwicklung einer PKW Infotainment-Plattform Aufgaben Analyse / Beurteilung der zu verwendenden Entwicklungswerkzeuge (Elektrobit Tresos Guide, ADIT Plattform + Komponenten) Implementierung eines Wissenspools beim Kunden (WiKi Basis) zur Schulung interner Mitarbeiter. Anforderungsanalyse/Machbarkeitsstudien der Kundenanforderungen Gliederung des Teilprojekts HMI in Unterprojekte (Outsourcing) Unterstützung interner und externer Mitarbeiter beim Einsatz der Entwicklertools. Entwurf einer Systemarchitektur für das Teilprojekt HMI. Vergabe und Tracking der einzelnen Unterprojekte. Verwendete Werkzeuge Elektrobit Tresos Guide Microsoft Project Enterprise Architect ClearCase Produktverantwortlicher (Feature owner) Zeitraum : Juni 2004 – Juni 2006 Firma/Institut : Alpine GmbH Projekt : Entwicklung/Weiterentwicklung einer PKW Navigationsplattform Aufgaben : Analyse der bestehenden Codebasis Refactoring / Reengineering einzelner Module unter Einsatz von Telelogic Rhapsody Implementierung eines projektweiten Unitest-Konzepts. Definition / Design / Implementierung einer modularen Testbench-Applikation. • • • • • Identifizierung der Requirements unter Einsatz von Telelogic Doors • Kundenpräsentation und Erstellung von Schulungsunterlagen für Anwender unternehmensweit Erstellung eines Feinkonzepts der Testbench-Applikation Modellierung und Design der Applikation Implementierung der Applikation Erstellung eines Deployment-Konzepts für die Anwendung (Installation/automatische Updates). Verwendete Werkzeuge Microsoft Visual Studio 6.0 C++ Microsoft Embedded Visual C++ 4.2 Microsoft Visual Studio.Net Telelogic Rhapsody Telelogic Doors CVS / SVN Wise Install Builder Microsoft Platform Builder Projektleitung / Entwicklung Zeitraum : März 2003 - Juni 2004 Firma/Institut : Stiefelmayer GmbH /BMW München Projekt : Fahrzeugkonturvermessung Aufgaben Konzeption / Entwurf / Realisierung der Steuerung einer Fahrzeugkonturvermessungsanlage. Erstellung/Erprobung von Bewegungsprofilen für Lasermessmaschinen (Stiefelmayer) Scanning von Fahrzeugoberflächen mittels 3D Lasermessmaschinen (Stiefelmayer). Bestimmung der gemessenen Außenkonturen durch Approximation und dem Einsatz von Freeman Code Scanning (Bitmap - Vector Konvertierung). Bestimmung von Flächen / Abmaßen / Schwerpunkten von gescannten Messobjekten. Bereitstellung der Messdaten für die unternehmensweite Auswertung (Ablage in Datenbank Oracle 9i). Prozessvisualisierung / Benutzerführung Entwicklung einer Klassenbibliothek zur Darstellung von Prozessdaten. Entwicklung verschiedener Auswertungsapplikationen zum Vergleich der einzelnen Messaufträge. Entwicklung eines Datenexporters zur Konvertierung der Meßdaten in verschiedene Formate ( Freeman Kettencodes, Bitmaps (PNG/JPG), Vektorformate ( DXF / IGES ) ) Verwendete Werkzeuge Tools & Software : Microsoft C#, C++ (C++.Net) Entwicklungswerkzeuge Oracle 9i PDF Generator (List&Label) CVS InstallShield Developer Weitere Projekte von geringerem Umfang im Bereich der hardwarenahen Programmierung Firmware + Applikationsentwicklung eines Kommunikationscontrollers • • • • • Schnittstellenerweiterung bestehender Systeme Implementierung mehrerer Bussysteme RS422/RS485/RS232 & Arcnet Embedded Arcnetcontroller SMC ( 8051 basierend) Design & Entwicklung der Komponente Programmierung der Firmware Entwicklung + Programmierung eines Applikators • • • Design & Entwicklung der Hardware • • Programmierung der Controller-Firmware Implementierung von Schnittstellen zu Lagegebern (Encodern) Softwareseitige Lagekompensierung bei verschiedenen Maschinengeschwindigkeiten (Patentiert) Inbetriebnahme und Kundenschulung vor Ort Firmware + Applikationsentwicklung eines Industriebussystems • • • • • • Entwicklung eines dezentralen Steuerungskonzepts Implementierung des Feldbussystems CAN/CanOpen Untergeordnete CAN Komponenten 8x51 Derivate ( 80592 Philips) Zentral-Steuerungseinheit mit 80356EX + CAN Controller ) Programmierung der Firmware Erstellung von Busmaster-Systemen für Test und Verifizierung Firmware + Applikationsentwicklung eines Feldzellencontrollers • • • • Entwicklung einer kundenspezifischen Hardwarelösung Highspeed-Kommunikationsapplikation Interner I2C-Busmaster zur Steuerung externer Komponenten Firmware die Basisfunktionalität (I/0, Watchdog, Treiber für externe Komponenten) bereitstellt