Your browser does not support the video tag.
  • Home
  • Portfolio
  • Werdegang
  • Kontakt
  • Über mich
  • Portfolio
     
  • Requirements Engineering
  • Software-Architektur
  • Software-Entwicklung
  • protoco consulting
    Softwareentwicklung und Beratung

    processes to code

    Mein Portfolio

    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:


      - Requirements Engineering

      - Softwarearchitektur

      - Softwareentwicklung

      - 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.



    Requirements
    Engineering >>>


    Kontakt Werdegang
  • Requirements Engineering

    processes to code

    Requirements Engineering

    Anforderungsanalyse


      - Stakeholder-Identifikation

      - Anforderungssammlung

      - Anforderungsdokumentation

      - Anforderungsverifikation

      - Schnittstellenmanagement zwischen Fachabteilungen und Umsetzung

      - Priorisierung

      - Konfliktlösung

      - Traceability


    Anforderungsmodellierung


      - 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"


    Anforderungsmanagement


      - Change Management

      - Versionskontrolle

      - Baseline-Management

      - Kommunikation

      - Anforderungsverfolgung

      - Risikomanagement

      - Dependencymanagement

      - Dokumentation

      - Stakeholder-Management




    <<< Zurück zur
    Übersicht
    Software-
    architektur >>>




    Kontakt Werdegang


  • Softwarearchitektur

    processes to code

    Softwarearchitektur

    Architekturdesign


      - Systemanalyse

      - Architekturwahl

      - Design Patterns

      - Technologieauswahl

      - Skalierbarkeit

      - Identifikation gesetzl. Vorgaben

      - Integration evtl. Regularien

      - Zuverlässigkeit

      - Nachhaltigkeit

      - Sicherheit

      - Objektorientierte Analyse (OOA)

      - Leistungsoptimierung (Theorie)


    Architekturdokumentation


      - Architekturdiagramme

      - Architekturbeschreibungen

      - ADR (Architecture Decision Records)

      - Schnittstellendokumentation

      - Technologie-Stack

      - Deployment-Strategie

      - Wartungshinweise

      - Best Practices

      - Branching Konzept


    Architekturkommunikation


      - Stakeholder-Engagement

      - Workshops und Meetings

      - Mentoring

      - Change Management

      - Präsentationen

      - Architektur Reviews

      - Feedback-Schleifen

      - Dokumentationspflege


    Architektur- und Qualitätssicherung


      - Code-Reviews

      - Qualitätsmetriken

      - Technische Schulden

      - Caching-Strategien

      - Architekturtests

      - Leistungsoptimierung (Praxis)

      - Performance-Überwachung

      - Refactoring

      - Sicherheitsaudits

      - Architekturkonformität




    <<< Requirements
    Engineering
    Zurück zur
    Übersicht
    Software-
    entwicklung >>>




    Kontakt Werdegang


  • Softwareentwicklung

    processes to code

    Softwareentwicklung

    Lieblinge und häufig eingesetzte Technologien

    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


      - Code Entwicklung

      - Unit-Testing

      - Code-Reviews

      - Pair-Programming

      - Refactoring

      - Debugging / Fixing

      - Dokumentation

      - Integration

      - Optimierung


    Anforderungsanalyse und Design


      - Anforderungsverständnis

      - Architekturverständnis

      - Design-Patterns

      - Prototyping

      - API-Design

      - Modellierung

      - Use Case Analyse

      - Technologieauswahl


    Qualitätssicherung


      - Testautomatisierung

      - Integrationstests

      - End-to-End-Tests

      - Code-Qualität

      - Performance-Testing

      - Sicherheitsprüfungen

      - Continuous Integration/Continuous Deployment (CI/CD)

      - User Acceptance Testing (UAT)


    Wartung und Support


      - Bugfixing

      - Updates und Patches

      - Technische Schulden

      - Support

      - Monitoring

      - Dokumentation

      - Legacy-Refactoring

      - User Feedback


    Nutzung von KI


    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, ...).

    Give And Take


    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.



    <<< Software-
    architektur
    Zurück zur
    Übersicht




    Kontakt Werdegang


2024- protoco consulting - Softwareentwicklung und Beratung - Marc Burkhardt

Impressum | Datenschutzerklärung