27. November 2014 NILS SCHMIDT SOFTWARE ENGINEER ANGABEN ZUR PERSON Name Anschrift Telefonnummer E-mail Staatsangehörigkeit Geburtsdatum Schmidt, Nils Heußweg 89, 20255 Hamburg +49 151 42231035 [email protected] Deutsch 09. März 1984 BERUFSERFAHRUNG Datum Arbeitgeber Funktion und Tätigkeit Datum Arbeitgeber Funktion und Tätigkeit Datum Arbeitgeber Funktion und Tätigkeit Datum Arbeitgeber Funktion und Tätigkeit Datum Arbeitgeber Funktion und Tätigkeiten Datum Arbeitgeber Funktion und Tätigkeiten Datum Arbeitgeber Funktion und Tätigkeiten 09/2014 – heute Selbstständiger Unternehmer Software Engineer; Entwicklung, Beratung und Coaching in den Bereichen Software Architektur, Java Enterprise Entwicklung, Scala Entwicklung, Build-, Deployment- und Test-Automatisierung, Optimierung von agilen Qualitäts- und Entwicklungsprozessen 09/2011 – 08/2014 CGI Deutschland GmbH & Co. KG, Hamburg Software Architekt / Consultant; Beratung mit den Schwerpunkten agile Softwareentwicklung, Softwarearchitekturen, Java Enterprise. Steuerung von Entwicklungs-Teams (lokal, nearshore), technologische Projektverantwortung, Optimierung von Qualitäts- und Entwicklungsprozessen 06/2011 – 08/2011 Smaato Inc.; Hamburg Software Engineer; Entwurf und Implementierung von Komponenten innerhalb eines HochlastJava-Server-Systems, Software-Konfigurations-Management, Release-Management 06/2010 – 09/2010 NovaTec GmbH; Stuttgart Software Engineer (Teilzeit/Werkstudent); Machbarkeitsanalysen und Entwicklung von Prototypen mit Fokus auf Java, SpringSource Technologien und moderne Web Technologien 11/2008 – 09/2009 Logica Deutschland GmbH & Co. KG, Hamburg Associate Consultant; Beratung in den Bereichen Softwareentwicklung, Java Technologien (JEE, Spring, Hibernate, JSF, Maven, Jenkins), leichtgewichtige Unternehmensanwendungen und Optimierung von Software-Entwicklungsprozessen 08/2005 – 09/2008 Amadeus Germany GmbH, Bad Homburg Trainee; Softwareentwicklung, Analyse, Entwurf und Umsetzung von Anforderungen mittels unterschiedlicher Technologien (meist Java, häufig in innovativen, prototypischen Entwicklungsprojekten), Analyse und Optimierung von Unternehmensprozessen in der Softwareentwicklung 01/2007 – 08/2008 Selbstständig (Teilzeit) Kleinunternehmer; IT-Consulting, Softwareentwicklung in den Bereichen Java, Spring, Web 1/7 27. November 2014 NILS SCHMIDT SOFTWARE ENGINEER SCHUL- UND BERUFSBILDUNG Datum Bildungseinrichtung Erworbene Qualifikation Datum Bildungseinrichtung Erworbene Qualifikation Datum Bildungseinrichtung Erworbene Qualifikation Datum Bildungseinrichtung Erworbene Qualifikation 09/2009 – 05/2011 Hochschule Heilbronn, Heilbronn Master of Science in Software Engineering and Management (Abschlussnote: 1,0) 10/2005 – 09/2008 Berufsakademie Mannheim (heute: Duale Hochschule Baden-Württemberg), Mannheim Diplom Informatiker (BA) (Abschlussnote: 1,3) 08/2004 – 06/2005 Georg-Christoph-Lichtenberg Gymnasium, Kassel Staatlich geprüfter mathematisch-technischer Assistent 09/2001 – 06/2004 Georg-Christoph-Lichtenberg Gymnasium, Kassel Allgemeine Hochschulreife 2/7 27. November 2014 NILS SCHMIDT SOFTWARE ENGINEER IT ERFAHRUNG UND PERSÖNLICHE KOMPETENZEN Methoden und Prozesse Programmiersprachen Frameworks und Technologien Webservices/-Tools Test-Werkzeuge Modellierung und Code Generierung Datenbanken System und Software Engineering, Software Architektur Agile Entwicklung (SCRUM, Kanban) Objektorientierte Analyse & Design (OOA/OOD) Fachkonzeption, Spezifikationen, Modellierung (UML) Prozess-Automatisierung im Bereich Build, Test, Deployment und Release Entwicklungscoaching, Clean Code, XP, Refactoring, Continous Integration/Delivery Qualitäts- und Projektmanagement Java SE/EE (10 Jahre), Scala (2 Jahre), Shell-Scripting, Ruby, JavaScript, C++ Spring (Core, MVC, WS, WebFlow, Security, Data), JPA, Hibernate, JSF, Struts, Play, Akka, Central Authentication Service (CAS), Guava, Swing, HTML, CSS, AJAX, JQuery, Bootstrap REST, JSON, SOAP, JAX-RS, JAX-WS, JAXB, Jersey, Spring-WS JUnit, TestNG, Mockito, Hamcrest, Selenium, Cucumber, JMeter, Gatling UML, MDA, DSL, Enterprise Architect (SparxSystems), Xtext, Xtend NoSQL, Relationales Datenbankdesign, MongoDB, Oracle, SQL-Server, MySQL SW-Qualität und Code-Analyse SonarQube (Sonar), PMD, Checkstyle, FindBugs Projekt- und Build-Management Maven, Ant, Jenkins, Bamboo, Sonatype Nexus, SBT, Gradle, JIRA, Confluence, MS Project Versions-Verwaltungssysteme Entwicklungsumgebungen Application Server Betriebssysteme Git, Subversion (SVN), CVS Eclipse, IntelliJ IDEA Appache Tomcat, Jetty, WildFly (JBoss AS), Apache HTTP, nginx Linux/Unix, Mac OS, Windows SONSTIGE FÄHIGKEITEN UND KOMPETENZEN Branchenkenntnisse Fremdsprachen Auslands- und Spracherfahrung Führerschein Airline und Touristik, Banken, E-Commerce, IT Dienstleistung, Medien und Verlagswesen, Werbung Englisch – Verhandlungssicher Französisch – Grundkenntnisse Zahlreiche Projekte in englischer Sprache durchgeführt, enge Zusammenarbeit mit Kollegen ohne Deutschkenntnisse Fünfmonatiger Auslandaufenthalt zur Anfertigung der Masterarbeit in Melbourne, Australien, 2010 Dreimonatiger Auslandseinsatz bei Amadeus SAS, Sophia-Antipolis, Frankreich, 2007 Diplomstudium zu 70% in Englisch absolviert, Masterstudium zu 100% in Englisch absolviert Klasse B 3/7 NILS SCHMIDT 27. November 2014 SOFTWARE ENGINEER PROJEKTERFAHRUNGEN UND REFERENZEN 08/2013 – 08/2014 Medien & Verlagswesen Lead Developer, Architect Entwicklung einer Branchenlösung, mit der Verlagshäuser ihr Geschäftsmodell an die Anforderungen des Medienwandels anpassen können. Die Lösung umfasst alle gängigen PaywallModelle, einen crossmedialen E-Commerce-Shop und ermöglicht durch Single-Sign-On Technologien einen 360-Grad-Blick auf den Leser über mehrere Services und Produkte hinweg. Damit erhalten Medienunternehmen die notwendige Infrastruktur für die digitale Transformation. • Requirements Engineering; Prüfung, Bewertung und Überführung von Kundenideen und Anforderungen in eine konsistente und widerspruchsfreie Produktspezifikation (später User Stories) • Definition der high-level Komponentenarchitektur des Gesamtsystems (verteilte REST Service Architektur) und Design der Schnittstellen zwischen den einzelnen Komponenten • Design, Implementierung und Test zentraler Services und übergreifender Framework Funktionalität • Design und Umsetzung des Kern-Datenmodels sowie der Datenzugriffsschicht basierend auf MongoDB, Morphia und Java • Konzeption und Umsetzung des Test-, Build- und Deployment-Prozesses basierend auf Maven, Nexus, Jenkins, Shell Skripten und Jira • Steuerung und Überwachung des zehnköpfigen Entwicklungs-Teams • Training und Coaching des Entwicklungs-Teams im Bereich Agi|e Entwicklung, Testgetriebene Entwicklung und Continuous Delivery • Sicherstellung der Leistungserbringung gemäß Angebot und fachlichen Anforderungen, GoLive Unterstützung Java / Java EE, Spring, MongoDB, REST, JSON, JAX-RS, Guava, Freemarker, Selenium, Cucumber, Maven, Nexus, Jenkins, Shell-Scripting, JUnit, Hamcrest, Mockito, SVN, Eclipse, Apache Tomcat, Jetty, Nginx 09/2011 – 07/2013 Banken Lead Developer, Architect, Analyst Technische Migration des bestehenden Online-Banking & Brokerage Frontends auf eine moderne, wartungsfähige und modulare Plattform. Gleichzeitige Einführung von Model-to-Code Prozessen und Tools für die automatisierte Überführung von Fachlichkeit in Software Module. • Analyse der bestehenden Geschäfts- und Entwicklungsprozesse mit Hinblick auf potenzielle Optimierung durch einen Model-to-Code Ansatz • Design und Einführung eines fachlichen Modellierungsdialekts auf Basis Enterprise Architekt und UML, sowie einer DSL für die automatisierte Überführung von Fachlichkeit in Code • Konzeption und Umsetzung diverser Code-Generatoren zur Automatisierung der technischen Migration (zunächst mittels Scala, später mit Xtext und Xtend) • Modelierung und Implementierung von Order & Banking Use Cases unter Zuhilfename der entwickelten DSL, Generatoren, Enterprise Architect und Java + Spring • Steuerung und Überwachung des vierköpfigen Near-Shore Entwicklungsteams • Sicherstellung der Leistungserbringung gemäß Angebot und fachlichen Anforderungen Java / Java EE, JSF, Spring, Spring WebFlow, Xtext, Xtend, Scala, Enterprise Architect, UML, JUnit, Hamcrest, Mockito, SVN, Eclipse 4/7 27. November 2014 NILS SCHMIDT SOFTWARE ENGINEER 09/2011 – 10/2011 Medien & Verlagswesen Consultant Beratung bei der mandantenübergreifenden Einführung eines Single-Sign-On Systems, insbesondere im Bezug auf effiziente und kostengünstige Anbindung neuer Dienste innerhalb des Konzerns. • Schulung und Support im Bereich templatebasierter Oberflächenentwicklung (Customizing) für die kundenspezifische SSO Lösung • Migrationsplanung zur Überführung von Bestandsdaten in die neuen Systeme und Go-Live Support MS Project, MS PowerPoint, Freemarker, HTML, CSS 06/2011 – 8/2011 Werbung Developer, Build Engineer Weiterentwicklung eines bestehenden, hoch-verfügbaren und -skalierbaren Java-ServerSystems zur vollautomatisierten Auslieferung von Mobile-Advertisement Snippets. Sicherstellung der Leistungserbringung gemäß Angebot, Code Review, Implementierung der Business Logik und der Applikationssteuerung, Unterstützung der Entwickler, GoLive Unterstützung • Design, Implementierung und Test von neuen Features innerhalb des bestehenden Java Backend Systems • Konzeption und Umsetzung eines neuen Test-, Build- und Deployment-Prozesses basierend auf Maven, Nexus, Jenkins, Shell Skripten und Amazon EC2 Java / Java EE, JSP, Maven, Nexus, Jenkins, Shell-Scripting, Amazon EC2, JUnit, Hamcrest, Mockito, SVN, Eclipse 11/2010 – 4/2011 IT Dienstleistungen Consultant, Architect, Developer Proof of Concept / Portierung eines bestehenden Data-Warehouse-Systems aus einer klassischen Java EE Umgebung (Java, JSF, Hibernate, MySQL, Tomcat) in eine Platform-as-aService Umgebung (Google App Engine). • Analyse der Bestandsanwendung und deren Architektur im Bezug auf eine mögliche Portierung auf die Google App Engine (GAE) • Design und Umsetzung der neuen Architektur innerhalb der durch die PAAS Lösung vorgegebenen Strukturen • Migration einzelner Use Cases in die neue Architektur (Java, GAE, BigTable, JSF) • Identifikation, Abstraktion und Bewertung von kurz- bzw. mittelfristigen Hürden bei der Portierung einer Java EE Anwendung hin zur GAE PAAS Lösung Java / Java EE, JSF, Hibernate, Google App Engine (GAE), Google Datastore (BigTable), GIT, Eclipse 05/2009 – 09/2009 IT Dienstleistungen Developer, Architect Neuentwicklung einer Web-Anwendung zur Verwaltung von Profil-, Skill-, Projekt- und Kundendaten. • Design und Umsetzung der Grundarchitektur der Anwendung basierend auf Java, Spring, JSF, Hibernate und MS SQL • Entwurf, Implementierung und Test von Business Funktionalität in serverseitigen Java EE Komponenten mittels Java, Spring, Hibernate und JSF • Modellierung und Umsetzung der Persistenz Schicht (Relationaler Datenbank Entwurf und Hibernate Mapping) • Anbindung von externen Web Services (SOAP) und LDAP Systemen • Steuerung und Überwachung der Entwicklungstätigkeiten innerhalb des Teams sowie Unterstützung der Entwickler bei Refactorings, Code Reviews und Testautomatisierung Java / Java EE, Spring, Hibernate, JSF, MS SQL, Web Services, SOAP, LDAP, JUnit, EasyMock, Maven, SVN, Eclipse, Enterprise Architect 5/7 27. November 2014 NILS SCHMIDT SOFTWARE ENGINEER 01/2009 – 04/2009 Banken Developer, Build Engineer Umsetzung einer ganzheitlichen Erfassungssoftware zur Kontoanlage für minderjährige Privatkunden bei einer namhaften Hamburger Bank. • Design und Umsetzung der primären Flusssteuerung durch die Anwendung mittels Spring, Spring WebFlow und Enterprise Architect • Entwurf, Implementierung und Test von Business Funktionalität in serverseitigen Java EE Komponenten mittels Java, Spring, Hibernate und JSF • Aufbau des Buildsystems (Maven), Testautomatisierung (Selenium), und Continuous Integration/Delivery (Maven, Jenkins, Jira, Nexus) Java / Java EE, Spring, Spring WebFlow, Hibernate, JSF, JUnit, EasyMock, Maven, Selenium, SVN, Eclipse, Jetty, Enterprise Architect 10/2008 – 12/2008 IT Dienstleistungen Analyst Requirements Engineering für eine Java basierte Webanwendung zur Profil-, Skill-, Projekt- und Kundenverwaltung bei einem globalen IT Dienstleistungskonzern. • Aufnahme der fachliche Anforderungen vom Fachbereich sowie Festlegung der nicht funktionalen Anforderungen • Mitarbeit am Pflichtenheft und Lastenheft • Planung der Arbeitspakete und Projekt-Milestones für die zukünftige Umsetzung MS Word, MS PowerPoint, Enterprise Architect 07/2008 – 09/2008 Airline und Touristik Developer Neuentwicklung einer DLL basierten lokalen Scripting-Schnittstelle unter Verlagerung von C++ Client Funktionalität hin zu Java EE Server Komponenten. • Verlagerung von Business Funktionalität aus einem lokalen C++/COM Client in serverseitige Java EE Komponenten • Entwurf, Implementierung und Test eines Web Services, welcher die portierte Geschäftslogik über saubere Schnittstellen zur Verfügung stellt • Entwurf, Implementierung und Test einer clientseitigen Komponenten (DLL), welche die ursprüngliche Client Schnittstelle implementiert und an den Web Service delegiert C/C++, Java, SOAP, XML, Apache Axis, JUnit, Ant, SVN, Eclipse 01/2008 – 03/2008 Airline und Touristik Analyst, Architect Machbarkeitsstudie zur Erhaltung einer lokalen Windows Schnittstelle (DLL) bei gleichzeitiger Überführung einer Fat-Client Anwendung hin zu einer Client-Server-Architektur. • Analyse der Architektur und der technischen Umsetzung der bestehenden Schnittstelle/DLL • Erarbeitung einer Lösungsarchitektur zur transparenten Ersetzung der Client Bestandteile, basierend auf einer schlanken DLL, WebServices und serverseitiger Geschäftslogik • Erstellung eines Lastenheftes auf Basis der Anforderungen C/C++, Java, SOAP, XML 07/2007 – 09/2007 Airline und Touristik Consultant, Developer Proof of Concept / Überprüfung möglicher Produktivitätssteigerungen durch die Umstellung bestehender Anwendungen von Java auf Ruby on Rails. • Fachliche Analyse einer bestehenden Webanwendung zur Durchführung von Serverdeployments und -sizeing • Nachbildung der Grundfunktionalität in einem Ruby on Rails basierten Prototyp • Pro- und Contra-Analyse mit abschließender Bewertung im Bezug auf Entwicklerproduktivität, Betriebsstabilität und Performance von Ruby on Rails im konkreten Szenario • Durchführung von Ruby on Rails Schulungen und Zusammenstellung von Lehrmaterialien Ruby, Ruby on Rails, MS SQL, HTML, CSS, Ajax, SVN, IntelliJ IDEA 6/7 27. November 2014 NILS SCHMIDT SOFTWARE ENGINEER 04/2007 – 06/2007 Bildungswesen Analyst, Architect, Developer Design und Entwicklung einer Raumplanungssoftware für die dezentrale Verwaltung von Universitätsräumen mittel Java EE, Web Services und Swing. • Requirements Engineering, Aufnahme der fachliche Anforderungen vom Fachbereich sowie Festlegung der nicht funktionalen Anforderungen • Design der Gesamtarchitektur für das Buchungssystem (Client + Server + Schnittstellen) • Implementierung der serverseitigen Geschäftslogik und Web Services mittels Java, Spring und Hibernate • Steuerung des dreiköpfigen Entwicklerteams Java / Java EE, Spring, Hibernate, Web Services, SOAP, Swing, JUnit, EasyMock, SVN, Eclipse, Apache Tomcat 01/2007 – 03/2007 Airline und Touristik Developer Entwicklung eines generischen Datenmigrationstools zur automatisierten Übertragung von Massendaten zwischen verschiedenen Datenquellen innerhalb der Kundensysteme. • Aufnahme von funktionalen und nichtfunktionalen Anforderungen • Analyse der bestehenden Datentöpfe, sowie sich daraus ergebene Einschränkungen für den Datenmigrationsprozess • Entwurf und Codierung einer konsolenbasierten Anwendung zur sicheren und effizienten Übertragung und Transformation von mehr als drei Millionen Kundendatensätzen Java, MySQL, JDBC, JUnit, SVN, Eclipse 07/2006 – 09/2006 Airline und Touristik Analyst, Developer Entwurf und Umsetzung eines Statistik-Moduls für serverseitiges Live Monitoring innerhalb bestehender Backend-Buchungssysteme. • Analyse existierender Komponenten und Festlegung der Zielarchitektur • Entwurf und Umsetzung der Datenzugriffsschicht für die Neuanwendung • Codierung, Test und Dokumentation der Statistik-API unter Verwendung eines firmeninternen Java Enterprise Frameworks, WebWork und JAXP Java / Java EE, XML, JAXP, SAX, WebWork (Struts), JUnit, CVS, Eclipse 01/2006 – 03/2006 Airline und Touristik Developer Proof of Concept / Prototyp-Migration einer bestehenden Touristikanwendung zur Buchung von Fernverkehrszügen auf ein firmeninternes Java Enterprise Framework. • Requirements Engineering anhand der bestehenden Anwendung im Bezug auf funktionale wie nicht-funktionale Anforderungen • Entwurf und Umsetzung der Datenzugriffsschicht für die Neuanwendung • Implementierung von serverseitigen Geschäftsprozessen • Erweiterung der Framework Dokumentation und Erstellung von Schulungsunterlagen Java / Java EE, XML, JAXP, DOM, iBATIS, MySQL, JUnit, SVN, Eclipse, JBoss AS 08/2005 – 09/2005 Airline und Touristik Consultant Einführung eines firmeninternen Problem-And-Change-Management Tools basierend auf ITIL v3 zur Steigerung der Effizienz in einem etwa siebzigköpfigen Projektteam. • Ausarbeitung von Organisationsstrukturen und Richtlinien • Planung und Durchführung von lnformations- und Schulungsveranstaltungen • Vorbereitung der automatischen Installation und Konfiguration von benötigten Softwarekomponenten Amadeus Approach, MS Project, MS PowerPoint Hinweis: Dieses Profil (Lebenslauf + Projekthistorie) ist vertraulich und darf nicht ohne vorherige, schriftliche Genehmigung des Autors reproduziert, zusammengefasst und/oder an Dritte weitergegeben werden. Dies gilt für die Unterlagen als Ganzes wie auch in Teilen. 7/7