Architekturunterstützung, Senior Software Development, Clean Code Coaching, Unterstützung Development Prozessoptimierung
Erstellung einer Android App und einer Appengine Cloud Serverkomponente zur Überwachung von Öffnungszeiten eines Sport-Trainingsgeländes
Überwachung des Öffnungsstatus mittels Spring MVC Anwendung innerhalb einer Google Appengine Anwendung und Veröffentlichung der Informationen als REST-Service
Dynamische Push Benachrichtigung vom Server zu den Androiddevices mittels C2DM/GCM
Senior Software Development & Technology Consultant mit Java 11, Spring Boot, Kafka, Microservices, Docker, OpenShift und Kubernetes
Senior Software Development mit Scala in AWS mit Microservices
Senior Software Development und Architekturberatung in einem Big Data Projekt
Einführung Big Data Pipelines auf Basis Apache Kafka / Confluent Open Source Platform bei einer großen Internetplattform
Neuimplementierung einer großen internetbasierten KFZ Verkaufsplattform mittels Microservices auf Scala und AWS Cloudbasis
Architektur und Entwicklung von Microservices und Textähnlichkeitsanalysen für helpster.de (werbebasierte Internetseite mit redaktionellem Content)
Architektur und Entwicklung eines Microservices der bei der Erstellung von neuen Artikeln im CMS System unterstützt:
Ermittlung von relevanten Keywords mittels WDF/IDF Algorithmus aus einem sehr großen Datenbestand mittlels Apache Spark um das Google Ranking von Artikeln zu verbessern und damit die Artikelerstellung zu optimieren. Umsetzung von REST Schnittstelle und einer AngularJS UI für Use-Cases im Bereich WDF-IDF
Microservice mit REST Interface für die Ermittlung von verwandten helpster Artikeln und Gutefrage.net Content unter Verwendung von Elasticsearch (More like this)
Microsservice der eine interne Suche auf Basis von Elasticsearch mit zahlreichen erweiterten Features anbietet (Synonymunterstützung, verschiedene Autokorrekturen der Eingabe) zur Ablösung der vorher verwendeten Google Suche
Automatisierter Erkennung und Clustering von ähnlichen Dokumenten (Near Duplicate Content) mittels MLT von Elasticsarch und Clusteringverfahren (k-means, DBSCAN) sowie mittels LDA (Latent Dirichlet Allocation)
Einführung von Continuous Integration/Deployment in den neu entwickelten Scala Microservices
Scala Coaching und Coaching der Architektur für Microservices der internen Mitarbeiter
Architektur- und Prozessberatung in mehreren Bereichen
Beratung zur Einführung von Microservices inkl. Serviceauthentifizierung
Unterstützung und Coaching bei der Umstellung auf Java 8 mit funktionalen Paradigmen
Einführung eines distributed In-Memory-Datagrids (Infinispan) für das Caching von zeitintensiven Backendcalls
Optimierung der Continuous Integration Pipeline und Beratung zur Optimierung hin in Richtung Continuous Deployment
Software-Review Prozessoptimierung
Mitwirkung bei dem Umbau eines rein PHP basierten Frage/Antwort - Forums auf eine Scala basierte Microservicearchitektur im High Traffic Bereich
Scala Software Development in den Services
Konzept und Umsetzung für die Wiederverwendung von allgemeinen Komponenten in den Services inkl. Einführung von Dependency Injection
Miterstellung der neuen Softwarearchitektur
API Thrift Design der Services
REST-Design der öffentlichen API
Konzeption der Authentifizierung und Authorisierung mittels JWT Tokens
Miteinführung von NoSQL (Redis) zur Speicherung von Accesstokens
Einarbeitung und Coaching auch neuer Mitarbeiter
Etablierung des Continuous Delivery Prozesses
regelmässige Servicereleases (weniger als 15 min nach Checkin) mit Zero Downtime
Mehrschichtige Testing- und Buildpipelines zur Qualitätssicherung mit automatisiertem Testing
Architektur und Mitentwicklung einer Android App für die führende Frage-Antwort Plattform in Deutschland
Durchführung einer Machbarkeitsstudie und eines Prototyps für die Umsetzung einer Android App mit Scala 2.11
Coaching des Teams bzgl. Scala & Android
Umsetzung der wichtigsten Basiskonzepte (z.B. Dependency Injection, Retries bei Verbindungsabrüchen zum Server u.v.m) der App
Einrichtung eines Continuous Integration Prozesses
Mitentwicklung bei allen Usecases der App
Interview mit mir bzgl. Scala auf Android: [URL auf Anfrage]
Realisierung eines EBook Shops für den E-Ink Reader Tolino Shine
Softwarearchitektur und Umsetzung der neuen Geschäftsprozesse
MongoDB 2 Persistenz für Kundenprofilinformationen mit Spring Data sowie Anbindung der bestehenden Oracle DB
Authentifizierung und Authorisierung durch Eigenimplementierung eines OAUTH2 Providers mit JSON Web Token (JWT)
Rest-API für bestehende und neue Services mit Resteasy
Umsetzung einer ESB-ähnlichen (Enterprise Service Bus) Applikation mit Spring Integration für die asynchrone Verarbeitung von Requests wie z.B. Bestellungen, digitale Auslieferungen, Abfragen der E-Bibliothek, Supportanfragen für das CCC/SAP u.v.m.
Messaging mittels MQ Series und HornetQ
Coaching und Aufbau einer Continuous Delivery Build Pipeline
Durchführung eines eintägigen Workshops zum Thema Versionsverwaltung mit GIT inkl. Beratung zur Migration.
Technologische Beratung, Architektur, Coaching und Umsetzungstätigkeit bei einem Portal für Versicherungsvergleiche
Erstellung der Architektur und Beratung bei der Konzeption für ein neues Modul/eine neue Anwendung auf Basis neuer Technologien, die schrittweise auch die auf veralteten Technologien (WebObjects) basierenden Anwendungen ablösen
Beratung bei der Einführung der Versionsverwaltung GIT (Umstieg von CVS)
Einführung von Continuous Integration und Testdriven Development
Coaching eines Entwicklers und Mitentwicklung (Pair-Programming) bei der Umsetzung des gesamten Projekts „Medienverteiler“, einer JEE Backendanwendung mit Swing GUI auf dem Client die u.a. zur Verwaltung der Empfänger von BG-ETEM Medien verwendet wird.
Erstellung einer personalisierten, cloudfähigen Blogsoftware mit Schnittstellen zu verschiedenen Plattformen
Technologieberatung und Kurzvorträge/Tutorials für Entwickler
SCRUM - Einführung und Prozessberatung
Refactoring und Bereinigung der Architektur und des Build- & Deploymentprozesses
Design und Implementierung neuer Features
Anbindung von Drittsystemen mittels Webservices (Spring WS)
Analyse und Lösung von bestehenden Problemen im Bereich Memoryleaks (PermGen Space), sowie beim Loadbalancing der geclusterten Anwendung
Neuimplementierung und Refactoring eines kommentierbaren Activityfeeds einer großen Social Network Plattform mit extremen Near-Realtime und Performanceanforderungen
Implementierung einer Kommentarfunktionalität der Statusmeldungen innerhalb des Activityfeeds mit Darstellung für alle Benutzer in Fast-Echtzeit
Anbindung von Drittsystemen mittels Batchverarbeitung, EJB und Webservices
Umsetzung von Workflows mit JBPM
Umsetzung der Business Logik unter Verwendung von austauschbaren OSGI -Bundles
Optimierung der Roundtripzeiten bei der Entwicklung
Mitwirkung beim Refactoring des Loyality Cores (Reduzierung von DTOs, Verwendung eines einheitlichen Domainmodels mit Hibernate Mappings auch bei internen Schnittstellen)
Unterstützung bei der Einführung des funktionalen Testframeworks „Fitnesse“ zur Umsetzung von Akzeptanztests (auch automatisiert im Rahmen des CI-Prozesses)
Beratung zur Verbesserung der Continuous Integration Umgebung inkl. Umsetzung: Ablösung von Cruisecontrol, Umstellung auf Hudson
Refactoring, Erweiterung und Fertigstellung einer komplexen Loyality Plattform auf JEE Basis für ein europäisches Land bestehend aus Internetshop, Callcenter-App und Backendimplementierung für die Prozess- und Workflowunterstützung und Module für die Batch- und Jobverarbeitung.
Mai 2008 ? Dezember 2008
Rolle: Senior Developer, Berater in Architektur & Technologiefragen, Spring & Webservice Experte
Kunde: KVB
Standort: München
Komplette Neuimplementierung inkl. Refactoring der technischen Architektur eines Dokumentenverwaltungs- und Dokumentenworkflowsystems (Webanwendung) auf IOC Konzepte und Spring Webflow.
Verbesserung der Wart- und Testbarkeit von bestehenden Bibliotheken und Realisierung der Anwendung mit Spring 2.5 und Spring Webflow unter Einsatz von AspectJ Features.
Umsetzung von zahlreichen neuen fachlichen Anforderungen, inkl. Implementierung mehrerer neuer Workflows
Einführung von Spring Security 2 für das Berechtigungskonzept der Anwendung & Coaching der internen Mitarbeiter
Einführung von Ajax Technologien für eine Rich UI mittels Spring-Javascript und Dojo
Einrichten eines Continuous Integration Servers (Hudson) inkl. Reporting
Implementierung einer Anwendung zur Synchronisation zweier Datenbanken mit unterschiedlichen Schematas:
Das Datenbankschema des Dokumenten-workflowsystems musste aufgrund fachlicher und gesetzlicher Anforderungen angepasst werden, dabei wurden die Daten migriert, ein Teil der Anwendungen musste jedoch noch auf dem alten Schema (und damit der alten DB-Instanz) arbeiten
Design und Implementierung der Synchronisationsanwendung mit Hibernate 3.3, JPA Annotations auf Oracle 10g
Optimierungen in Hinblick auf Massendatenverarbeitung der Dokumente
Massiver Einsatz von AspectJ zusammen mit Spring 2.5 für verschiedenste Bereiche der Anwendung
Einsatz von DBUnit und HSQLDB für automatisiertes Integrationtesting inkl. Integration von Testcoveragetools in den Buildprozess
Spring Batch mit Quartz als Batch-Execution Wrapper
Integration von JMX und Spring`s JMX-Support zur Fernwartung mittels JConsole
Architektur und Implementierung (Durchstich) eines Frameworks für automatisiertes Functional Testing von Webapplikationen auf Basis von Selenium, Maven2 und Jetty
Technische Beratung zu den Themen Spring, Maven 2, Schnittstellendesign, Webservices und modularsierter Architektur
Einführung eines Bugtracking- und Releasemanagement-Prozesses für die Zusammenarbeit der Entwicklungsteams untereinander und mit den Fachbereichen basierend auf JIRA
Tools & Umgebung:
Spring 2.5 (z.b. Spring AOP, AspectJ, Transactionmanagment, Spring ORM, Spring Testframework), Spring Webflow 2.0, Spring Security 2.0, Spring Batch 1.1, Apache Tomcat 6, Eclipse 3.3 & 3.4, Enterprise Architect, UML, Java 1.6, AspectJ, Oracle 10, HSQLDB (für Integrationtesting), DBUnit, Hibernate 3.3, JPA Annotations, Maven 2, Cobertura, Emma, Junit 4.4, EasyMock, Spring Batch, Hudson CI Server, Continuum CI Server, JIRA, FindBugs, Selenium, Jetty 6.1, Ajax (Dojo, Spring-Javascript)
Februar 2006 ? April 2008
Rolle: Senior Developer & Architekt
Kunde: O2
Standort: München
Dauer: 24 Monate
Hauptaufgabe: Implementierung und technische Architektur des Middletiers für die Anbindung des neuen CRM-Systems an die Portallandschaft bei O2.
Anbindung des Backend CRMs mittels Webservices und Contract-First Ansatz
Fachliches und technisches Design der Webservice-Schnittstelle, die das Backendsystem implementieren muss
JAX-WS 2.x
Nachrüsten der fehlenden Validierungsfunktionalität in JAX-WS für Rpc/Literal und Document-/Literal&Wrapped-Webservices
Einbau von WS-I (Web Services Interoperability)-Validierung im Buildprozess mittels Maven-Plugin
Integration von WS-Security (OASIS Simple Username Token Profile)
JAXB 2.x
Mitwirkung bei der Konzeption und der technischen Architektur der Service-, Persistenzschicht sowie bei der Anbindung der Backends (z.B. CRM).
Einsatz von UML und entsprechenden Tools (Rational Rose, Omondo UML)
Massiver Einsatz von Spring 1 und Spring 2 im gesamten Middletier und Frontend:
JMX-Bean-Exposing, Transaktionssteuerung, Interceptoren, Aspektorientierung mit Spring 1 AOP und AspectJ (nach Spring 2 Umstellung), Dependency Injection auch bei von Legacy-Frameworks (z.B. Abaxx) erzeugten Objekten, Spring Testsupport, Spring ORM
Implementierung von Business-Services als POJOs und Remoting per EJB über Stateless Session Beans mit Spring-Unterstützung
Unittesting mit Einsatz des Mockframeworks EasyMock zum Mocken von Abhängigkeiten der zu testenden Klasse
Implementierung von Webservice-Endpoints mittels JAX-WS, die anderen Systemen zur Verfügung gestellt werden
Analyse und Evaluation des einzusetzenden Webservice-Frameworks (JAX-WS, Axis 1+2)
Umstellung der gesamten JEE Anwendung von Spring 1 auf Spring 2
Aufsetzen der Infrastruktur und Implementierung von Integrationtesting in Containern (Tomcat und Jboss 4, je nach Anwendung) mittels Cargo
Einführung und Coaching von Tools zur Unterstützung von agilen Prozessen (Cruisecontrol)
Ablösung von ANT und Einführung von Maven 2 inkl. Coaching bei Fragen zur Modularisierung von großen JEE Anwendungen und Fragen zu Maven allgemein
Implementierung einer Vielzahl von Maven 2 Plugins und Bugfixing/Analyse von bestehenden Plugins
Frontendentwicklung mit JSP, JSTL und Abaxx (Struts-ähnlich)
Design & Entwicklung einer minimalen Abstraktionsschicht für das proprietäre Webframework zur Erleichterung des Unittestings von Frontend-Controllern
Einsatz von SCRUM im Projekt
Implementierung der Persistenzschicht für Hochverfügbarkeit der Portalanwendung mit Hibernate 2 und 3 (Upgrade im Laufe des Projektes)
Erstellung des Domainmodells in Java, Annotation mit JPA- und Hibernate-spezifischen Annotationen
Generierung des DB-Schemas aus dem Modell und Feintuning (Datenbanken: Oracle 9.2 und für Testzwecke: HSQLDB)
Implementierung von DAOs für die Business-Services u.a. mittels Spring-Templates
deklarative Transaktionssteuerung über Spring
Umstellung der Enterprise Applikation von JBoss 3 auf JBoss 4
Analyse und Beratung bei Classloader-Isolationen/Hierarchien im JBoss
Eclipse EMF + ECore Einsatz zur dynamischen Erzeugung einer DSL und Codegenerierung von Java Klassen mittels Eclipse JET2
Java-to-XML Binding mittels JAXB 2.x
Breiter Einsatz von XML Schema für Webservices und zur Definition von DSLs
XSLT für kleinere Transformationsaufgaben
Implementierung einer Loganalyse-Webanwendung mit Groovy und Grails
Tools & Umgebung:
Spring 1 + 2, Java 1.5, Maven 2 inkl Pluginentwicklung, ClearCase, XMLSpy, Eclipse 3, Rational Rose, UML, Omondo UML, JBoss 3 + 4, Apache Tomcat 5.5, JAXB, SOAP, JAX-WS, Axis 1+2, WS-Security, WS-I, SoapUI, SCRUM, Oracle 9.2 DB, HSQLDB, Hibernate 2+3, Eclipse EMF + ECore, XML Schema, XSLT, EasyMock, Cargo, Groovy, Grails
Weitere Projekte auf Anfrage
04/2000:
Ausbildung: Informatikstudium
Abschluss: Diplom-Informatiker FH
03/1998 ? 09/1998:
Institution: Infomatec AG Augsburg
Ausbildung: 2. Praxissemester
09/1996 - 03/1997:
Institution: Siemens-Nixdorf Augsburg
Ausbildung: 1. Praxissemester
10/1995 - 03/2000:
Institution: FH Augsburg
Abschluss: Diplom-Informatikstudium
11/1994 - 05/1995:
Institution: Universität Augsburg
Ausbildung: Studium der Physik
07/1993:
Abschluss: Allgemeinen Hochschulreife
09/1984 ? 07/1993:
Institution: Holbein-Gymnasiums Augsburg
09/1979 ? 07/1984:
Institution: Schillerschule in Augsburg
Java:
Umsetzung von komplexen Softwarelösungen in Java/J2EE
Android:
Umsetzung einer App zur Überwachung eines Trainingsgeländes [URL auf Anfrage]
C++:
Spezielle Vorlesung, sowie intensive Anwendung in einer 2-semestrigen Projektarbeit
Thema: Gerne auf Anfrage
UML:
Objektorientierter Analyse und Entwurf, vorwiegend mit Anwendung der Tools Together und Rational Rose, sowie Omondo Eclipse UML
Design Patterns:
Häufige Anwendung in allen OO-Softwareprojekten
HTML / JavaScript und Java Server Pages (JSP) /Servlets:
Einsatz in einer Vielzahl der Projekte, z.B. in der Web-Applikation ?SKL-Holzscheiter? der Firma Infomatec Media, dem Projekt Avanti und dem Projekt QEC-Tool, bei O2 und bei der KVB
Webapp-Standards:
Webapp-Standards:
Internet Protokolle:
HTTP, HTTPS, FTP, POP3, SMTP: Kenntnisse durch Einsatz von entsprechenden Java APIs bzw. Drittprodukte (Jetty, Tomcat, Servlets)
Datenbanken/Objektrelationale Mappingtools:
Enterprise Java Beans/ J2EE-Plattform:
Einsatz im:
Spring Framework (Version 1,2 & 3):
Vielfacher Einsatz und Einführung von Spring Core und begleitender Projekte (Spring Webflow, Spring Batch, Spring Dynamic Modules, Spring Integration, Spring Data)
J2EE Webserver:
Softwarearchitektur:
3D-Visualisierung:
XML Technologien und XML-Java Binding:
JSON:
Einsatz von Jackson zur Umsetzung einiger REST-APIs
Versionsverwaltung:
Buildsysteme / Continuous Integration:
Entwicklungs- Umgebungen / Case Tools:
Webservices / SOAP:
Unit- und Integrationtesting:
Erfahrung in agilen Methoden & Prozesse:
Beruflicher Werdegang:
02/2006 ? heute:
Rolle: Freiberuflicher Consultant
Aufgaben:
verschiedenen Projekten und Firmen
12/2005 ? 01/2006:
Kunde: Schüco
Aufgaben:
03/2002 ? 01/2006:
Kunde: CSC Ploenzke
Rolle: Application Designer
08/2005 ? 11/2005:
Kunde: AMB Generali
Aufgaben:
06/2004 ? 07/2005:
Kunde: DaimlerChrysler
Aufgaben:
03/2002?05/2004:
Kunde: WWK
Aufgaben:
11/2001 ? 02/2002:
Kunde: Arsdigita, jetzt RedHat
Rolle: Java Entwickler
Aufgaben:
06/2001 - 10/2001:
Kunde: Wistec GmbH Augsburg
Rolle: Java-Software-Entwickler
05/2000 ? 05/2001:
Kunde: Infomatec Media Augsburg
Rolle: Software ?Entwickler
03/1998 ? 09/1998:
Kunde: Infomatec AG Augsburg
Rolle: Freelancer
01/1998 - 01/1998:
Kunde: NCR Augsburg
Rolle: Freiberuflicher Berater/ Entwickler
Aufgaben:
DB Lösung in Access
06/1997 ? 09/1997:
Kunde: Diwa Montagen
Aufgaben:
Freiberufliches Projekt: Erstellung einer Mitarbeiter-/Kundenverwaltungsapplikation
09/1996 - 03/1997:
Kunde: Siemens-Nixdorf Augsburg
Rolle: Werkstudent
Praktika:
05/1995 - 09/1995:
Kunde: Siemens-Nixdorf
Rolle: Werkstudent
Aufgaben:
Praktikum
Zivildienst:
08/1993 ? 10/1994:
Malteser Hilfsdienst
Scala:
Auszeichnungen gerne auf Anfrage.
Architekturunterstützung, Senior Software Development, Clean Code Coaching, Unterstützung Development Prozessoptimierung
Erstellung einer Android App und einer Appengine Cloud Serverkomponente zur Überwachung von Öffnungszeiten eines Sport-Trainingsgeländes
Überwachung des Öffnungsstatus mittels Spring MVC Anwendung innerhalb einer Google Appengine Anwendung und Veröffentlichung der Informationen als REST-Service
Dynamische Push Benachrichtigung vom Server zu den Androiddevices mittels C2DM/GCM
Senior Software Development & Technology Consultant mit Java 11, Spring Boot, Kafka, Microservices, Docker, OpenShift und Kubernetes
Senior Software Development mit Scala in AWS mit Microservices
Senior Software Development und Architekturberatung in einem Big Data Projekt
Einführung Big Data Pipelines auf Basis Apache Kafka / Confluent Open Source Platform bei einer großen Internetplattform
Neuimplementierung einer großen internetbasierten KFZ Verkaufsplattform mittels Microservices auf Scala und AWS Cloudbasis
Architektur und Entwicklung von Microservices und Textähnlichkeitsanalysen für helpster.de (werbebasierte Internetseite mit redaktionellem Content)
Architektur und Entwicklung eines Microservices der bei der Erstellung von neuen Artikeln im CMS System unterstützt:
Ermittlung von relevanten Keywords mittels WDF/IDF Algorithmus aus einem sehr großen Datenbestand mittlels Apache Spark um das Google Ranking von Artikeln zu verbessern und damit die Artikelerstellung zu optimieren. Umsetzung von REST Schnittstelle und einer AngularJS UI für Use-Cases im Bereich WDF-IDF
Microservice mit REST Interface für die Ermittlung von verwandten helpster Artikeln und Gutefrage.net Content unter Verwendung von Elasticsearch (More like this)
Microsservice der eine interne Suche auf Basis von Elasticsearch mit zahlreichen erweiterten Features anbietet (Synonymunterstützung, verschiedene Autokorrekturen der Eingabe) zur Ablösung der vorher verwendeten Google Suche
Automatisierter Erkennung und Clustering von ähnlichen Dokumenten (Near Duplicate Content) mittels MLT von Elasticsarch und Clusteringverfahren (k-means, DBSCAN) sowie mittels LDA (Latent Dirichlet Allocation)
Einführung von Continuous Integration/Deployment in den neu entwickelten Scala Microservices
Scala Coaching und Coaching der Architektur für Microservices der internen Mitarbeiter
Architektur- und Prozessberatung in mehreren Bereichen
Beratung zur Einführung von Microservices inkl. Serviceauthentifizierung
Unterstützung und Coaching bei der Umstellung auf Java 8 mit funktionalen Paradigmen
Einführung eines distributed In-Memory-Datagrids (Infinispan) für das Caching von zeitintensiven Backendcalls
Optimierung der Continuous Integration Pipeline und Beratung zur Optimierung hin in Richtung Continuous Deployment
Software-Review Prozessoptimierung
Mitwirkung bei dem Umbau eines rein PHP basierten Frage/Antwort - Forums auf eine Scala basierte Microservicearchitektur im High Traffic Bereich
Scala Software Development in den Services
Konzept und Umsetzung für die Wiederverwendung von allgemeinen Komponenten in den Services inkl. Einführung von Dependency Injection
Miterstellung der neuen Softwarearchitektur
API Thrift Design der Services
REST-Design der öffentlichen API
Konzeption der Authentifizierung und Authorisierung mittels JWT Tokens
Miteinführung von NoSQL (Redis) zur Speicherung von Accesstokens
Einarbeitung und Coaching auch neuer Mitarbeiter
Etablierung des Continuous Delivery Prozesses
regelmässige Servicereleases (weniger als 15 min nach Checkin) mit Zero Downtime
Mehrschichtige Testing- und Buildpipelines zur Qualitätssicherung mit automatisiertem Testing
Architektur und Mitentwicklung einer Android App für die führende Frage-Antwort Plattform in Deutschland
Durchführung einer Machbarkeitsstudie und eines Prototyps für die Umsetzung einer Android App mit Scala 2.11
Coaching des Teams bzgl. Scala & Android
Umsetzung der wichtigsten Basiskonzepte (z.B. Dependency Injection, Retries bei Verbindungsabrüchen zum Server u.v.m) der App
Einrichtung eines Continuous Integration Prozesses
Mitentwicklung bei allen Usecases der App
Interview mit mir bzgl. Scala auf Android: [URL auf Anfrage]
Realisierung eines EBook Shops für den E-Ink Reader Tolino Shine
Softwarearchitektur und Umsetzung der neuen Geschäftsprozesse
MongoDB 2 Persistenz für Kundenprofilinformationen mit Spring Data sowie Anbindung der bestehenden Oracle DB
Authentifizierung und Authorisierung durch Eigenimplementierung eines OAUTH2 Providers mit JSON Web Token (JWT)
Rest-API für bestehende und neue Services mit Resteasy
Umsetzung einer ESB-ähnlichen (Enterprise Service Bus) Applikation mit Spring Integration für die asynchrone Verarbeitung von Requests wie z.B. Bestellungen, digitale Auslieferungen, Abfragen der E-Bibliothek, Supportanfragen für das CCC/SAP u.v.m.
Messaging mittels MQ Series und HornetQ
Coaching und Aufbau einer Continuous Delivery Build Pipeline
Durchführung eines eintägigen Workshops zum Thema Versionsverwaltung mit GIT inkl. Beratung zur Migration.
Technologische Beratung, Architektur, Coaching und Umsetzungstätigkeit bei einem Portal für Versicherungsvergleiche
Erstellung der Architektur und Beratung bei der Konzeption für ein neues Modul/eine neue Anwendung auf Basis neuer Technologien, die schrittweise auch die auf veralteten Technologien (WebObjects) basierenden Anwendungen ablösen
Beratung bei der Einführung der Versionsverwaltung GIT (Umstieg von CVS)
Einführung von Continuous Integration und Testdriven Development
Coaching eines Entwicklers und Mitentwicklung (Pair-Programming) bei der Umsetzung des gesamten Projekts „Medienverteiler“, einer JEE Backendanwendung mit Swing GUI auf dem Client die u.a. zur Verwaltung der Empfänger von BG-ETEM Medien verwendet wird.
Erstellung einer personalisierten, cloudfähigen Blogsoftware mit Schnittstellen zu verschiedenen Plattformen
Technologieberatung und Kurzvorträge/Tutorials für Entwickler
SCRUM - Einführung und Prozessberatung
Refactoring und Bereinigung der Architektur und des Build- & Deploymentprozesses
Design und Implementierung neuer Features
Anbindung von Drittsystemen mittels Webservices (Spring WS)
Analyse und Lösung von bestehenden Problemen im Bereich Memoryleaks (PermGen Space), sowie beim Loadbalancing der geclusterten Anwendung
Neuimplementierung und Refactoring eines kommentierbaren Activityfeeds einer großen Social Network Plattform mit extremen Near-Realtime und Performanceanforderungen
Implementierung einer Kommentarfunktionalität der Statusmeldungen innerhalb des Activityfeeds mit Darstellung für alle Benutzer in Fast-Echtzeit
Anbindung von Drittsystemen mittels Batchverarbeitung, EJB und Webservices
Umsetzung von Workflows mit JBPM
Umsetzung der Business Logik unter Verwendung von austauschbaren OSGI -Bundles
Optimierung der Roundtripzeiten bei der Entwicklung
Mitwirkung beim Refactoring des Loyality Cores (Reduzierung von DTOs, Verwendung eines einheitlichen Domainmodels mit Hibernate Mappings auch bei internen Schnittstellen)
Unterstützung bei der Einführung des funktionalen Testframeworks „Fitnesse“ zur Umsetzung von Akzeptanztests (auch automatisiert im Rahmen des CI-Prozesses)
Beratung zur Verbesserung der Continuous Integration Umgebung inkl. Umsetzung: Ablösung von Cruisecontrol, Umstellung auf Hudson
Refactoring, Erweiterung und Fertigstellung einer komplexen Loyality Plattform auf JEE Basis für ein europäisches Land bestehend aus Internetshop, Callcenter-App und Backendimplementierung für die Prozess- und Workflowunterstützung und Module für die Batch- und Jobverarbeitung.
Mai 2008 ? Dezember 2008
Rolle: Senior Developer, Berater in Architektur & Technologiefragen, Spring & Webservice Experte
Kunde: KVB
Standort: München
Komplette Neuimplementierung inkl. Refactoring der technischen Architektur eines Dokumentenverwaltungs- und Dokumentenworkflowsystems (Webanwendung) auf IOC Konzepte und Spring Webflow.
Verbesserung der Wart- und Testbarkeit von bestehenden Bibliotheken und Realisierung der Anwendung mit Spring 2.5 und Spring Webflow unter Einsatz von AspectJ Features.
Umsetzung von zahlreichen neuen fachlichen Anforderungen, inkl. Implementierung mehrerer neuer Workflows
Einführung von Spring Security 2 für das Berechtigungskonzept der Anwendung & Coaching der internen Mitarbeiter
Einführung von Ajax Technologien für eine Rich UI mittels Spring-Javascript und Dojo
Einrichten eines Continuous Integration Servers (Hudson) inkl. Reporting
Implementierung einer Anwendung zur Synchronisation zweier Datenbanken mit unterschiedlichen Schematas:
Das Datenbankschema des Dokumenten-workflowsystems musste aufgrund fachlicher und gesetzlicher Anforderungen angepasst werden, dabei wurden die Daten migriert, ein Teil der Anwendungen musste jedoch noch auf dem alten Schema (und damit der alten DB-Instanz) arbeiten
Design und Implementierung der Synchronisationsanwendung mit Hibernate 3.3, JPA Annotations auf Oracle 10g
Optimierungen in Hinblick auf Massendatenverarbeitung der Dokumente
Massiver Einsatz von AspectJ zusammen mit Spring 2.5 für verschiedenste Bereiche der Anwendung
Einsatz von DBUnit und HSQLDB für automatisiertes Integrationtesting inkl. Integration von Testcoveragetools in den Buildprozess
Spring Batch mit Quartz als Batch-Execution Wrapper
Integration von JMX und Spring`s JMX-Support zur Fernwartung mittels JConsole
Architektur und Implementierung (Durchstich) eines Frameworks für automatisiertes Functional Testing von Webapplikationen auf Basis von Selenium, Maven2 und Jetty
Technische Beratung zu den Themen Spring, Maven 2, Schnittstellendesign, Webservices und modularsierter Architektur
Einführung eines Bugtracking- und Releasemanagement-Prozesses für die Zusammenarbeit der Entwicklungsteams untereinander und mit den Fachbereichen basierend auf JIRA
Tools & Umgebung:
Spring 2.5 (z.b. Spring AOP, AspectJ, Transactionmanagment, Spring ORM, Spring Testframework), Spring Webflow 2.0, Spring Security 2.0, Spring Batch 1.1, Apache Tomcat 6, Eclipse 3.3 & 3.4, Enterprise Architect, UML, Java 1.6, AspectJ, Oracle 10, HSQLDB (für Integrationtesting), DBUnit, Hibernate 3.3, JPA Annotations, Maven 2, Cobertura, Emma, Junit 4.4, EasyMock, Spring Batch, Hudson CI Server, Continuum CI Server, JIRA, FindBugs, Selenium, Jetty 6.1, Ajax (Dojo, Spring-Javascript)
Februar 2006 ? April 2008
Rolle: Senior Developer & Architekt
Kunde: O2
Standort: München
Dauer: 24 Monate
Hauptaufgabe: Implementierung und technische Architektur des Middletiers für die Anbindung des neuen CRM-Systems an die Portallandschaft bei O2.
Anbindung des Backend CRMs mittels Webservices und Contract-First Ansatz
Fachliches und technisches Design der Webservice-Schnittstelle, die das Backendsystem implementieren muss
JAX-WS 2.x
Nachrüsten der fehlenden Validierungsfunktionalität in JAX-WS für Rpc/Literal und Document-/Literal&Wrapped-Webservices
Einbau von WS-I (Web Services Interoperability)-Validierung im Buildprozess mittels Maven-Plugin
Integration von WS-Security (OASIS Simple Username Token Profile)
JAXB 2.x
Mitwirkung bei der Konzeption und der technischen Architektur der Service-, Persistenzschicht sowie bei der Anbindung der Backends (z.B. CRM).
Einsatz von UML und entsprechenden Tools (Rational Rose, Omondo UML)
Massiver Einsatz von Spring 1 und Spring 2 im gesamten Middletier und Frontend:
JMX-Bean-Exposing, Transaktionssteuerung, Interceptoren, Aspektorientierung mit Spring 1 AOP und AspectJ (nach Spring 2 Umstellung), Dependency Injection auch bei von Legacy-Frameworks (z.B. Abaxx) erzeugten Objekten, Spring Testsupport, Spring ORM
Implementierung von Business-Services als POJOs und Remoting per EJB über Stateless Session Beans mit Spring-Unterstützung
Unittesting mit Einsatz des Mockframeworks EasyMock zum Mocken von Abhängigkeiten der zu testenden Klasse
Implementierung von Webservice-Endpoints mittels JAX-WS, die anderen Systemen zur Verfügung gestellt werden
Analyse und Evaluation des einzusetzenden Webservice-Frameworks (JAX-WS, Axis 1+2)
Umstellung der gesamten JEE Anwendung von Spring 1 auf Spring 2
Aufsetzen der Infrastruktur und Implementierung von Integrationtesting in Containern (Tomcat und Jboss 4, je nach Anwendung) mittels Cargo
Einführung und Coaching von Tools zur Unterstützung von agilen Prozessen (Cruisecontrol)
Ablösung von ANT und Einführung von Maven 2 inkl. Coaching bei Fragen zur Modularisierung von großen JEE Anwendungen und Fragen zu Maven allgemein
Implementierung einer Vielzahl von Maven 2 Plugins und Bugfixing/Analyse von bestehenden Plugins
Frontendentwicklung mit JSP, JSTL und Abaxx (Struts-ähnlich)
Design & Entwicklung einer minimalen Abstraktionsschicht für das proprietäre Webframework zur Erleichterung des Unittestings von Frontend-Controllern
Einsatz von SCRUM im Projekt
Implementierung der Persistenzschicht für Hochverfügbarkeit der Portalanwendung mit Hibernate 2 und 3 (Upgrade im Laufe des Projektes)
Erstellung des Domainmodells in Java, Annotation mit JPA- und Hibernate-spezifischen Annotationen
Generierung des DB-Schemas aus dem Modell und Feintuning (Datenbanken: Oracle 9.2 und für Testzwecke: HSQLDB)
Implementierung von DAOs für die Business-Services u.a. mittels Spring-Templates
deklarative Transaktionssteuerung über Spring
Umstellung der Enterprise Applikation von JBoss 3 auf JBoss 4
Analyse und Beratung bei Classloader-Isolationen/Hierarchien im JBoss
Eclipse EMF + ECore Einsatz zur dynamischen Erzeugung einer DSL und Codegenerierung von Java Klassen mittels Eclipse JET2
Java-to-XML Binding mittels JAXB 2.x
Breiter Einsatz von XML Schema für Webservices und zur Definition von DSLs
XSLT für kleinere Transformationsaufgaben
Implementierung einer Loganalyse-Webanwendung mit Groovy und Grails
Tools & Umgebung:
Spring 1 + 2, Java 1.5, Maven 2 inkl Pluginentwicklung, ClearCase, XMLSpy, Eclipse 3, Rational Rose, UML, Omondo UML, JBoss 3 + 4, Apache Tomcat 5.5, JAXB, SOAP, JAX-WS, Axis 1+2, WS-Security, WS-I, SoapUI, SCRUM, Oracle 9.2 DB, HSQLDB, Hibernate 2+3, Eclipse EMF + ECore, XML Schema, XSLT, EasyMock, Cargo, Groovy, Grails
Weitere Projekte auf Anfrage
04/2000:
Ausbildung: Informatikstudium
Abschluss: Diplom-Informatiker FH
03/1998 ? 09/1998:
Institution: Infomatec AG Augsburg
Ausbildung: 2. Praxissemester
09/1996 - 03/1997:
Institution: Siemens-Nixdorf Augsburg
Ausbildung: 1. Praxissemester
10/1995 - 03/2000:
Institution: FH Augsburg
Abschluss: Diplom-Informatikstudium
11/1994 - 05/1995:
Institution: Universität Augsburg
Ausbildung: Studium der Physik
07/1993:
Abschluss: Allgemeinen Hochschulreife
09/1984 ? 07/1993:
Institution: Holbein-Gymnasiums Augsburg
09/1979 ? 07/1984:
Institution: Schillerschule in Augsburg
Java:
Umsetzung von komplexen Softwarelösungen in Java/J2EE
Android:
Umsetzung einer App zur Überwachung eines Trainingsgeländes [URL auf Anfrage]
C++:
Spezielle Vorlesung, sowie intensive Anwendung in einer 2-semestrigen Projektarbeit
Thema: Gerne auf Anfrage
UML:
Objektorientierter Analyse und Entwurf, vorwiegend mit Anwendung der Tools Together und Rational Rose, sowie Omondo Eclipse UML
Design Patterns:
Häufige Anwendung in allen OO-Softwareprojekten
HTML / JavaScript und Java Server Pages (JSP) /Servlets:
Einsatz in einer Vielzahl der Projekte, z.B. in der Web-Applikation ?SKL-Holzscheiter? der Firma Infomatec Media, dem Projekt Avanti und dem Projekt QEC-Tool, bei O2 und bei der KVB
Webapp-Standards:
Webapp-Standards:
Internet Protokolle:
HTTP, HTTPS, FTP, POP3, SMTP: Kenntnisse durch Einsatz von entsprechenden Java APIs bzw. Drittprodukte (Jetty, Tomcat, Servlets)
Datenbanken/Objektrelationale Mappingtools:
Enterprise Java Beans/ J2EE-Plattform:
Einsatz im:
Spring Framework (Version 1,2 & 3):
Vielfacher Einsatz und Einführung von Spring Core und begleitender Projekte (Spring Webflow, Spring Batch, Spring Dynamic Modules, Spring Integration, Spring Data)
J2EE Webserver:
Softwarearchitektur:
3D-Visualisierung:
XML Technologien und XML-Java Binding:
JSON:
Einsatz von Jackson zur Umsetzung einiger REST-APIs
Versionsverwaltung:
Buildsysteme / Continuous Integration:
Entwicklungs- Umgebungen / Case Tools:
Webservices / SOAP:
Unit- und Integrationtesting:
Erfahrung in agilen Methoden & Prozesse:
Beruflicher Werdegang:
02/2006 ? heute:
Rolle: Freiberuflicher Consultant
Aufgaben:
verschiedenen Projekten und Firmen
12/2005 ? 01/2006:
Kunde: Schüco
Aufgaben:
03/2002 ? 01/2006:
Kunde: CSC Ploenzke
Rolle: Application Designer
08/2005 ? 11/2005:
Kunde: AMB Generali
Aufgaben:
06/2004 ? 07/2005:
Kunde: DaimlerChrysler
Aufgaben:
03/2002?05/2004:
Kunde: WWK
Aufgaben:
11/2001 ? 02/2002:
Kunde: Arsdigita, jetzt RedHat
Rolle: Java Entwickler
Aufgaben:
06/2001 - 10/2001:
Kunde: Wistec GmbH Augsburg
Rolle: Java-Software-Entwickler
05/2000 ? 05/2001:
Kunde: Infomatec Media Augsburg
Rolle: Software ?Entwickler
03/1998 ? 09/1998:
Kunde: Infomatec AG Augsburg
Rolle: Freelancer
01/1998 - 01/1998:
Kunde: NCR Augsburg
Rolle: Freiberuflicher Berater/ Entwickler
Aufgaben:
DB Lösung in Access
06/1997 ? 09/1997:
Kunde: Diwa Montagen
Aufgaben:
Freiberufliches Projekt: Erstellung einer Mitarbeiter-/Kundenverwaltungsapplikation
09/1996 - 03/1997:
Kunde: Siemens-Nixdorf Augsburg
Rolle: Werkstudent
Praktika:
05/1995 - 09/1995:
Kunde: Siemens-Nixdorf
Rolle: Werkstudent
Aufgaben:
Praktikum
Zivildienst:
08/1993 ? 10/1994:
Malteser Hilfsdienst
Scala:
Auszeichnungen gerne auf Anfrage.
Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.
Bitte beachten Sie, dass weiter entferntere Projektstandorte auf keinen Fall in Frage kommen, außer sie lassen 80% remote oder mehr zu (oder alternativ alle 2 Wochen 2 Tage vor Ort, Rest remote).