I am happy to send you my CV in Word Format. Please contact me for that.
Diplom Informatiker (FH)
Chris Wewerka
Project Overview
|
May 2024 – current
Role: Senior Developer Customer: Otto.de
|
Feature implementation, refactoring, and technology consulting in a microservice environment for a large German e-commerce platform
• Implementation and review of user stories from the business department • Refactoring of existing code • Coaching for using functional paradigms • Technology consulting
Tools, Libraries, and Environment:
Scala 2.13, Spring, Spring Boot, MongoDB, GitHub, AWS, Docker, Gradle, TestNG, Scalatest, Jenkins, Scrum, Pair Programming, Test-Driven Development, Test-Driven Development, HTML+CSS, Javascript, Typescript, Karma, Jest
|
November 2023 – March 2024
Role: Lead Developer Customer: Hays AG
|
Implementation, refactoring and team leading for the completion of a recruiting web application
• Implementation and review of user stories • Refactoring of existing code • Teaching of test-driven concepts + Scala best practices to the development teams • Coaching of the development teams • DevOps support for the creation of Azure build pipelines
Tools, Frameworks and Environment
Scala 3.3, SBT, Cats Effect, doobie, Postgres, Flyway, Tapir, OpenAPI, Github, Azure, Docker
|
October 2023
|
Completing the course “Python for Data Science and Machine Learning Bootcamp”
Certificate
Tools, Frameworks and Environment
Python 3.11, Anaconda, PyCharm, NumPy, Pandas, Matplotlib, Seaborn, Neural Nets, TensorFlow, NLP, Spark with Python
|
May 2022 – September 2023
Role: Senior Developer, Technology Consultant, Architect Customer: T-Systems
|
Rewrite of a whole service, Refactoring and Implementation of new features of a microservice architecture in an IoT environment.Technical and architectural consultancy.
• Refactoring of blocking persistence to non blocking with ZIO 1 • Complete rewrite of a geolocation microservice from Spring Boot/Java to Scala 3 with ZIO 2 and Tapir • Architectural concept for async event-driven communication between microservices instead of synchronous REST calls • Review of the architecture and implementation of improvements • Further development and bug fixing of microservices for IoT device synchronization + geolocation determination based on Java, Spring Boot and Apache Camel • Integration of the new implementation of the geolocation service with feature toggles in the service for device synchronization • Implementation of monitoring possibilities with Prometheus metrics and OpenTelemetry support with Jaeger UI
Tools, Frameworks and Environment
Java11+17+21, Apache Camel, Spring Boot, Scala 2.13 and 3.3, SBT, Kubernetes, Helm, Docker, Gitlab, ZIO 1 + 2, Tapir, sttp, http4s, Circe, OpenAPI, Swagger, REST, Json, MongoDB, Kafka, Prometheus, Open Telemetry, Jaeger
|
December 2021 – June 2022
Role: Senior Developer, Technology Consultant Customer: Ryte
|
Refactoring of a microservice architecture for mass analysis of websites
• reimplementing microservice (e.g. persistence) • connecting Keycloak/OAuth to Microservices • Technology Consultancy in the area of Kafka, Scala, Microservices and ZIO
Tools, Frameworks and Environment
Scala, SBT, AWS, DynamoDB, ECS, Docker, Akka, Scanamo, Keycloak, Oauth, ZIO, Circe, Swagger
|
August 2021 – December 2021
Role: Senior Developer, Technology Consultant, Coach Customer: autoscout24
|
Further development of a high traffic ecommerce website
• Implementation of feature requests and big fixes in several microservices e.g. Integration of machine learning models in elasticsearch to improve the search and for better recommendations (Learning to Rank, LTR) • Removal and consultancy for technical debts • Evaluation of Apache Flink • Improvements and bug fixes in Kafka Streams apps • Enhancement of GraphQL APIs with Sangria Lib • Coaching of new team members in Scala, Kafka, Elasticsearch and more
Tools, Frameworks and Environment
Scala, SBT, Play Framework, Apache Flink, AWS Kinesis Data Analytics, Datadog, AWS (DynamoDB, EC2), JDK11, JDK17, GraphQL, REST, Elasticsearch 7.5, Typescript, Akka Streams, Sangria
|
Mai 2021 – August 2021
Role: Architect, Senior Developer, Technology Consultant
|
Technical architecture concept and setup of a Microservice Environment (Proof of Concept) for a High Traffic Online Website for stock information
• Implementation of a POC with several microservices in Kotlin • Technical consultancy in Kotlin, Kafka, Kubernetes and Public Clouds
Tools, Frameworks and Environment
Kotlin, Spring Boot, Spring Webflux, JDK11, IntelliJ, Kafka, Docker, Openshift, Grafana, ArgoCD, Prometheus, Micrometer, Docker, Docker Compose, Kubernetes, Rancher, Jenkins
|
April 2020 – Mai 2021
Role: Architect, Senior Developer, Technology Consultant
|
Update and Extension of an Open Source Video Conference Tool (Big Blue Button)
Tools, Frameworks and Environment
Scala 2.13, SBT, GIT, JDK11, Java 11, Grails
|
April 2020 – March 2021 Role: Architect, Senior Developer, Technology Consultant, Coach
|
Software Architecture Support, Senior Software Development, Clean Code Coaching, Support optimizing the development process for the development of bench scale bioreactors
• Refactoring of code with focus on testability and Clean Code principles • Implementation of unit tests • Analysis and fix of JVM and OS memory leaks, with Know How transfer and documentation • Evaluation and Switch to OpenJDK11 • Support of the software architect for the bioprocess product • GIT Pull Request Workshop • Coaching of the team: TDD and Clean Code mentality • Architecture Documentation with Arc42 • Presentation of the teams achivements
Tools, Frameworks and Environment
Scala 2.12, SBT, Arc42, GIT, Gerrit, Scrum, Akka, Akka Actors, Akka Streams, Clean Code, TDD, Mockito, UML, OpenJDK11, Evaluation of ZIO
|
May 2019 – December 2019 Role: Senior Developer, Technology Consultant, DevOps
|
Senior Software Development & Technology Consultant with Java 11, Spring Boot, Kafka, Microservices, Docker, OpenShift and Kubernetes
-
Implementing an Order Workflow as a Spring Boot Microservice for Truck Toll Systems based on data in Kafka Topics. Using advanced Kafka Streams concepts like Processors (Punctuator) to make the process steps resilient.
- Implementation of microservices with Deployment as docker container to OpenShift
-
Setup of Gitlab and Gitlab Runners on Kubernetes/ Google Cloud to improve developer performance
-
Implementation and Coaching of the team for a DevOps mentality during development: Logging, Metrics, Alerting
- Documentation with Arc42
Tools, Frameworks and environment
Java 11, Spring Boot, Kafka, Docker, Openshift, Google Cloud Kubernetes Engine, Google Cloud Storage, Gitlab, Kibana, Prometheus, Grafana, Arc42
|
December 2018 - April 2019 Role: Architect, Senior Developer, DevOps
|
Senior Software Development with Scala in AWS with Microservices • Implementation of user stories of a B2C Direct Sale Microservice Application in Scala based on AWS and docker. Use case: enabling customers to sell their used cars directly to car dealers • Connection to Salesforce CRM via S3 (XML) with AWS Lambda in Scala • Technology consulting for Kafka usage • Connection to relational database AWS Aurora (MySQL) via doobie library • Monitoring and Alerting via AWS Cloudwatch and Datadog • Continuous Deployment via Jenkins
Tools, Frameworks and Environment
Scala 2.12, AWS, AWS Lambda, Microservices, Doobie, Slick, AWS MySQL Aurora, Jenkins, AWS Cloudwatch, Datadog, docker, Testcontainer
|
April 2017 - December 2018 Role: Architect, Senior Developer, DevOps
|
Senior Software Development, DevOps and Architecture Consultancy in a Big Data / Machine Learning Project on AWS • Implementing different microservices on Kafka Realtime Features basis ◦ Kafka Stream Apps ◦ Kafka Connect (Source + Sink) ◦ Interactive Queries ◦ KSQL • ETL of Google Ad-Daten via Spark • Realtime Streaming, Normalising and Enhancement of Ad-Click DFP Data to Apache Kafka via Implementing custom Kafka Connectors and proccessing of that data via Kafka Streams Microservices • Realtime Sessionizing of User Interactions on a website for usage in Machine Learning Algorithms • Implementation of a Kafka / Interactive Query REST Service for providing user profiles enhanced with Machine Learning Algorithms • Dockerising Kafka Connect Import Modules and Kafka Stream Apps • Integration testing of Kafka connectors and Kafka Streaming Apps via Landoop Docker Kafka Environment and Coyote Integrationstests. Integration in CI/CD Process based on Docker, Gitlab and Rancher • Adaption, Bugfixing + Pull Request for the OpenSource JDBC Kafka Connector to make it usable for big MySQL databases: https://github.com/confluentinc/kafka-connect-jdbc/pull/269 • Realtime Transfer of text (news articles) from a big MySQL DB to an Apache Kafka Topic (incl. Updates in realtime) • Consultancy for creating build processes for Scala + SBT • Monitoring of the Kafka Connect + Kafka Stream Apps • CO-Development of a Maschine Learning Recommendation Application based on PredictionIO • CO-Implementation + Improvment of the Open Source Project PredictionIO written in Scala (Recommender): ◦ https://github.com/apache/predictionio/pull/495 ◦ https://github.com/actionml/universal-recommender/pull/62 • Setup, Configuration and Performance improvements of a Spark Standalone Clusters on AWS Maschine
• Creation of AWS EC2 Machine Images with Terraform
Tools, Frameworks and Environment
Scala 2.11 + 2.12, Akka, SBT, Kafka 0.10.2 – 1.0.0, Confluent Platform 3.2.x – 4.0, Kafka Connect, Kafka Streams, GIT, Gitlab, Docker, Docker Compose, Rancher, Apache Spark 2.3.1, Landoop, Coyote, Play Framework, Avro, MySQL, Amazon Web Services, PredictionIO Recommender, Machine Learning, Terraform
|
August 2017 – December 2017 Role: Big Data Architect & Consultant Customer: gutefrage.net
|
Installment of a Big Data Pipeline based on Apache Kafka / Confluent Open Source Platform for a big internet Q+A platform • Integration of different data sources to Kafka via Kafka Connect ◦ Rabbit MQ ◦ HDFS / Hadoop ◦ MySQL DB • Save topic data to HDFS • Normalize and Enhancement of RAW-Data via Introduction of Schema Registry + AVRO Format • Coaching of Employees in Scala and Kafka concepts
Tools, Frameworks and Environment
Scala 2.11 + 2.12, SBT, Kafka 0.10.2 – 1.0.0, Confluent Platform 3.2.x – 4.0, Kafka Connect, Kafka Streams, GIT, Jenkins, Docker, Docker Compose, Mesos, Aurora, Landoop, Coyote, Play Framework, AVRO, MySQL
|
Mai 2015 – Juni 2017 Rolle: Architekt, Senior Developer, Coach Kunde: autoscout24 |
Neuimplementierung einer großen internetbasierten KFZ Verkaufsplattform mittels Microservices auf Scala und AWS Cloud
- Coaching
- Scala Coaching
- Technology Coaching
- Softwaredesign + Test Driven Development Coaching
- Mitentwicklung eines Preisbewertungstools für gebrauchte KFZ (Backend + Frontend)
- Performanceanalyse und Optimierungen beim Umstieg auf JDK 8
- Performanceoptimierungen und Monitoring von Microservices und deren Verwendung von Amazon Services (z.B. DynamoDB, Autoscaling)
- Abstimmung mit AWS Technology Managern
- Aufbau und Softwaredesign von Microservices (Template für Microservices)
- REST API Design für Backendservices der KFZ Suche
- Frontendentwicklung
- Umsetzung der Infrastuktur für Consumer Driven Contract Testing
- Implementierung Realtime Pipeline der Suche mittels Akka, Akka Streams und Kafka
- High Availabilty, Resilience und Failover Konzeption der traffic-stärksten Seiten/Microservices bei AS24 ( bis zu 20.000 req/min)
- Entwicklung und Betreuung einer Scala Bibliothek für das Erzeugen von strukturierten Events (CQRS Ansätze) aus Microservices
- Implementierung und Betreuung eines Feature-Switching Tools (featurebee, Open Source: https://github.com/AutoScout24/featurebee-scala)
- Aufbau von Microservices für die Registrierung und das Versenden von mobilen Push Registrierungen mit Amazon Dynamo DB und SQS
Tools und Umgebung Scala 2.11, Akka, Akka Streams, Akka Actors, AWS (Amazon Webservices), SBT, Elasticsearch, Kafka, GIT, Oracle DB, Play Framework, Dropwizard Metrics, GOCD (Continuous Development Tool), HTML, Javascript, Ruby, Docker
|
Dezember 2014 – April 2015
Rolle: Architekt, Developer, Coach
Kunde helpster.de
|
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
Tools und Umgebung
Big Data: Apache Spark, Elasticsearch, Hadoop, Scala 2.10 + 2.11, SBT, GIT, MySQL, Chef, Ruby, AngularJS, Bootstrap, Spray, Textähnlichkeitsanalysen mit Latent Dirichlet Allocation, Clusteringverfahren (k-mean, DBSCAN)
|
Oktober 2014 – November 2014
Rolle: Architekt, Developer, Coach
Kunde O2
|
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
Tools und Umgebung
Java 8, Spring 4, Maven, Infinispan Cache, Crucible, Tomcat 7, GIT, Jenkins
|
Juni 2013 – September 2014
Rolle: Architekt, Developer, Coach
Kunde: gutefrage.net
|
Mitwirkung bei dem Umbau eines rein PHP basierten Frage/Antwort - Forums auf eine Scala basierte Servicearchitektur 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
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: http://erika23.gutefrage.net/2014/05/22/java-oder-scala-wie-man-sich-fur-eine-sprache-entscheidet/
Tools und Umgebung
Scala 2.10-2.11, Twitter Finagle Stack, Linux, Intellij, Redis, MySQL, Memcache, GIT, Jenkins, Rabbit MQ, Spring AMQP, Apache Thrift, MySQL, NoSQL, JWT, Scalatest, Mockito, SBT, MogileFS, DI mittels CakePattern, Android 4.0 – 4.4, SBT
|
Januar 2011 – Mai 2013
Rolle: Senior Developer, Architect, Scrum Master & Technology Consultant
Kunde: Weltbild
|
Projekt Panther (Tolino):
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
Projekt FIT:
Anbindung eines großen deutschen Internetshops für Bücher, DVDs etc. an ein neues CRM- und Auftragsverwaltungssystem
-
Erstellung eines neuen annotationsbasierten Frameworks zur Kommunikation zwischen dem PHP Frontend und der Java Backend Schicht
-
Implementierung von performanten Exporten in JEE und JMS mittels HornetQ
-
Transaktionale Anbindung von JMS (MQ Series) basierten Artikelimports in die Artikel DB des Webshops inkl. Integration von Monitoring der Queues und Dead-Letter-Queues innerhalb der Anwendung mit RESTful HTTP
-
Vereinfachung der Architektur und der Infrastruktur in der Mittelschichts- und Produkt-Informationsanwendung
-
Anbindung der Bestellabwicklung des Shop Backends per SOAP Webservices an neues CRM/Auftragsverwaltungssystem
-
Einführung von neuen Testkonzepten und Testmöglichkeiten im Produktinformationssystem
-
Technologische Beratung und Etablierung eines Prozesses für die Verbesserung der technischen Architektur
-
Einführung eines Tools (Flyway) zur Versionierung und automatisierten Erweiterung des Datenbankschemas zur Optimierung und Vereinfachung des Anwendungs-Deployments hin in Richtung Continuous Deployment
-
Optimierung der Testbarkeit der Shopanwendung durch lokale Build-Datenbanken und schneller In-Memory-DBs
-
Erstellen von Schnittstellen und deren Beschreibung zu anderen Systemen
-
Verbesserung des Continuous Integration und Einführung eines Continuous Deployment Prozesses
-
Einführung von Functional Testing der Mittelschichtsanwendung mit simulierten JSON Requests des Frontends und komplettes Testing inkl. PHP Frontend mit Selenium 2
-
Coaching und Durchführung von Schulungen der Mitarbeiter (z.B. GIT mit SVN) und Weitergabe von technischem Know How
-
Durchführung von Architektur- und Codereviews
-
SCRUM Master für ein Entwicklungsteam
-
Optimierung der Abläufe und Scrumprozesse (Beratung im Bereich agiler Methoden)
-
Fehlerbereinigung eines Regelwerks zur Warenkorbvalidierung auf Basis Visual Rules (Rule Engine) und Anbindung an den Internetshop nach Refactoring und Kapselung des alten Validierungscodes
Refactoring und Neuentwicklung der Suchfunktionalität (Basis Apache Lucene) des Webshops
-
Implementierung der Clusterfähigkeit der Suchagenten und Crawler
-
Verteilung von Delta-Indices im Suchcluster
-
Monitoring der Suchanwendung mittels RESTful http
Tools & Umgebung:
Apache CXF, SOAP Webservices, WS-Reliable Messaging, WS-Addressing, SoapUI, JBOSS 4.3, JEE5, Spring 3.1, IBM DB2, Oracle 11g, H2 DB, JUnit, Linux, Jenkins/Hudson Continuous Integration Server, Continuous Deployment, Mockito, JMS, HornetQ, Eclipse, GIT, Subversion, Hibernate, JPA, Maven, Ant, Cargo, Flyway, Jira, Crucible, Scrum, SAP, VisualRules 5.1 (RuleEngine), Apache Lucene 3.4, JGroups, Selenium 2, RESTful HTTP, REST, Resteasy, JAX-RS, Spring Integration, Spring Data, MongoDB
|
Mai 2012 - heute
Rolle: Architect & Entwickler
Kunde: MCA Augsburg
|
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
-
https://play.google.com/store/apps/details?id=de.threedimensions.enduropark.android
Tools & Umgebung:
Android 2.3 und Android 4, Google Cloud-To-Device Messaging (C2DM), Google Cloud Messaging (GCM), Intellij IDEA, GIT, Google Appengine, Spring 3.1, REST, Json
|
Dezember 2012
Rolle: Coach
Kunde: HUK Coburg
Standort: Coburg
|
Durchführung eines eintägigen Workshops zum Thema Versionsverwaltung mit GIT inkl. Beratung zur Migration.
|
April 2012 – August 2012
Rolle: Architect & Coach
Kunde: Transparo
Standort: Augsburg
|
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
Tools & Umgebung:
Spring, Spring MVC, Spring Data, Oracle, Jenkins, GIT, CVS, Eclipse, Tomcat, WebObjects, Hibernate 4
|
Januar 2011 – Februar 2012
Rolle: Architect & Developer
|
Erstellung einer personalisierten, cloudfähigen Blogsoftware mit Schnittstellen zu verschiedenen Plattformen
-
Architektur & Konzeption
-
Implementierung
Tools & Umgebung:
OpenID, OpenID4Java, Google AppEngine, Google Web Toolkit (GWT), Spring 3, REST, RESTFul HTTP, JSON, Ajax, GIT, Java JDK 1.6, Gradle
|
November 2011 – März 2012
Rolle: Coach & Architect
Kunde: BG ETEM
Standort: Augsburg
|
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.
-
Beratung des Fachbereichs und der Entwicklung für die Umsetzung und Priorisierung neuer Features
-
Coaching in JEE6, JPA & Hibernate, Test Driven Development (Servicetests ohne laufenden JBoss), Transaktionen mit Datenbanken, Softwarepatterns und vielen Best Practices
-
Erstellung und Design einer Serviceschicht
-
Coaching und Mithilfe bei der Umsetzung der Swing GUI
-
Neuerstellung und Coaching: Erstellung eines Datenbankmodells
-
Einführung von QueryDSL als typsichere, kompaktere Alternative zur Criteria API
-
Einrichten einer Continuous Integration Umgebung
-
Coaching und Umsetzung bei Deployment und Packaging der Anwendung
Tools & Umgebung:
JEE 6, JBoss 6, IBM DB2, JPA 2, Hibernate 3.6, QueryDSL, Swing, Citrix, Soap Webservices, ANT, Jenkins, Testdriven Development, JUnit
|
Oktober 2010 – Januar 2011
Rolle: Senior Developer, Technology Consultant und Agile Coach
Kunde: GMX
Standort: München
|
Rekonzeption, Refactoring und Weiterentwicklung der Internet Registrierungsanwendung eines großen deutschen Mailanbieters (basierend auf Apache Wicket)
-
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
Tools & Umgebung:
Wicket 1.4, JSON, Ajax, JQuery, HTML+CSS, Spring 2.5 und 3, Tomcat 5.5 & 7, Apache Webserver, Oracle, Maven 3, JUnit, EasyMock, Mockito, GIT (git-svn), SVN, Hudson, JDK 1.6, Eclipse 3.6, Linux, Drools, JSR 303 (Bean Validation), Loadbalancing + Clustering (bei Sticky Sessions), VisualVM, YourKit Profiler, Spring Webservices, Axis
|
Mai 2010 – Oktober 2010
Rolle: Softwarearchitekt, Senior Developer und Technology Consultant
Kunde: Lokalisten.de
Standort: München
|
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
-
Technologische Beratung
-
Architektur und Implementierung (UseCase orientiert, Backend (DB/NoSQL) bis Frontend)
-
MongoDB: Ausführliche Evaluation und Machbarkeit einer weichen Migration zu performanten und skalierbaren NoSQL Technologien
-
Einführung, Architektur und weiche Migration auf die NoSQL Datenbank MongoDB mit Ablösung einiger zentraler Standard Datenbank-Tabellen (MySQL)
-
Verwendung des Shardingfeatures der MongoDB (Segmentierung von Daten auf verschieden MongoDB Instanzen)
-
Durchführung von Lasttestszenarien und intensive Fehleranalyse im Hochlastbetrieb mit den Entwicklern von MongoDB
-
Performanceanalyse in einem Umfeld mit einer Tomcatfarm von 80 Servern und 2 MongoDB Instanzen, die im Shardingmodus arbeiten
-
Evaluation von Alternativen zu SQL und NoSQL, wie z.B. In-Memory-Datagrids
-
Umsetzung mit verteiltem In-Memory-Datagrid (Hazelcast) und Memcache
-
Performanceoptimierung und Testerstellung
-
Aufbau von Continuous Integration, Continuous Deployment und Buildprozessoptimierung
-
Planung und Durchführung des Umstiegs von CVS auf GIT
Tools & Umgebung:
Spring, Memcache, Hazelcast, EhCache, Hibernate, NoSQL, MongoDB, MySQL, Tomcat 6, Struts, HTML, JSTL, JSP, Javascript, Ajax, JQuery, Prototype, Ant, Eclipse (STS), JMeter, Selenium, Linux, MacOS X, GIT, CVS, Hudson
|
August 2009 – Mai 2010
Rolle: Senior JEE Developer, Senior Consultant im Bereich Continuous Integration und Buildprozess
Kunde: Loyalty Partner Solutions (Payback)
Standort: München
|
Umsetzung eines neuen Kundenbindungssystems für eine große deutsche Fluggesellschaft auf Basis von OSGI und JEE
-
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
Tools & Umgebung:
Scrum, Oracle 10, Hibernate 3.3, Hudson, Unix, Eclipse, Java 1.6, OSGI, Equinox, JUnit, Mockito, Weblogic 10, EJB 3, JMS, Fitnesse, Hudson, Maven 2.2.1, JBPM, Magic Draw, AndroMDA
|
Januar 2009 – Juli 2009
Rolle: Senior JEE & Spring Developer, Architect
Kunde: Loyalty Partner Solutions (Payback)
Standort: München
|
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.
-
Refactoring der Architektur (vor allem Komplexitätsreduzierung und Verbesserung der automatischen Testbarkeit und der Konfiguration) und der Infrastruktur.
-
Schnittstellenspezifikation und deren Abstimmung für den Datenaustausch mit Partnern über Flatfiles, XML und Webservices. Implementierung und Test der Schnittstellen.
-
Design und Implementierung mehrerer komplexer Prozesse im Backendbereich inkl. Datenbankanbindung u.a. mit EJB 3
-
Refactoring des bestehenden Batch- und Jobframeworks weg von einer von dem Rest der Anwendung getrennten Mule Standalone-Anwendung zu einer in die JEE Applikation integrierten Lösung mit erheblich vereinfachter Konfiguration über Spring
-
Performanceanalyse des Code, Optimierung und Fehlerbehebung unter anderem im Bereich der Verwendung von XA Transaktionen
-
Optimierung von Continuous Integration im Projekt (Cruisecontrol)
Tools & Umgebung:
Scrum, Eclipse 3.4, Bea Weblogic 10.1, Spring 2.5, Hibernate 3, AndroMDA, UML, MagicDraw, EJB 2.1 und EJB 3, Mule ESB 1.3.3, JMS, XA Transactions, Maven, Cruisecontrol, JAX-WS, SOAP, XML Schema, Oracle 10
|
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).
-
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)
-
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
|
Dezember 2005 – Februar 2006
Rolle: Senior Developer & Architekt
Kunde: Schüco
Standort: München (Inhouse Entwicklung CSC)
Dauer: 3 Monate
|
Komplettes Redesign, Refactoring und Erweiterung einer Tomcat-basierten Webanwendung zur Pflege und Bereitstellung von Ausschreibungsunterlagen für ein internationales Industrieunternehmen in der Baubranche (Schüco)
-
Businesslogik-Entwicklung der Services der Webanwendung und Implementierung von Unittests
-
Einführung von Spring 1 zur Dependency Injection, Transaktionssteuerung, Abstraktion von Hibernate, Testsupport, Frontendfilter u.v.m.
-
Umstellung auf Hibernate 3 inkl. konsequentes Umstellen der bestehenden Anwendung
-
Frontendentwicklung mit Struts 1.2, JSP, JSTL
-
Neuerstellung des Domainmodells und Generierung des DB-Schemas mit Hibernatemapping auf Basis Oracle 9.2
-
Einsatz von XDoclet 2 zur Generierung von Metadaten und J2EE Infrastrukturklassen aus annotierten EJBs
-
Buildprozess und Konfigmanagement auf Basis Subversion und Maven 2
Tools & Umgebung:
Oracle 9.2, Eclipse, Java 1.4, Maven 2, Subversion, Hibernate 3, Spring 1.2, JSP, JSTL, Struts 1.2, Apache Tomcat, JUnit
|
September 2005 – Januar 2006
Rolle: Application Designer & Developer
Kunde: Volksfürsorge
Standort: Hamburg
Dauer: 5 Monate
|
Entwicklung eines Angebotssystems für die Sparten Sach, Unfall und Haftpflicht für einen Versicherungskonzern (Deutsche Volksfürsorge Hamburg)
Tools & Umgebung:
Eclipse, Maven 2, ANT, Subversion, Cruisecontrol, Bugtrackingsoftware Mantis, TikiWiki
|
August 2004 – Juli 2005
Rolle: Senior Developer
Kunde: DaimlerChrysler
Standort: Sindelfingen
Dauer: 12 Monate
|
Erstellung einer internetbasierten Anwendung zur Unterstützung der Qualitätssicherung bei einem großen Automobilkonzern (DaimlerChrysler) auf Basis der J2EE Plattform
Projektname: QEC-Tool
Tools & Umgebung:
Eclipse 2, IBM DB2, IBM Websphere 5, ANT, Maven 1, CVS, Struts 1.2, Java 1.3, Versch. Java-XML Frameworks, Apache Cactus Integrationtesting, Hibernate 2, JUnit
|
März 2002 – Mai 2004
Rolle: Senior Developer & Application Designer
Kunde: WWK
Standort: München
Dauer: 27 Monate
|
Erstellung einer javabasierten Anwendung zur Umsetzung der Angebotsprozesse einer mittelgroßen Versicherung (WWK). Die Anwendung besteht aus einer Plattform, auf deren Basis neue Produkte einfach entwickelt und in die bestehende Anwendung integriert werden können. Zielumgebungen sind Desktop- und Webversion mit möglichst großer gemeinsamer Codebasis
Aufgaben:
-
Entwicklung einer hochflexiblen PDF-Generierungslösung inklusive Voransicht und Validierung der logischen Dokumentenstruktur.
-
Architekturentwurf & Konzeption, Konzeption für eine Dokumentengliederung und Erstellung einer XML-Grammatik (Domain Specific Language) zur Beschreibung der Dokumentenstruktur
-
Implementierung und Unittests
-
Integration in Desktop- und Webversion des Angebotsprogrammes
-
Weiterentwicklung der Plattformarchitektur und Implementierung der Desktop- und Webversion, insbesondere der Prozessengine und der generischen Dialogablaufsteuerung
-
J2EE Entwicklung für die Webversion
-
Know How Transfer und Schulung der internen IT-Mitarbeiter der WWK
Tools & Umgebung:
Bea Weblogic 6, TogetherJ, Eclipse 2, EJB, MessageDriven EJBs, Stateless Session Beans, Swing, Apache FOP, XML, XSLT, XSL-FO, XSD (XML Schema), Dom4j, JDOM, XMLSpy, Apache Maven 1, ANT; JUnit
Projektname: AVANTI
|
November 2001 – Februar 2002
Rolle: Developer
Kunde: Arsdigita (RedHat)
Standort: München
Dauer: 4 Monate
|
Aufbau eines kundenspezifischen browserbasierten Workflow- und CMS Systems für das Intranet der deutschen Post
Tools & Umgebung:
Netbeans, Perforce, ANT, XSLT, XML
|
August 2001 – Oktober 2001
Rolle: Trainer
Dauer: 3 Monate
|
Konzeption und Durchführung eines EJB 2.0 Lehrganges für die Mitarbeiter der Firma Wistec
Tools & Umgebung:
TogetherJ, Java, EJB / J2EE
|
Juni 2001- Juli 2001
Rolle: Developer
Dauer: 2 Monate
|
Konzeption und Erstellung einer fehlersicheren Server-Daten-Transferkomponente in Java 2
-
u.a. Einsatz von Servlets und des JNI für eine C++-Schnittstelle (Protokolle: HTTP, HTTPS, FTP, POP3, SMTP)
-
Übertragung, Synchronisierung und Abruf von Daten über die oben
-
genannten Protokolle
Tools & Umgebung:
TogetherJ, CVS, Java, JavaMailAPI
|
Januar 2001 – Mai 2001
Rolle: Developer & Architekt
Kunde: SKL Holzscheiter
Dauer: 5 Monate
|
Entwicklung eines Lotterie-Online-Shops in Java auf Apache Tomcat
-
Design des Datenbankschemas
-
Umsetzung der Persistenzschicht in Java
-
Umsetzung der Businesslogik als Services mit u.a.
-
Implementierung von Bestellvorgängen
-
Anbindung von Kreditkartenzahlung
-
Versenden von Bestätigungs- und Newslettermails mittels JavaMail API
-
Frontendentwicklung
Tools & Umgebung:
Linux, MySQL-Datenbank, Tomcat/Apache, PowerDesigner, TogetherJ, JSP, JSTL, Java, JavaMailAPI
|
Mai 2000 – Dezember 2000
Rolle: Developer
Dauer: 8 Monate
|
Entwicklung und Konzeption einer 3D-Community in Java auf einem Linux-System
-
Basierend auf Blaxxun-Plattform
-
Java für die Umsetzung von Aktionen und Services
-
VRML für die Erweiterung der 3D-Welt
Tools & Umgebung:
VRML, CVS, Java
|
März 1998 – September 1998
Rolle: Developer
Dauer: 7 Monate
|
Erstellung eines Reportgenerator-frameworks für Java2 Applikationen
Tools & Umgebung:
Kawa, Java2, CVS
|
|