Mit mehr als 25 Jahren an praktischer Erfahrung in der professionellen Softwareentwicklung bin ich mit einem soliden Stack von klassischen bis top-modernen Technologien ein kompetenter, vertrauenswürdiger und verlässlicher Partner hinsichtlich des Designs, der Implementierung und des Betriebs von modernen, verteilten Softwarearchitekturen. Bis heute setze ich meine Fähigkeiten mit Hilfe verschiedener Tools in folgenden Bereichen erfolgreich ein:
- Beratung für KMUs und auch Unternehmen aus der Finanz- und Versicherungsbranche
Darüber hinaus interessiere ich mich je nach Unternehmen und Projekt auch sehr für die Positionen des Business Intelligence Analysts oder des Technical Product Owners.
Für einen schnellen Überblick über meinen technologischen Stack finden Sie hier eine kleine grafische Übersicht - Weiteres zu meinem Stack finden Sie unter dem Punkt Softwareentwicklung
Detailliertere Informationen zu Projekten inkl. Kontext zum Tech-Stack finden Sie auch in meinem Werdegang.
Ich beschäftige mich natürlich auch mit der Entwicklung rund um AI/GenAI, angewandtem Machine Learning und anderen interessanten Themengebieten wie dem Prompt-Engineering, RAG/CAG oder fine-tuning von LLMs. Mehrere meiner Projekte sind an die ein oder andere "künstliche Intelligenz" angebunden und ich nutze natürlich auch diverse Tools und Helfer für die Softwareentwicklung - die meisten davon allerdings nicht in der Cloud sondern selbst betrieben. Will heißen: ich kann diese Tools also nicht nur "aufrufen", sondern auch trainieren, betreiben und Neues damit entwickeln.
Neben vielen bekannten Inferenz-Providern wie ollama, vllm, llama-cpp oder sglang nutze ich im KI-Kontext aber beispielsweise auch ComfyUI, PyTorch, TensorFlow, ml-agents und viele Weitere. Es gibt zudem eine Menge kleinerer und größerer Github-Projekte, die ich nutze bzw. mit oder auf deren Basis ich entwickle - ausprobiert habe ich über die vergangenen Jahre schon etliche. Die Möglichkeiten sind mittlerweile nahezu unendlich groß - leider aber oft auch rechtlich unendlich tricky oder - "einfach auf Kundendaten losgelassen" - auch unendlich fahrlässig. Gerne unterstütze ich Sie daher bei der gezielten und abgewogenen Integration von AI in Prozesse Ihres Unternehmens.
Leider habe auch ich meine Grenzen: die Web-Entwicklung. Ich bin einfach nicht (mehr) gemacht für diesen Teil der Softwareentwicklung, obwohl ich auch lange Jahre in diesem Feld gearbeitet habe. Es macht mir keine Freude mehr und ich komme langsamer zum Ziel, als Andere. Damit sollten wir offen umgehen. Meine Entwickler-Welt besteht heutzutage mehr aus APIs, Messages, Transaktionen, Performance und Service-Uptime. Genau da fühle ich mich richtig zu Hause. Ich definiere mich also durch und durch als Backend-Entwickler.
Um zu erfahren, was ich mit meinen technologischen und auch meinen Soft-Skills bereits so alles angestellt habe, finden Sie eine Übersicht im Bereich Werdegang. Es ist vielleicht sogar das ein oder andere Produkt dabei, welches Sie persönlich kennen oder auch selber nutzen. Auf den Unterseiten finden Sie einige exemplarische Auszüge meiner Arbeit unter Angabe des jeweils maßgeblich verwendeten Stacks. Sie können ebenfalls meinen aktuellen CV herunterladen, um die Informationen in kurzer und knapper Form parat zu haben.
Ich würde mich freuen, auch Sie mit meinen Ideen, meiner Erfahrung und einer soliden Implementierung hands-on in Ihrem Unternehmen unterstützen zu können.
- Stakeholder-Identifikation
- Anforderungssammlung
- Anforderungsdokumentation
- Anforderungsverifikation
- Schnittstellenmanagement zwischen Fachabteilungen und Umsetzung
- Priorisierung
- Konfliktlösung
- Traceability
- Use-Case-Analyse
- Datenmodellierung
- Prozess- und Geschäftsprozess-Modellierung mit Methoden wie EPK und BPMN
- Interface-Definition
- Validierung durch Prototyping
- Konsistenzprüfung
- Identifikation "Money Path"
- Change Management
- Versionskontrolle
- Baseline-Management
- Kommunikation
- Anforderungsverfolgung
- Risikomanagement
- Dependencymanagement
- Dokumentation
- Stakeholder-Management
- Systemanalyse
- Architekturwahl
- Design Patterns
- Technologieauswahl
- Skalierbarkeit
- Identifikation gesetzl. Vorgaben
- Integration evtl. Regularien
- Zuverlässigkeit
- Nachhaltigkeit
- Sicherheit
- Objektorientierte Analyse (OOA)
- Leistungsoptimierung (Theorie)
- Architekturdiagramme
- Architekturbeschreibungen
- ADR (Architecture Decision Records)
- Schnittstellendokumentation
- Technologie-Stack
- Deployment-Strategie
- Wartungshinweise
- Best Practices
- Branching Konzept
- Stakeholder-Engagement
- Workshops und Meetings
- Mentoring
- Change Management
- Präsentationen
- Architektur Reviews
- Feedback-Schleifen
- Dokumentationspflege
- Code-Reviews
- Qualitätsmetriken
- Technische Schulden
- Caching-Strategien
- Architekturtests
- Leistungsoptimierung (Praxis)
- Performance-Überwachung
- Refactoring
- Sicherheitsaudits
- Architekturkonformität
Hier finden Sie einen Auszug aus einer Liste von Technologien, mit denen ich häufig gearbeitet habe und arbeite:
- Sprachen / Compiler: Java / JVM / C / C++ / gcc / clang / Python / Perl
- Build Toolchain: maven / make / cmake / gradle / bazel / ninja
- Editoren: vi / Eclipse / IntelliJ / Spring Tools Suite / VSCodium / Zed
- Versionskontrolle: git / subversion / mercurial
- Konsole: bash / csh / zsh / ...
- Frameworks: EJB / Spring / Spring Boot / ...
- Umgebungen: Linux Server x86-64 / Linux Desktop x86-64 / Docker / qemu / KVM / Windows
- Virtualisierung / Container: Linux Server / Docker / Rancher / Helm / Kubernetes / kind / qemu / ...
- Architektur: Standalone / Monolith / Midilith / Midiservices / Microservices / Master / Agent / Pub-Sub / Eventing / Message Broker / ...
- Design: Camunda / BPMN / Domain-Driven / Producer-Consumer / Event-Driven / Process-Centered-Design / ...
- Best-Practices: AOP / CORS / CQS / CQRS / Clean Code / ...
- Logging / Monitoring: ELK / Grafana / Kibana / cacti / nagios / Prometheus / Jaeger / OpenTracing / Log4j / ...
- Daten: Elastic / AMQP / ActiveMQ / RabbitMQ / Kafka / NoSQL / MongoDB / RDBMS / MySQL / MSSQL / Oracle / SQLite / diverse SQL-Dialekte / Hibernate / JPA / ORM / Criteria API / Redis / Memcached / ...
- Deployment: Jenkins / Hudson / Concourse / ansible / ...
- Kommunikation: APIs / REST / RESTful / RPC / XML-RPC / gRPC / OpenAPI / AsyncAPI / SOAP / IPC / Shared-Memory / protobuf / ...
- Formate: JSON / YAML / TOML / XML / XSLT / EDI / EDIFACT / ZUGFeRD / SEPA / DTA / CFA / DTAZV / MT101 / MT103 / MT940 / ...
- Security: HTTPS / SSL / SSH / PKCS / PGP / JWT / WebAuthn / OAuth / OWASP / RBAC / ABAC / 2FA / ...
Es gibt viele weitere Werkzeuge, die ich über das oben Erwähnte hinaus noch nutze. Beispielsweise den gesamten Atlassian Stack von Jira über Confluence bis hin zu BitBucket - sie gehören mittlerweile bei fast allen Unternehmen zum Tagesgeschäft. Die Liste über alle Tools wäre vermutlich auch einfach nur lang und langweilig.
Lassen Sie uns doch in einem ersten unverbindlichen Gespräch herausfinden, ob nicht vielleicht auch noch die Ein oder Andere Spezialität darunter ist, nach der Sie möglicherweise aktuell suchen.
- Code Entwicklung
- Unit-Testing
- Code-Reviews
- Pair-Programming
- Refactoring
- Debugging / Fixing
- Dokumentation
- Integration
- Optimierung
- Anforderungsverständnis
- Architekturverständnis
- Design-Patterns
- Prototyping
- API-Design
- Modellierung
- Use Case Analyse
- Technologieauswahl
- Testautomatisierung
- Integrationstests
- End-to-End-Tests
- Code-Qualität
- Performance-Testing
- Sicherheitsprüfungen
- Continuous Integration/Continuous Deployment (CI/CD)
- User Acceptance Testing (UAT)
- Bugfixing
- Updates und Patches
- Technische Schulden
- Support
- Monitoring
- Dokumentation
- Legacy-Refactoring
- User Feedback
Ich finde es super, dass es die KI-Technologie als Unterstützung zum Entwickeln moderner Software- und IT-Projekte gibt.
Dabei versuche ich jedoch bestmöglich, alle Technologien lokal zu betreiben und nur so wenig wie eben möglich an Daten und Code zur Verfügung zu stellen, sollte ich online LLMs nutzen oder auch Tools, die eigenständig "online gehen" können (bspw. Function Calling, Tool Calling, ...).
Dabei verlasse ich mich aber keinesfalls blind auf die Ergebnisse der Tools, sondern nutze diese eher zur Erweiterung meines Horizonts und der Betrachtung von Problemen aus einem anderen Blickwinkel. Ich bin in der Lage, diese Tools in einer Art und Weise zu nutzen, in der sie mich unterstützen, bin jedoch kein Vibe-Coder.