Dienstleistungen und Services

Sven Woltmann

Sven Woltmann

Suchen Sie einen Softwareentwickler, …

  • der Ihre Anforderungen versteht?
  • der Ihnen hilft, die Spezifikationen zu klären, bevor er an ihnen arbeitet – anstatt vorschnell mit einem vagen Verständnis dieser loszulegen?
  • der genau das entwickelt, was Sie benötigen und nicht mehr – ohne vorzeitige Optimierungen und Over-Engineering?

Benötigen Sie…

  • eine auf Ihre Bedürfnisse zugeschnittene Individualsoftware?
  • eine Erweiterung einer bestehenden Java-Software?
  • eine Optimierung einer langsamen oder oft abstürzenden Software?

So kann ich Ihnen helfen

Im Dialog mit Ihnen (und anderen potenziellen Stakeholdern) analysiere ich Ihre Geschäftsprozesse und Anforderungen, entwerfe eine Gesamtarchitektur und implementiere Software, die Ihre speziellen Anforderungen agil und professionell löst.

  • Agil = Durchführung regelmäßiger Feedbackrunden.
  • Professionell = Erfüllung sowohl funktionaler Anforderungen (was Sie von der Software erwarten) als auch Qualitätsanforderungen (mitunter auch „nicht-funktionale Anforderungen“ genannt: Effizienz, Zuverlässigkeit, Skalierbarkeit, Sicherheit, Wartbarkeit, etc.).

Sollten Sie Hilfe mit einer bestehenden Software benötigen, analysiere ich den Code auf Fehler sowie auf Nebenläufigkeits-, Performance- und Speicherengpässe, erstelle dann mit Ihnen einen Plan, und optimiere Ihre Software passgenau für Ihren individuellen Bedarf (bitte haben Sie Verständnis dafür, dass es fast unmöglich ist, abzuschätzen, wieviel Zeit das Projekt in Anspruch nehmen wird, bevor ich den bestehenden Code analysiert habe).

Ich werde die neuesten Java-Technologien verwenden, IntelliJ oder Eclipse, das Spring Framework oder Java EE / Jakarta EE / MicroProfile, MySQL, MariaDB, PostgreSQL, Elasticsearch, Microservices mit Kubernetes und Docker … was auch immer am besten für Sie und Ihre individuellen Bedürfnisse geeignet ist.

In jedem Projekt wende ich die Prinzipien von Clean Code und Clean Architecture an, verfolge einen testgetriebenen Ansatz und verwende Tools zur statischen Codeanalyse, um höchstmögliche Codequalität zu erreichen – und damit eine kosteneffiziente Wartbarkeit. Außerdem werde ich die Build- und Deployment Prozesse vollständig automatisieren.

Wenn Sie mehr über mich erfahren möchten und wissen möchten, was mich antreibt, schauen Sie auf meiner "Über mich"-Seite vorbei.

Portfolio

Im Folgenden finden Sie drei größere Projekte aufgelistet, für die ich federführend verantwortlich war. Eine vollständige Liste finden Sie im Bereich "Karriere und Technologien" auf meiner "Über mich"-Seite.

AndroidPIT: Website & CMS (Content Management System) für eine der weltweit größten mehrsprachigen Tech-Communitys

AndroidPIT website

AndroidPIT-Webseite

AndroidPIT ist mit bis zu 60 Millionen Page Impressions pro Monat die weltweit größte mehrsprachige Android-Community. Neben meiner Rolle als CTO war ich für die gesamte Backend-Entwicklung verantwortlich, einschließlich:

  • Entwicklung eines hochperformanten, skalierbaren und anpassbaren Content Management Systems – mit dem Spring Framework, Hibernate ORM, Tomcat, MySQL und Elasticsearch im Backend.
  • Kontinuierliche Upgrades der Codebasis von Java 6, Spring Framework 2.5 und Hibernate 3.2 im Jahr 2009 bis hin zu Java 11, Spring 5.1, Spring Boot 2.1, Spring Cloud Greenwich und Hibernate 5.3 im Jahr 2019.
  • Anpassung der gesamten IT-Infrastruktur an die Vorgaben der DSGVO im Jahr 2018.
  • Entwicklung des ersten Web-Verzeichnisses von Android-Apps im Jahr 2009 – noch bevor es den Google Play Store als Webseite gab – durch Reverse Engineering des Android App Stores.
  • Aufbau von CI/CD-Pipelines mit Jenkins und der Jenkins Job DSL.
  • Automatisierung der Konfiguration und Administration der IT-Infrastruktur mit Ansible.

Auch wenn meine inhaltlichen Schwerpunkte nicht auf der HTML-, CSS- und JavaScript-Programmierung lagen, war ich für das gesamte IT- und Produktteam einschließlich der Frontend-Entwickler verantwortlich.

Microservice-Architektur und REST-API für ein natives Ad-Format

NEAds – Native Engagement Ads

NEAds – Native Engagement Ads

Entwicklung der Backend-Infrastruktur und der REST-API für das native Werbeformat „NEAds – Native Engagement Ads“ (bei AndroidPIT).

  • Implementierung einer Microservice-Architektur (MSA).
  • Verwendete Frameworks/Technologien: Spring Boot, Spring Cloud, Netflix OSS, Elasticsearch, Filebeat, Kibana, MySQL, RxJava, Swagger.
  • Betrieb in einem selbstverwalteten Kubernetes-Cluster.
  • Continuous Integration und Delivery mit Jenkins; alle Jenkins-Jobs wurden mit der Jenkins Job DSL kodiert.

Auch wenn meine inhaltlichen Schwerpunkte nicht auf der HTML-, CSS- und JavaScript-Programmierung lagen, war ich für das gesamte IT- und Produktteam einschließlich der Frontend-Entwickler verantwortlich.

AndroidPIT App & App Center: REST API for Android apps

AndroidPIT App Center

AndroidPIT App Center

Entwicklung der Backend-Infrastruktur und der REST-API für:

  • die AndroidPIT Content App, eine App zum Lesen und Kommentieren der AndroidPIT-Inhalte (News, Tests, Forenbeiträge, App-Empfehlungen) auf mobilen Endgeräten, mit langsamer Datenverbindung und auch offline (dies waren zentrale Anforderungen in der Android-Anfangszeit);
  • das AndroidPIT App Center, ein Google-unabhängiger App Store für Android-Apps mit verschiedenen Zahlungsmethoden und der Möglichkeit für App-Entwickler, Rabatte und Aktionen anzubieten – in den ersten Android-Jahren auf Geräten vieler Hersteller vorinstalliert.

In den ersten zwei Jahren habe ich zusätzlich Android-Apps entwickelt, was mein Grundverständnis von App-Entwicklung vertieft hat. Diese Tätigkeit wurde später, als wir ein größeres Entwicklerteam waren, von spezialisierten Android-Entwicklern übernommen.

Im Backend verwendete Technologien: Spring Framework, Hibernate ORM, Tomcat, MySQL, Elasticsearch.

Technische Details

Meine operativen Spezialgebiete:

  • Gesamtarchitekturdesign unter Berücksichtigung aller Aspekte von Clean Code und Clean Architecture.
  • Planung und Implementierung einer Microservice-Architektur (MSA) mit dem Spring Framework / Spring Cloud oder Java EE / Jakarta EE / MicroProfile.
  • Design und Implementierung komplexer Geschäftslogik, Regeln und Algorithmen.
  • Implementierung von Datenspeicherung und -abfrage (Spring Data, Hibernate, JPA, SQL und NoSQL – spezialisiert auf MySQL und Elasticsearch; und immer bestrebt, weitere Datenbanksysteme in mein Repertoire aufzunehmen).
  • Entwicklung von Web-APIs (z. B. REST-APIs, Graph-APIs).
  • Finden und Beheben von Performance-Problemen, gelegentlichen Abstürzen und Fehlfunktionen – oft verursacht durch Probleme mit Nebenläufigkeit, dem Arbeitsspeicher und der Garbage Collection.

Ich werde höchste Codequalität – und damit kostengünstige Wartbarkeit der Software – sicherstellen durch:

  • Anwendung eines testgetriebenen Ansatzes (JUnit, Hamcrest, Mockito, Powermock, Testcontainer).
  • Anwendung der Clean Code Prinzipien („SOLID“).
  • Anwendung bekannter Entwurfsmuster („Design Patterns“).
  • Verwendung von statischen Codeanalysetools (PMD, FindBugs / SpotBugs, Checkstyle, Sonargraph, Sonarqube).

Außerdem kann ich Ihnen bei den folgenden DevOps-Aufgaben helfen:

  • Aufsetzen der kompletten CI/CD-Pipeline, z. B. zum Compilieren und Releasen von Softwaremodulen oder zum Verpacken eines Microservice als Docker-Container und dessen Einsatz in einem Kubernetes-Cluster (vorzugsweise mit Jenkins).
  • Einrichtung von Protokollaggregation und -analyse mit dem ELK-Stack (Elasticsearch, Logstash / Filebeat, Kibana).
  • Automatisierung der Konfiguration und Administration der IT-Infrastruktur mit Ansible.

Lassen Sie uns Kontakt aufnehmen!

Ich habe Ihr Interesse geweckt? Dann würde ich gerne mehr über Ihr Projekt erfahren. Ich freue mich auf Ihre Kontaktaufnahme und einen persönlichen Dialog, in dem wir gemeinsam erörtern, wie ich Sie unterstützen kann.

Mein Stundensatz beträgt 150 € (zzgl. MwSt., sofern anwendbar). Rabatte für langfristige Projekte sind verhandelbar.

Kontaktieren Sie mich unter [email protected].