PROFIL Persönliche Daten Name: Uwe HEHN Anschrift: Falkenstraße 11 D-84051 Essenbach Telefon: Mobil: E-Mail: Homepage: +49 8703 98 88 98 +49 176 641 41 623 Nationalität: Jahrgang: deutsch 1964 [email protected] http://www.java-enterprise.de Position Senior Software Ingenieur, Architekt und Projektleiter für Java Enterprise und C++ Projekte Ausbildung Dipl.-Ing.(FH) Elektrotechnik (Datenverarbeitung) an der Fachhochschule München Leistungen Ihre Softwareprojekte unterstütze ich mit folgenden Leistungen, entweder vor Ort nach Aufwand oder als Festpreis: Anforderungsanalyse Erstellen von Anforderungskatalogen, Konzepten, Lastenheften, und Prototypen in Zusammenarbeit mit den fachlichen Stellen. Design Entwicklung von Architekturen, Pattern, Libraries zur Umsetzung der Anforderungen. Beratung in der Auswahl von Tools. Implementierung Erstellung der Software in Java Tests und Qualitätssicherung Erstellung von Unit- und Integrationstests. Realisierung von automatisierten Tests. Durchführung von Code Reviews. Dokumentation Erstellung von Anwender- und Entwicklerdokumentationen. Technische Projektleitung Unterstützung der Projektleitung in agilen Projekten (SCRUM). Beratung zu den oben genannten Leistungen Seite 1 / 9 Qualifikation Ich beschäftige mich seit 1991 eingehend mit objekt-orientierter Softwareentwicklung. In einer Reihe von Projekten aller Grössenordnungen konnte ich einen (hoffentlich) entscheidenden Beitrag zum Erfolg des Projektteams leisten. Dabei habe ich Erfahrungen mit folgenden Tools und Technologien gesammelt: Expertise: Technologien: Frameworks: Entwicklungstools: Rose Frontends: Codemanagement: Integration: Datenbanken: App Server: Kommunikation: Betriebssysteme: Objekt-orientierte Analyse und Design Programmierung in Java und C++ Projektleitung / Koordination / Coaching Software Architekturen, Pattern und Framework Design Client-Server und Enterprise Middleware SOA (Service-orientierte Architektur), EAI (Enterprise Application Integration) Java, Java EE, EJB3, JPA, JUnit, C++, SQL, Python, JNI, JDBC, UML OSGi, Hibernate, Spring, Cayenne, JDO, iBatis Eclipse, NetBeans, TOAD, JBuilder, ClearQuest, Bugzilla, Polarion, Rational Eclipse RCP, RAP/RWT, SWT, JSF, Servlets, HTML, JSP, Swing, JavaScript GIT, Subversion, Crucible, FishEye Hudson/Jenkins, Sonar H2, DB2, Oracle, MongoDB, SQL Server, Poet Tomcat, JBoss, BEA WebLogic, Glasfish JMS (HornetQ, WebSphere MQ), REST (JSON), Spring-Remoting, XML-RPC, JBoss Netty, TCP/IP, Industrial Ethernet Windows, Linux (Suse 10/11, Ubuntu), MacOS, Android Branchen Logistik, E-Commerce, Flugzeugbau, Dienstleistung, Software, Automobil und Zulieferer, Industrie, Versicherungen, Banken Berufliche Weiterbildung 2012 2007 2006 2003 Java EE Summit Advanced Hibernate Training Führungsinstrumente für Projektleiter und Führungskräfte Mitarbeitergespräche erfolgreich führen München Red Hat Deutschland C2 Organisationsberatung C2 Organisationsberatung Soft Skills Soft Skills: sehr gute analytische und konzeptionelle Fähigkeiten strukturierte und selbständige Arbeitsweise ausgeprägte Teamfähigkeit und Flexibilität kosten- und kundenorientiertes Vorgehen in der Projektabwicklung interkulturelle Berufserfahrung Sprachen: Deutsch (Muttersprache) Englisch (fließend in Wort und Schrift) Auslandsaufenthalt: USA: 1998 – 1999 Seite 2 / 9 Projekte 04/2013 jetzt Rolle: Branche: Logistik - Gütertransport Projekt: Steuerung von Güterzügen an Ablaufbergen. Erfassung und Verwaltung von Leistungskomponenten. Neuentwicklung. Entwicklung des Datenmodells und der Hibernate-Entitäten. Entwicklung der Persistence-Schicht. Entwicklung von Frontend-Masken und zugehörigen Services nach Vorgaben. Installation des Builds auf Jenkins. Unit- und Containertests. Einführung von H2 als Test-DB. Dokumentationen. Einführung von Code-Reviews mit Crucible/Fisheye. Tätigkeit: Software Entwickler / Consultant Schienengüterverkehr Technik: Eclipse Scout, Spring, Hibernate, JavaEE 5, IBM Websphere AS, DB2- und Oracle-DB, TestDB H2. Deployment auf IBM Websphere AS. Continuous Integration mit Hudson/Jenkins + Sonar. Reviews von Code mit Crucible/Fisheye. Projektverfolgung/Problembehandlung mit Jira. Projekteigenes Wiki mit Confluence. JUnit / Mockito Testframework. Enterprise Architect Modellierung. Repository: SVN. Buildsystem: Maven. Repository: Nexus. 02/2013 03/2013 Rolle: Branche: Logistik - Gütertransport Projekt: Disposition von Güterzügen Tätigkeit: Portierung des bestehenden RCP-Clients nach RCP 4. Umstellen des Build von Maven auf Tycho. Performance-Optimierungen, Code-Reviews, Architektur-Reviews. Consulting bezgl. JMS-Kommunikation (ca. 500.000 Messages pro Tag). Erstellen eines Migrationspfades. Unit- und Containertests. Dokumentationen. Deployment auf Testserver und Integrationstests. Eclipse RCP, JavaEE 5, JMS, DB2-DB. Deployment auf Websphere AS. Continuous Integration mit Hudson/Jenkins + Sonar. Reviews von Code mit Crucible/Fisheye. Projekteigenes Wiki mit Confluence. JUnit / Mockito Testframework. Repository: SVN. Buildsystem: Maven / Tycho. Repository: Nexus. Technik: Software Entwickler / Consultant Schienengüterverkehr Seite 3 / 9 01/2011 01/2013 Rolle: Branche: E-Commerce Versandhandel Projekt: Softwaretechnische Weiterentwicklung des Core-Systems (Artikel und Produkte, PIM) eines führenden deutschen E-Commerce-Betreibers. Import / Export zu externen Systemen ( Shop, Lieferanten, Katalogproduzenten, SAPERP, SAP-CRM) Umbau von Batch-Betrieb auf ereignisbasierte Messaging-Lösung Transaktionale Verarbeitung von Massendaten Validierung, Konvertierung, Normierung Tätigkeit: Agile Software-Entwicklung nach SCRUM. Erstellen von Anforderungen in Zusammenarbeit mit dem Fachbereich. Entwurf von technischen Datenmodellen und Prozessen. Implementierung anhand von Datenmodellen und Prozessen. Performance-Optimierungen. Code-Reviews und Betreuung von Trainees. Unit- und Containertests. Bearbeitung von Tickets, Unterstützung der Fachabteilungen. Dokumentationen. Deployment auf Testserver und Integrationstests. Testunterstützung der Fachabteilung. Technik: JavaEE 5, JBoss AS, HornetQ-JMS, JAXB, Spring Hibernate-JPA, DB2- und Oracle-DB, TestDB H2, NoSQL (MongoDB) RESTful services mit JSON Deployment auf JBoss AS 4. Continuous Integration mit Hudson/Jenkins + Sonar Reviews von Code mit Crucible SCRUM-Tool Jira Projekteigenes Wiki mit Confluence JUnit / Mockito Testframework Mantis Issuetracking, ARIS Modellierung Dokumentenmanagement SharePoint Repository: Git, SVN. Buildsystem: Ant / Maven. Repository: Nexus. 09/2008 12/2010 Rolle: Branche: Framework für Flugsimulatoren Projekt: Re-engineering des DataRecorders. Der DR zeichnet Flugdaten im 10 ms-Takt auf, und spielt diese zeitversetzt im gleichen Takt wieder ab. OSGi-Bundle. Vollständiges Entwickler- und Adminstrator-IDE auf Basis Eclipse RCP. Generisches Java- und C++-Framework für Flugsimulatoren. Modelle, welche die Funktionen des Simulators beschreiben, werden zur Laufzeit geladen und per JNI angesprochen. Simulationssoftware für Trainingsflugzeuge Vergleich und Tests von Java- und C++-Versionen hinsichtlich Performance, Skalierbarkeit, Resourcenverbrauch, Stabilität. Tätigkeit: Design- und Entwicklung eines Rich-Clients zur Administration des SimulationsFrameworks auf Basis Eclipse-RCP. Enthalten sind Navigator, Wizards, Views, Debugger, Plotter zur Darstellung der Werte etc. Implementierung der Anbindung mit JBoss Netty über TCP/IP an das C++- Software Entwickler / Consultant E-Commerce Senior Softwareentwickler Flugzeugbau Seite 4 / 9 Framework. Entwicklung, Programmierung, Tests und Beratung. Spezifikation und Entwicklung von Performance-Test-Modulen. Design und Implementierung einer universellen Daten- und CommandSchnittstelle, möglichst BS- und Sprachen-unabhängig: XML-RPC. Technik: Framework läuft unter OSGi (Felix, Equinox) oder native. BS: Linux auf PowerPC und X86, Windows, sowohl 32- als auch 64-Bit. Buildsystem: Maven und Hudson. Entwicklungsumgebung: Eclipse, SuSe / Ubuntu Linux, Vista, Visual Studio 2008 Sprachen: Java, C++, Groovy, Python Repository: SV, Polarion Tags: Java, OSGi, JNI, C++, Services, Python, Linux (Suse, Ubuntu), PowerPC Eclipse RCP, Jfaces, JBoss Netty 04/2007 08/2008 Rolle: Branche: KAMS (Karten-Applikations- und Management-System) im Rahmen der elektronischen Gesundheitskarte (eGK) Senior Software Ingenieur und Architekt SmartCards Projekt: Karten-Applikations- und Management-System. Eingesetzt im Rahmen der elektronischen Gesundheitskarte (eGK). Generisches Framework für das Management jedwelchen Typs elektronischer Karten (Bankkarten, öffentlicher Verkehr, etc.) Middleware als Enterprise Jaba Beans (EJB3). Läuft auf JBoss, Sun, SAP Application-Server, unter Windows, AIX, Solaris. Datenbanken: Oracle und DB2. Tätigkeit: Entwicklung und Programmierung allgemein. Entwurf und Modellierung Daten- und Prozessmodelle. Implementierung eines Schedulers auf Basis „Quartz“. Systemspezifikationen, UI-Prototyping. Erstellung UI, Service-Spezifikationen, Mock-Services. Tests. Technik: Java-Enterprise-System mit AJAX-Thin-Client (RAP/RWT) oder Fat-Client (SWT). Kommunikation Client – Server mittels Spring Remoting. Hohes Daten-Volumen, Verarbeitung von ca 100.000 Karten in 24 h. Bestand von ca. 80 Mio. Karten. Zeitgesteuerte Verarbeitung der Datensätze. Mandantenfähig. Tags: EJB3, Java, Spring, Cayenne, Quartz, Velocity, RAP, RWT/SWT, Oracle 10g, DB2, JBoss, Tomcat, Junit, Maven, ClearCase, ClearQuest, OraDesigner 08/2005 – 02/2007 Rolle: Branche: BDE-System zur Produktionsplanung und -überwachung, Qualitätssicherung Projekt: Werksübergreifendes Intranet-Client-Server-System zur Planung, Visualisierung und Kontrolle der Produktion durch Werk- und Konzernleitung. Qualitätsdateneingabe durch Werkerpersonal. Benutzergruppen- und arbeitsplatzspezifische UI. Konfigurierbare Werks-Infrastruktur, abhängig vom Produktionsmodell. Historische Auswertungen, individuell konfigurierbar durch authorisierte Benutzer. Generische, konfigurierbare Schnittstelle zur Steuerungsebene. Verantwortlicher Projektleiter und Senior Software Entwickler Ziegelindustrie Seite 5 / 9 Automatisch konfigurierte Arbeitsplätze, mit Filterfunktionen. Anbindung an SAP zur Übernahme von Produktionsaufträgen, Qualitätsvorgaben, Stammdaten. Rückmeldung von Produktions- und Qualitätsdaten an SAP. Tätigkeit: Anbindung an Siemens S7-Steuerung. Export nach Excel. Anforderungsanalyse, Aufwandschätzung und Projektleitung. Entwicklung Daten- und Programmmodell, Pflichtenheft, Vorgabe UI. Abbildung Prozessmodell. Budgetverantwortung (Festpreisprojekt). Auswahl Soft- und Hardwareplattform. Teamcoaching, Teamgrösse 3 MA’s Vollzeit, 3 MA’s Teilzeit, plus 2 externe MA’s. Code-Review und Programmierung von kritischem Code. Technik: Java-Enterprise-System mit Fat-Client in 3-Schicht-Modell. Kommunikation Client – Server mittels SOAP und XML-RPC. Anbindung an SAP (JCo) und an die vorhandene Produktionsebene mittels TCP/IP (RFC1006). Hohe Daten-Insert-Rate (~10 Einträge pro Sekunde), partitionierte Tabellen. Generische Kommunikationslibrary, konfigurierbar für TCP/IP, RFC1006, RS232, u.a. Sehr komplexe Datenbankabfragen, mit z.T. über 1000 Parametern in der Abfrage, aus Tabellen mit mehreren Millionen Einträgen. Tags: Java, Hibernate, Oracle 10g, Tomcat, Swing, SOAP, Java WebStart, SAP, Siemens S7, Excel. 01/2005 06/2005 Visualisierung einer automatischen Klebeanlage Lead Architekt, Software Entwickler und Teilprojektleiter Automobil Tätigkeit: Anforderungsanalyse, Prototypenentwicklung und Teilprojektleitung. Entwicklung Daten- und Programmmodell, Pflichtenheft, Vorgabe UI. Auswahl Soft- und Hardwareplattform. Teamcoaching, Teamgrösse: 3 interne plus 2 externe MA’s Vollzeit. Programmierung Java, JSP, SQL. Inbetriebnahme. Projekt: Visualisierung einer automatischen Klebeanlage mit Darstellung von Betriebszuständen, Meldungen und Störungen im Browser. Anmeldung des Benutzers mittels Chipkarte. Schnittstelle zur Siemens S7-Steuerung. 3-Tier-Anwendung. Technik: Implementierung in Java 1.4 und JSP, mit SQL Server (MSDE 2000), Tomcat WebServer und IE-Browser. Abfrage eines WebService zur Authentifizierung des Benutzers. Verwendung von CSS, XHTML, DHTML zur „flickerfreien“ Darstellung und einer Refresh-Rate unter 1 sec. 01/2004 – 12/2004 Rolle: Branche: Anlagenleitsystem Tätigkeit: Anforderungsanalyse. Datenbank-Design. Programmierung Java 1.3, JSP, SQL. Senior Software Entwickler Automobil Seite 6 / 9 Projekt: Anlagenleitsystem zur Steuerung, Überwachung und Auswertung der Materialversorgung der mechanischen Fertigung von Nocken- und Kurbelwellen. Client-Server-System mit Thin-Clients. Technik: IBM AIX, Netscape, Oracle9i, Java, JSP, TCP/IP, Crystal Reports. 10/2002 – 11/2003 Rolle: Branche: ME-System (Manufactoring Execution) Tätigkeit: Anforderungsanalyse. Datenbank- und Programmdesign; Programmierung. Kundenbetreuung und Inbetriebnahme. Projekt: Client-Server-System zur Erfassung, Darstellung, Archivierung und Auswertung von Produktionsdaten aus der verketteten Fertigung von Kurbelwellen. Intranet-Anwendung, 3-Tier-Schichtmodell. Technik: Java, JSP, SQL, IIS + NewAtlanta, SQL Server 6, IE, RFC1006, Siemens S7. 07/2001 – 08/2002 Rolle: Branche: Refactoring Tätigkeit: Refactoring eines bestehenden C-Systems auf ein intranet-basiertes 3-Tier-System. Analyse des bestehenden System, Kundenbetreuung. Datenbank-Modellierung, Abbildung der Geschäftsprozesse, Programmierung. Projekt: Intranet-System zur Kapazitätsplanung und Abrechnung von internen und externen Dienstleistern in der Sitzefertigung. Technik: Intranet-basierte Browser-Software unter Verwendung von Oracle8, BEA WebLogic, JSP und mit Anbindung an diverse Legacy-Systeme. 10/2000 – 06/2001 Rolle: Branche: In-House-Entwicklung Tätigkeit: In-House-Entwicklung eines iBatis-ähnlichen O/R-Frameworks für den Zugriff auf Oracle und MS SQLServer von Java. Inkl. Code-Generator über XML-Definitionen aus DB-Schema. 04/1999 – 09/2000 Rolle: Branche: System-Entwicklung Tätigkeit: System-Entwicklung für WinNT unter Verwendung von Visual C++, JavaScript, HTML, VB. Mitwirkung in Design und Architektur von Frameworks. Erreichen hoher Qualitätsstandards sowie eines einheitlichen Look-And-Feel durch den Senior Software Entwickler und Architekt Automobil Senior Software Entwickler und Projektleiter Automobil Senior Software Entwickler und Projektleiter Dienstleistung Industrie Software Entwickler Dienstleistung Logistik Seite 7 / 9 Einsatz mehrerer eigenentwickelter C++-Bibliotheken u.a. für ODBC-DB Anbindung. Verwendete DB-Systeme: SQL-Server 7 und 6.5, Oracle, Sybase. 04/1998 – 01/1999 Rolle: Branche: C++-Framework als API Tätigkeit: Entwurf, Programmierung & Test einer C-Schnittstellen-Bibliothek für das Repository ROCHADE. Projekt: Zweck der Bibliothek: die Umsetzung der Schnittstellen-Funktionalität aus einer proprietären Sprache nach C. Technik: Realisierung eines objekt-orientierten, pattern-basierten Designs mit Rational Rose 4, Visual C++ unter Windows NT. Modellierung nach UML (Booch). 01/1997 – 03/1998 Rolle: Branche: Plattformunabhängiges C++-Framework Tätigkeit: Technische Co-Leitung und Projektaufsicht in einem Client-Server Projekt für die Versicherungsbranche. Projekt: Mitverantwortlich für ein Framework von C++-Basisklassen, das intern aus ca. 30 Entwicklern für die Entwicklung des Clients genutzt wird (die meisten Entwickler hatten zu Beginn des Projektes PL/I- und/oder COBOL-Kenntnisse). Der Client besteht aus rund 4,000 C++-Klassen und wurde in ca. 10 Tagen von OS/2 nach NT portiert. Der Server läuft auf MVS, OS/2 oder Windows NT. Die Kommunikation zwischen Server und Client wird mit CICS über TCP/IP ermöglicht. Technik: Senior Software Engineer Softwareprodukt Senior Software Engineer Software-Dienstleistung 08/1995 – 12/1996 Rolle: Branche: Aussendienst-Applikation KFZ-Versicherung Tätigkeit: Entwicklung eines Business-Frameworks in C++ für Aussendienst-Applikationen. Technik: Einsatz des OODBMS der Fa. POET. Portabilität von Windows NT nach OS/2 im Design berücksichtigt. 08/1993 – 07/1995 Rolle: Branche: Aussendienst-Applikation Bausparen Tätigkeit: Design und Entwicklung einer GUI- und OODBMS-Bibliothek in C++. Coaching des Teams während der Entwicklung und während der Anwendungsentwicklung. Analyse und Design nach den OOA/OOD-Methoden von Booch. 01/1991 – Diplomarbeit Softwareentwickler Versicherung Softwareentwickler Finanz Seite 8 / 9 03/1993 Rolle: Branche: Tätigkeit: Diplomand, Softwareentwickler Automatisierung Entwicklung eines object-orientierten Visualisierungssystemes in C++ unter Windows 3.1 für Siemens S5 Steuerungen (wird heute noch unter dem Namen „GraphPic“ vermarktet). Mitarbeit an diversen Softwareprojekten während meiner Studienzeit, z.B. eine CBibliothek für das UI eines Handheld-Computers, eine dBase- Datenbank, u.a. Seite 9 / 9