Dirk Raffel, Freelance Software Consultant KONTAKT Curriculum vitae Dirk Raffel Am Zirkus 3a 10117 Berlin Germany Mobil: +49-172-39-32-111 E-mail: [email protected] WWW: www.dirkraffel.com Z USAMMEN FASSUNG Mehr als 14 Jahre Berufserfahrung als Software Consultant, Solution Architect, Projektleiter und Entwicklungsleiter. Schwerpunkt im Bereich System-Konzeption und SoftwareArchitektur für technische Anwendungen, insbesondere On-Board-Computer, Steuergeräte, Automotive-Anwendungen, Infotainment-Lösungen, Multimedia-Streaming, Textto-Speech Systeme, modernste Web-Anwendungen, (Web-)GIS, Web-Mapping. Umfangreiche Expertise in den Anwendungsbereichen Öffentlicher Personennahverkehr, Bahntechnik, Automotive und Verkehrstelematik. N ATIONALIT ÄT Deutsch J AHRGANG 1971 AUSBILDUNG Universität Duisburg-Essen, Duisburg Studium Elektrotechnik, Duisburg, 1990 – 1996. Abschluss Dipl.-Ing. Elektrotechnik (univ.); Schwerpunkt: Kommunikationstechnik. Gesamtnote: Sehr gut. Diplomarbeit am Fraunhofer-Institut für Mikroelektronische Schaltungen und Systeme (IMS), Duisburg: “Entwurfsoptimierung anwendungsspezifischer Systeme mittels mathematischen, Petri-Netz-basierenden Untersuchungsmethoden”. PATENTE Grinewitschus, Viktor; Raffel, Dirk; 1999. Method for controlling a direct current drive. U.S. Patent 6,005,361, filed July 13, 1998, and issued December 21, 1999. International Patent PCT/EP1996/005850 issued July 24, 1997. Erteilt an Fraunhofer-Gesellschaft (resultierend aus Studienarbeit am Fraunhofer-IMS zum Thema: “Entwicklung und Implementierung eines Verfahrens zur modellgestützten Fehlererkennung an mikrocontroller-gesteuerten Gleichstromantrieben”). B ERUFS - Freelance Software Consultant Bombardier Transportation, Berlin ERFAHRUNG Dynamische Kartenanzeige in Schienenfahrzeugen Jan 2011 - aktuell • Als Software Berater verantwortlich für Konzeption und Entwicklung einer Web Mapping Lösung zur Anzeige des Laufweges und der aktuellen Position des Zuges auf einer digitalen Landkarte zur Fahrgastinformation auf TFT Innendisplays in Fernverkehrszügen. • Erstellung von georeferenzierten Reliefkarten aus digitalen Höhenmodellen (DEMDaten) mit GDAL-Tools. • Verwendung von MapServer für das Rendern von Vektordaten wie z.B. Landesgrenzen, Ortsnamen, Flüsse, Bahnlinien etc. und TileCache als WMS-C Server. • Routing-Funktionalität für Schienennetz basierend auf pgRouting und PostGIS Datenbank. • Client-Side Funktionalität über OpenLayers und Integration der dynamischen Karte in eine Infotainment Web Applikation für TFT Innendisplays. p. 1 of 7 Raffel, p. 2 of 7 • Vollständig basierend auf State-of-the-art Open Source GIS-Technologien. • Technologien: MapServer, WMS, GML, TileCache, OpenLayers, GDAL/OGR, DEM data (e.g. SRTM, ETOPO1), PostgreSQL, PostGIS, pgRouting, JavaScript, jQuery, require.js, lighttpd, WebKit. Freelance Software Consultant Bombardier Transportation, Berlin Infotainment Web Applikation in Schienenfahrzeugen Sep 2010 - aktuell • Als Software Berater federführend bei Architektur und Entwicklung einer Infotainment Web Anwendung unter Verwendung von neuesten Web Technologien für die Realisierung von visuellen Fahrgastinformationen auf TFT Innendisplays in Nahverkehrszügen. • Dynamische Linienverlaufsanzeige bezogen auf Position des Zuges entlang des Laufweges und Visualisierung von Verbindungshinweisen etc. • HTML5 WebSocket-basierte Kommunikation mit Fahrgastinformationssystem, Interfaces und generische Simulationsumgebung basierend auf JSON-Schema. • Sichere Einbindung von third-party scripted pages durch Verifikation auf ADsafe Konformität. • Test-Umgebung auf Basis von node.js • Technologien: JavaScript, require.js, node.js, express, Node WebSocket Server, ADsafe, jQuery, inputEx, YUI, JSON, JSON schema, WebKit, WebSockets, lighttpd. Freelance Software Consultant Bombardier Transportation, Berlin Audio Streaming für Text-To-Speech Ansagen Aug 2010 - Aug 2011 • Als Software Consultant verantwortlich für Integration einer Text-To-Speech (TTS) Engine (Nuance Vocalizer for Automotive) für automatische Ansagen in Schienenfahrzeugen. • Konzeption und Entwicklung eines RTSP Streaming Servers für On-Demand Streaming von Audio-Dateien und Live-Audio der TTS Stimme zum Audio Ausgabesystem. • Entwicklung eines Embedded Web Interfaces für Konfiguration und Test des Streaming Servers. • Technologien: PowerPC platform, Embedded Linux, C++, GCC, Boost, Qt4-Core (Qt 4.6), Lua 5.1, toLua++, JavaScript, jQuery, jQuery UI, JSON, AJAX, FastCGI, lighttpd, Live555 library, RTSP/RTP protocols, Nuance Vocalizer for Automotive, Eclipse CDT, ClearCase, ClearQuest. Freelance Software Consultant Bombardier Transportation, Berlin Automatische Fahrgastzählung in Schienenfahrzeugen Jul 2008 - Jul 2010 • Verantwortlich für Konzeption und Entwicklung einer Steuergerät-SW für Fahrgastzähl- und Fahrzeitanalyse-Systeme (AFZ) in Nahverkehrszügen auf Basis des IP-Train Ethernet Network - Bombardier MITRAC Train Control and Management System (TCMS). Ebenfalls involviert beim Reengineering von Fahrgastinformationssystemen (FIS). • Verwendung des Bombardier IPTCom Ethernet Communication Stack for Railway applications für die Kommunikation mit den verschiedenen Systemkomponenten im Fahrzeug. • Systemprogrammierung in C++mit Boost, Qt 4 auf Embedded Linux/PowerPC Plattform. UML Modellierung der Software-Architektur mit Enterprise Architect. Raffel, p. 3 of 7 • Weitere Hauptmerkmale: Anbindung der Fachanwendung im Fahrzeug an das Hintergrundsystem über eine GPRS-Kommunikationsschnittstelle Zug-Backoffice. Integration des Systems in die Fahrzeugdiagnose. Integration mit Lua Scripting für AFZ Simulation und Testumgebung. • Entwicklung eines Embedded Web Interfaces für Konfiguration und Test des Systems. • Technologien: PowerPC platform, Embedded Linux, C++, GCC, Boost, Qt4-Core (Qt 4.6), XBinder, Lua 5.1, toLua++, UML, SysML, Enterprise Architect (Sparx Systems), JavaScript, jQuery, jQuery UI, JSON, AJAX, FastCGI, lighttpd, Eclipse CDT, ClearCase, ClearQuest. Freelance Software Consultant EFKON Germany GmbH, Berlin Fahrzeug-Telematikplattform für Mautsysteme Mar 2008 - Jun 2008 • Spezifikation und Entwurf eines Application Layer Protocols zum Austausch von Daten zwischen Onboard-Unit und dem Electronic Tolling Back Office über TLS/TCP via GSM/GPRS. Streaming von XDR-kodierten Accounting Records ähnlich zu RFC 3423 (XACCT’s CRANE protocol). • POSIX Referenz-Implementierung mit GnuTLS. • Software-Spezifikationen für CEN TC278 DSRC Kommunikation mit Roadside Equipment (Baken, mobiles und stationäres Enforcement). • Technologien: Linux, C, POSIX, pthreads, XDR, rpcgen, GnuTLS, Valgrind, Doxygen, Enterprise Architect (Sparx Systems). Head of Development DILAX Intelcom GmbH, Berlin Festanstellung Sep 2001 - Mar 2008 • Angestellt bei einem weltweit führenden Anbieter von Systemen zur automatischen Fahrgastzählung und Fahrverlaufsanalyse in Nahverkehrsfahrzeugen & führender OEM-Lieferant für namhafte Zughersteller, ca. 50 Mitarbeiter. • Erteilung von Prokura 11/2003 & Mitglied der erweiterten Geschäftsführung. • Verantwortlich für F&E, Konzeption und Durchführung von Inhouse Entwicklungsprojekten und die Entwicklung von neuen Produktstrategien. • Personalverantwortung für bis zu 8 Mitarbeiter. Kooperativer, konsensorientierter Führungsstil. • Verantwortlich für den Bereich Entwicklung bei der erfolgreichen ISO 9001:2000 Zertifizierung des Unternehmens. Enterprise Web Application für AFZ Datenmanagement Jan 2004 - Mar 2008 • Konzeption und Entwicklung einer J2EE Web Applikation für das Datenmanagement von Systemen zur automatischen Fahrgastzählung und Fahrverlaufsanalyse (AFZ) in Nahverkehrsfahrzeugen. • Entwurf eines neuartigen modellgestützten Verfahrens zum Matching von aufgezeichneten Fahrzeugbewegungen und dem Streckennetz und Fahrplan des Verkehrsunternehmens. Verwendet werden Methoden des Dynamic Programming auf Basis von Viterbi Algorithmen, Rekursiven Automaten, Quadtree Optimierungen, Transformation von Koordinatensystemen. • Prototyp eines webbasierten Map Viewers über OpenLayers/WMS + UMN MapServer. • Engine für mehrdimensionale Kreuztabellen zur Darstellung von statistischen Kennzahlen, inkl. Zwischensummen für Untergruppen, Bereichseinteilung durch Klassifizierung, Export nach Excel und als ESRI Shapefile, Unterstützung von Templates. Raffel, p. 4 of 7 • Weitere Merkmale: LDAP Integration mit JAAS, Job Scheduling mit Quartz. Fahrzeugmanagement, Import von Fahrplandaten inkl. der täglichen Änderungen. • Technologien: Linux, Windows, Java, J2EE, Tomcat, JAAS, JSF, AJAX-enabled JSF components, JNDI, iBATIS persistence framework, Spring, Quartz, SQL Server, GeoTools, OpenMap, Graphviz, JExcelAPI, Colt, JScience (JSR-275 Units/Quantities). Gerät zur automatischen Fahrgastzählung Jul 2007 - Nov 2007 • Entwicklung/Portierung der Firmware für ein Gerät zur automatischen Fahrgastzählung in Schienenfahrzeugen und Integration in das IP-Train Ethernet Network - Bombardier MITRAC Train Control and Management System (TCMS). • OEM-Entwicklung gemäß EN50128:2001 (Software for railway control and protection systems). • Technologien: Freescale ColdFire MCF5208, C, Assembly, Microtec ColdFire Tools, Nucleus RTOS, Eclipse CDT. Zentrales AFZ Steuergerät Jan 2000 - Jan 2005 • Entwicklung der Firmware für den zentralen Bordrechner für Systeme zur vollautomatischen Fahrgastzählung und Fahrverlaufsanalyse (AFZ) in Nahverkehrsfahrzeugen. • Hauptmerkmale: Automatischer Upload der Messdaten über GSM/GPRS und Internet oder 802.11 WLAN zu einem FTP Server, ggf. Download einer neuen Konfiguration oder neuen Firmware. • Online-Webinterface für Einrichtung und Test des Systems mit clientseitiger Nutzung von Java Applets. E-Mail Benachrichtigung im Fehlerfall. Dynamic DNS (RFC 2136) für Always-Online-Funktionalität in GPRS Custom APN. GPS Positionsbestimmung (NMEA 0183). HMAC-SHA1 Authentication, gzip Komprimierung von Rohdatenfiles. • Implementation eines ONC/RPC Protokolls (RFCs 1831, 1832) zur Integration des AFZ in eine Ethernet-basierte Fahrzeug-Kommunikationsplattform (Bombardier Transportation) in über 450 Nahverkehrsfahrzeugen der Schweizerischen Bundesbahnen. • Komplettes Applikationsdesign in UML mit Rhapsody (IBM Rational, früher Telelogic, I-Logix). • Python Scripts für automatisierte Tests. • Zahlreiche weitere, teils internationale Projekte zur Anbindung an Fahrgastinformationssysteme und RBL-Systeme über verschiedene Kommunikationsmedien, z.B. Ethernet, MVB Fahrzeugbus, VDV-IBIS, SAE-J1708/J1587. • Das System wird in mehreren tausend Bussen und Zügen bei 180 Verkehrsunternehmen aus Europa, den USA und Kanada erfolgreich eingesetzt. • Technologien: Freescale MC68360 (QUICC), C++, C, Assembly, Diab compiler, Single-Step debugger, Nucleus RTOS (kernel, TCP/IP stack, web server, file system), Rhapsody, Python. Verwaltungsprogramm für AFZ Datenmanagement Jan 2002 - Jun 2002 • Pflege und Weiterentwicklung einer datenbankgestützten Desktop Anwendung zur Verarbeitung von Daten aus AFZ Systemen. • Erstellung einer COM Server DLL zur Ermittlung von Regressionsparametern aus einer Stichprobenmenge von Vergleichszählungen (Methode der linearen Regression). • Erstellung von Perl Scripts für Least Squares Method und Paired t-Test. • Erstellung einer COM Server DLL zur Lösung von Optimierungsproblemen, basierend auf der WNLIB library und der conjugate-gradients Methode. Raffel, p. 5 of 7 • Erstellung eines Perl Scripts zum Import von binären Rohdatenfiles und Realisierung als ActiveX DLL. Pflege von COM Server DLLs für Import von Rohdaten und Transformation der im Fahrzeug aufgezeichneten Fahrverlaufsdaten zu fahrplanbezogenen Istdaten. • Technologien: Windows, C++, STL, ATL/COM, OLE DB consumer templates, SQL Server, Oracle, Visual Studio 6, SourceSafe, ActivePerl, Perl DBI, Perl XS. Head of Software Development/ Software Development Engineer DILAX Intelcom AG, Ermatingen, Schweiz Festanstellung Sep 1996 - Sep 2001 • Angestellt bei einem weltweit führenden Anbieter von Systemen zur automatischen Fahrgastzählung und Fahrverlaufsanalyse in der Schweiz (Vorgängerfirma) • Zunächst angestellt als Entwicklungsingenieur für Embedded Software, ab 09/1999 Leitung der Software-Entwicklung. • Erhalt von Kollektiv-Prokura 05/2001. Gerät zur automatischen Fahrgastzählung Mai 1998 - Jan 2000 • Entwicklung der Firmware für ein netzwerkfähiges Gerät zur vollautomatischen Personen- und Fahrgastzählung. Das Gerät steuert eine Kette von Infrarotsensoren und ermittelt die Zahl der durchgehenden Personen richtungsabhängig durch Auswertung der Sensorsignale. • Implementierung eines proprietären Netzwerkprotokolls auf RS-485 Basis. • Verbesserung der Algorithmen zur Unterscheidung von mehreren Personen. • Technologien: Freescale MC68LC302, C, Assembly (Motorola 68000), Diab compiler, SingleStep debugger, Nucleus PLUS kernel, Microsoft Visual Studio & Nucleus EDE. Mobile Applikationen für Nahverkehrsfahrzeuge Sep 1996 - Jan 1999 • Pflege und Weiterentwicklung eines firmeneigenen proprietären Echtzeitbetriebssystems und von Applikationen für Personenzählsysteme, Bordcomputer und Fahrscheindrucker für Nahverkehrsfahrzeuge. • Kundenspezifische Anpassungsentwicklungen, Unterstützung von mehreren Hardwareausführungen. • Optimierung des Betriebssystemkerns, Pflege eines Interpreters (Laufzeitumgebung) für eine proprietäre Hochsprache mit einfachen objektorientierten Konzepten. • Petrinetz-basierte Modellierung des ereignisgesteuerten Programmablaufs mit dem CASE Tool “Visual Object Net ++” mittels zeitbewerteten Stellen/TransitionenNetzen (timed petri nets) und softwareseitige Umsetzung des Petri-Netz-Modells. • Anbindung von Datenfunk-Controllern für drahtlose Datenübertragung vom Fahrzeug zu Datenmodemterminals. Programmierung eines flash card reader/writer für kontaktlose Flash-Datacards. • Technologien: C, Assembly (Motorola 6800), IAR C Compiler, Microsoft C 6.0, Visual Object Net ++, PVCS revision control system. S KILLS Embedded und Real-Time Systeme: • Embedded Linux, Mentor Nucleus OS und proprietäre RTOS, inkl. device driver, BSP und kernel development, TCP/IP stack, socket programming, multithreading. • Software-Entwicklung mit verschiedenen Mikrocontrollern (Freescale QUICC, Coldfire, und andere) auf kundenspezifischer Hardware. Raffel, p. 6 of 7 Protokolle und Feldbus-Standards: • Networking: IP, TCP, UDP, PPP, PAP/CHAP, HTTP, FTP, TELNET, SMTP, ONC/RPC (RFCs 1831, 1832), RTSP/RTP, DHCP, DNS, Dynamic DNS (RFC 2136), SNTP, GPS (NMEA 0183), GSM/GPRS, 802.11 WLAN • Transport-Industrie Protokolle: TCMS, IPTCom, MVB vehicle bus, SAE-J1708/J1587, VDV-IBIS Programmiersprachen, Plattformen, Frameworks, APIs: • C, C++ (Boost, STL, Qt 4, POSIX, Rhapsody OXF, ATL/COM/OLE DB) • Java 5, J2EE (Tomcat 5.x, JSP, Servlets, Filter, JAAS, JSF, Netbeans Visual Web Pack, Apache Struts, Apache Commons, Log4J, JUnit, JDBC, JNDI, iBATIS Persistence Framework, Spring, JExcelAPI, XStream, JScience, Colt) • Perl 5.x (CPAN, GD, DBI, Threads, Perl XS, Activestate Perl) • Andere: Lua 5.1, Python, Assembly Web Development: • JavaScript, require.js, node.js, jQuery, jQuery UI, YUI, inputex, und andere • AJAX, WebSocket, JSON, JSON schema, XML, HTML5, CSS3 • Apache, Lighttpd, FastCGI GIS, Web Mapping: • UMN MapServer, TileCache, WMS, GML, OpenLayers, PostGIS, pgRouting, GDAL/OGR, GeoTools, Quantum GIS (QGIS) Datenbanken: • PostgreSQL, SQL Server, Oracle, MySQL, HSQLDB Version Control und Software Configuration Management: • Git, Subversion, CVS, ClearCase, PVCS, ClearQuest, Bugzilla Development Tools: • Vim, sed, awk, bash, GNU make, GCC Toolchain, gdb, Valgrind • ant, maven, Eclipse, Netbeans • Rhapsody (I-Logix, now Telelogic), Enterprise Architect (Sparx Systems) • Diab compiler m68k, Microtec ColdFire Tools, SingleStep debugger, und andere Sonstige Anwendungen: • LATEX, OpenOffice, MS Office, MS Project, TWiki Standards: • EN50128:2001 (Software for railway control and protection systems), EN ISO 9001:2000 Betriebssysteme: • GNU/Linux, Mac OS X, Windows (Mac OS X oder Unix-like Umgebung bevorzugt) Sprachen: • Deutsch: Muttersprache, Englisch: Sehr gut in Wort und Schrift. R OLLEN Software Consultant, Technical Lead, Project Lead, Head of Development E XPERTISE Branchen, Anwendungsbereiche: • Öffentlicher Personennahverkehr, Bahntechnik, Automotive, Verkehrstelematik Mathematik: • Linear/Nonlinear Programming, Optimierungsprobleme • Dynamic Programming, Viterbi Algorithmen • Graphentheorie, Petri Netze • Stochastik, Statistik Raffel, p. 7 of 7 Informatik, Engineering: • OOA/OOD mit UML • Design Patterns (GoF, J2EE) • Refactoring • Unit Testing M ITGLIED - Association for Computing Machinery (ACM) SCHAFTEN R EFERENZEN Referenzen auf Anfrage.