Michael König

Softwareentwickler

Dresden, Deutschland

Erfahrungen

Nov. 2024 - Feb. 2024
-1 Jahren -8 Monaten

Softwareentwickler

Atruvia AG

  • Die EGP (Enterprise Gesamtbanksteuerung Plattform) ist eine umfassende Banksteuerungslösung, die verschiedene geschäftliche Anforderungen wie Buchhaltung, regulatorisches Meldewesen, Controlling und Risikomanagement in einem einheitlichen System vereint. Das EGP-Framework ist eine Sammlung querschnittlicher Bibliotheken und Services welche in allen Bounded Context Scopes der Plattform Verwendung finden.
  • Softwareentwicklung: Weiterentwicklung von Framework-Komponenten und -Services. Primär mit SpringBoot (90%) und etwas Python (10%).
  • Durchführung der Migration von Java 17->21 sowie SpringBoot 3.2->3.4 in etwa 80 Library- und Service-Repositories (Anpassung Maven-POMs, Dockerfiles, Jenkins-Pipelines, Sourcecodemigration, Testevolution).
  • Entwicklung von Unit und Integrationtests im mit Junit und Jgiven.
  • Durchführung und Analyse von Performance-Messungen mit Dynatrace.
  • Weiterentwicklung der mehrstufigen CI/CD-Pipelines (Unit-Tests, Security-Analysen, Docker-Build, Harbor-Deployment, ...).
  • Tech-Stack: Java (90%), Python (10%), SpringBoot, JPA/Hibernate, JGiven, OpenAPI, Camunda 7, Podman, OpenShift/Kubernetes, Oracle DB, SonarQube, Dynatrace, Jenkins, Harbor, Bitbucket, Jira, Confluence.
Mai 2024 - Bis heute
1 Jahr 3 Monaten

Architekt und Full-Stack-Entwickler

Klareau GmbH

  • Im Rahmen des Projektes entsteht eine moderne Plattform zur Berechung und Simulation komplexer Prozesse in Kläranlagen (Planung und Betrieb). Die Anwendung kann online und offline genutzt werden (PC im Büro, iPad ohne Internetanbindung Vor-Ort am Klärbecken). Im Mini-Team (drei Leute) besteht meine Aufgabe darin, eine robuste und skalierbare Software-Architektur sicherzustellen und moderne Entwicklungsmethoden zu einzuhalten (Scrum, CI/CD, Cloud-Native, DDD, TDD, Shift-Left, …).
  • Aufgrund der Tatsache, dass das Team so klein ist, darf ich in diesem Projekt vielfältige Aufgaben übernehmen:
  • Erfassen und dokumentieren von Anforderungen und Qualitätszielen (funktional und nicht-funktional).
  • Entwurf und Dokumentation einer flexiblen und leistungsstarken Software-Architektur (Arc42, UML, BPMN).
  • Aufbauen von robusten („Self-Healing”) und kosteneffizienten („AutoScaling”) Cloud-Infrastrukuren (Iac mit Terraform + GitLab CI).
  • Implementierung von Monitoring- und Alerting-Mechanismen in der Cloud.
  • DevOps-Entwicklung von CI/CD-Pipelines mit GitLab inkl. diversen Teststufen (Shift-Left-Ansatz), statischen Code-Quality und Security-Scans (auf Code und Container-Ebene).
  • Definition von RestAPIs (Contract First mit Open-API).
  • Entwicklung von Microservices mit Kotlin (Spring-Boot, MongoDB).
  • In geringem Umfang auch (Mit-)Entwicklung am Angular Frontend.
  • Tech-Stack: AWS Elastic Kubernetes Service (EKS) + AWS Fargate, MongoDB, Cloudfront, Cloudwatch, Elastic Search, Kibana, Kotlin, Spring Boot, Angular/TypeScript, Helm, Terraform, GitLab CI/CD.
Juni 2023 - Apr. 2024
11 Monaten

Architekt und Full-Stack-Entwickler

Atruvia AG

  • Im Rahmen eines innovativen Plattform-Projekts bei der Atruvia AG (Großprojekt 500+MA) war ich maßgeblich an der Entwicklung und Implementierung eines Cloud-Dienstes beteiligt, der es Atruvia-Kunden ermöglicht, eigene Dienste innerhalb einer Cloud-Infrastruktur zu hosten. Mein Fokus lag auf der Konzeption und Umsetzung eines Marktplatzes, der als zentrales Shop-System für die Bestellung und Konfiguration von Cloud-Services dient.
  • Hauptaufgaben und Verantwortlichkeiten:
  • Softwareentwicklung: Entwicklung von Microservices in Java, Kotlin, TypeScript und Python. Primär im Bereich SpringBoot (70%) und Angular (30%). Backendseitig wurden durch mich, ganz typisch, REST-Controller und Services sowie Entities und Repositories implementiert (Domain Driven Design Prinzipen). Ein großer Fokus lag dabei im Bereich Performance-Tuning durch effizientes Caching mit Redis und Einsatz einer MongoDB. Aber auch eine klassische Postgres Datenbank kam zum Einsatz. Ein weiterer Schwerpunkt für mich war die Anbindung an das SSO-System mit OAuth2 bzw. OpenID. Frontendseitig wurden von mir bestehende Angular-Komponenten und Service bearbeitet bzw. neue implementiert. Mein Fokus lag im Bereich Typescript und HTML, weniger im CSS.
  • Architekturmanagement & Modellierung: Optimierung und Dokumentation der Systemarchitektur und Modellierung der Schnittstellen zum eigenen Frontend sowie eigenen und fremden Microservices. Die umfangreiche Dokumentation der Architektur erfolgte primär im proprietären Atruvia-Framework DocIT4U. Ich habe den Wechsel vom Code-First zu Contract-First-Ansatz mit OpenAPI initiiert und implementiert. Sowohl das Backend als auch das Frontend nutzen nun generierte Client- bzw. Server-Stubs -- wesentlicher Vorteil ist hier, dass versehentliche (oder bewusste) Änderungen am Backend nun keine unerwarteten Auswirkungen mehr auf das Frontend haben können, da die Schnittstelle stabil bleibt.
  • Tests: Neben klassischen Unit und Integrationtests im Java und Kotlin Backend mit Junit und Easymock, wurden durch mich Last- und Performancetests mit Jmeter implementiert und in der CI-Pipeline integriert. Frontendseitig wurden Tests mit dem Jasmine-Framework umgesetzt. Für End-to-End-Tests habe ich Cypress-Tests geschrieben und auch hier die CI/CD-Pipeline so erweitert, dass diese Tests zwingend bei jedem Merge-Request ausgeführt worden sind.
  • DevSecOps: Weiterentwicklung der mehrstufigen CI/CD-Pipelines (Security-Analysen, E2E-Tests mit Cypress, Load-Tests mit JMeter, Docker-Build, Harbor-Deployment, ...).
  • Technologien und Werkzeuge: Java, Kotlin, TypeScript, Python, SpringBoot, JPA/Hibernate, Angular, OpenAPI, Docker, OpenShift/Kubernetes, Helm, GitLab, Redis, Postgres, MongoDB, Grafana, Cypress, Jmeter, DDD, TDD, Scrum, SAFe.
Sept. 2020 - Mai 2023
2 Jahren 9 Monaten

Interims-CTO, Solution-Architekt und Entwickler

FI Freiberg Institut GmbH

  • Der Prototyp der Anwendung - ein monolithisches System welches direkt auf dem Entwickler-PC 'gehostet' worden ist - sollte zur kommerziellen Nutzung funktional erweitert und in der Cloud verfügbar gemacht werden. Ich übernahm den Job als Interim-CTO und Software-Architekt.
  • Unter meiner Führung wurde der Monolith in Microservices aufgespalten und funktional massiv erweitert, Schnittstellen per OpenAPI designed (Contract first/Code generiert), Infrastruktur in der AWS Cloud aufgesetzt (Terraform), Cloud-Security (nach principle of least priviliges) implementiert, CI/CD-Pipelines aufgesetzt, Autoscaling, Monitoring und Alerting eingerichtet, uvm. Im Ergebnis sind Kunden/Nutzer ebenso zufrieden wie die Geschäftsführung und das Entwickler-/DevOps-Team, denn Zuverlässigkeit und Performance der Anwendung sind jederzeit gesichert, auch während laufenden Deployments oder außergewöhnlichen Lastspitzen. Dabei wurden Kosteneffizienz, Leistungsfähigkeit und Hochverfügbarkeit in Einklang gebracht. AWS attestiert dem System die konsequente Umsetzung nach dem "Well-Architected Framework".
  • Fachlich handelt es sich um eine Simulations- und Mehrziel-Optimierungs-Software mit deren Hilfe komplexe Fragestellungen der Energiewirtschaft beantwortet werden können.
  • Technisch basieren die Backend-Services mehrheitlich auf SpringBoot/Kotlin. Der Simulations- und Mehrzieloptimierungskern wurde als genetischer Algorithmus auf Basis von jMetal implementiert. Im Frontend kommt VueJS/TypeScript zum Einsatz. Die Infrastruktur wurde mit Terraform aufgesetzt.
  • Meine Aufgaben im Einzelnen:
  • Code und Architektur-Review des Prototypen und später kontinuierlich im Daily-Business.
  • Durchführen einer Due-Dilligence-Prüfung.
  • Entwurf einer System-Architektur im Zielbild als Cloud-Native-Anwendung.
  • Auswahl eines geeigneten Cloud- oder Hosting-Providers.
  • Aufsetzen eines Software-Entwicklungsprozess und agiles Vorgehensmodell nebst Festlegung der Toolkette.
  • Teamführung.
  • Risk-Management.
  • Refactoring des Prototypen und zerlegen in mehrere Teile aka. Microservices.
  • Aufsetzen und Pflege einer CI/CD-Pipeline mit GitLab und Deployment nach AWS als Docker-Container (zunächst Beanstalk, später Kubernetes).
  • Entwurf einer Software-Architektur um gewünschte Nutzerzahlen und Performance-Anforderungen zu erfüllen.
  • Definition der Testpyramide (Unittests, Integrationtests, End-to-End-Tests, Performance-Tests).
  • Implementation diverser neuer Funktionen insbesondere im Bereich Benutzer-Management und Abrechnung.
  • Implementation der Event-Driven-Architektur mit Kafka.
  • Implementation von Logging- und Monitoring-Funktionalitäten (ELK-Stack/Kibana, Grafana, AWS-Xray, Cloudwatch).
  • Nutzung vieler cooler AWS-Services und -Funktionen.
  • Teamgröße: 8 Entwickler/DevOps + 3 (PO/Afo/Tester).
  • Kenntnisse: Cloud native Architektur, Microservices, Kotlin, Java, JPA, REST, Messaging, OAuth2/OpenID, UML, Domain Driven Design, Test Driven Design/Shift-Left, Scrum, OKR.
  • Eingesetzte Produkte: Spring Boot, GitLab, Amazon AWS (ECS, EC2, Beanstalk, Lambda, Route53, ALB, S3, CloudFront, SQN/SNS, Cloudwatch, RDS, VPN, MSK,…), Kafka, VueJS, Grafana, jMetal, Postgres, ClickUp.
Okt. 2017 - Mai 2020
2 Jahren 8 Monaten
Hannover, Deutschland

Softwarearchitekt / Entwickler

TUI Infotec GmbH

  • Ersatz einer Drittsoftwarekomponente zur Buchung von Flug-Extras (z.B. Sitzplätze, Zusatzgepäck, Essen,…) durch Einsatz eines hochverfügbaren, selbstheilenden Microservice-Systemverbundes. Dabei wird eine Vielzahl von externen und heterogenen Schnittstellen angebunden (i.d.R. Airline Carrier oder TUI interne Systeme). Die einzelnen µServices laufen als Docker-Container im Clusterverbund innerhalb der Amazon AWS Cloud Infrastruktur.
  • Abstimmung der Schnittstellen zu externen Partnern (Airline-Buchungssysteme) und anderen Teams.
  • Architektur und Dokumentation des Microserviceverbundes.
  • Beratung und Review zum Entwicklungs- und Deploymentprozess (Continuous Integration, Continuous Delivery).
  • Erstellung und Überwachung von Architekturvorgaben sowie Code-Reviews.
  • Implementierung zentraler Bibliotheken und µServices.
  • Qualitätssicherung (hier insbesondere Einhaltung von Coding-Konventionen, Testabdeckung, Dokumentation).
Juni 2015 - Sept. 2017
2 Jahren 4 Monaten
Stuttgart, Deutschland

Softwarearchitekt / Entwickler

T-Systems International GmbH

  • Projektziel war die Migration und Zerlegung einer komplexen monolithischen JEE Applikation im WSO2-Stack (AS, ESB, Identity-Server, Governance-Registry) in mehrere standalone SpringBoot-Applikationen (komplexe Microservice-Architektur) und anschließende funktionale Erweiterung der Dienste.
  • Abstimmung, Spezifikation und Dokumentation der einzelnen Microservices (REST-API, MQTT, JMS).
  • Implementierung zentraler Bibliotheken und µServices.
  • Erstellung und Überwachung von Architekturvorgaben sowie Code-Reviews.
  • Abstimmung mit anderen Teams, zentraler Architektur und Kundenvertretern.
  • Qualitätssicherung (hier insbesondere Einhaltung von Coding-Konventionen, Testabdeckung, Dokumentation).
Okt. 2014 - Apr. 2015
7 Monaten
Dresden, Deutschland

Softwarearchitekt / Performance-Analyst

T-Systems Multimedia Solutions GmbH

  • Projekt: Carus Consilium Sachsen (Telemedizin)
  • Performance- und Memory-Analyse/-Tuning.
  • Finden und Beheben von Skalierungs- und Threading-Problemen.
  • Code- und Architektur-Reviews.
  • Implementierung diverser Basisklassen und Frameworkcode.
  • Architektur und Steuerung von Querschnittsthemen wie Authentifizierung/Autorisierung, Performance, Caching, Logging, Transaction- und Exception-Handling.
Juli 2013 - Aug. 2013
2 Monaten
Nürnberg, Deutschland

Berater / Softwarearchitekt

ING-DiBa

  • Projekt: Code- und Architektur-Review diverser intern genutzter Bank-Anwendungen
  • Code- und Architektur-Review diverser Softwarekomponenten der ING-DiBa.
  • Consulting zu Security- und Performance-Aspekten.
Sept. 2010 - Sept. 2014
4 Jahren 1 Monate
Dresden, Deutschland

Solution-Architekt

T-Systems Multimedia Solutions GmbH

  • Projekt: De-Mail (Großprojekt > 100 MA, Projektsprache Englisch)
  • Analyse der fachlichen und technischen Anforderungen, Aufwandsabschätzungen.
  • Modellierung der Geschäftsprozesse (mit BPMN und UML) und Anwendungsfälle (UseCases in UML und textuell).
  • Herleitung der Zielarchitektur und benötigter Systemkomponenten.
  • Herleitung von Entitäten und des Daten-Modells.
  • Abstimmung von Schnittstellen und Systemgrenzen.
  • Festlegungen zur Nutzung von Frameworks und API's sowie zentraler Tools.
  • Erstellung DV-Konzeption.
  • Planung von Aufgabenpaketen und Steuerung der Architekten und Entwickler.
  • Reviews von Architektur- und Entwicklungsergebnissen (Code- und Architektur-Reviews).
  • Coaching von Entwicklern.
Nov. 2008 - Aug. 2010
1 Jahr 10 Monaten
Berlin, Deutschland

Softwarearchitekt / Entwickler

Lufthansa Systems Berlin GmbH

  • Projekt: Revenue-Management
  • Architektur und Entwicklung eines proprietären OR-Mapping-Frameworks (architektonisch inspiriert von JPA, JDO, Hibernate und Rails-ActiveRecord).
  • Implementierung diverser Services (Business-Layer und Domain-Model-Layer in einer SOA).
  • Performance- und Stabilitäts-Analysen sowie Aufspüren und Beseitigen von Skalierungs- und Multithreading-Problemen.
Aug. 2008 - Okt. 2008
3 Monaten
Darmstadt, Deutschland

Java-Entwickler / Analyst

General Electric Energy GmbH

  • Projekt: Visualisierung von Geo-Daten (GIS), Auftrags- und Kooperationsmanagement
  • Java-Entwicklung.
  • Performance-, Stabilitäts- und Code-Quality-Analysen.
  • Erstellung von JUnit- und Cactus-Tests.
  • JBoss-Konfiguration, -Slimming und -Tuning (Cluster-Architektur).

Technischer Projektleiter / Softwarearchitekt / Entwickler

ITEC GmbH

  • Projekt: Wärmepumpendimensionierungsprogram ‚WDim‘
  • Simulationssoftware zur Dimensionierung von Wärmepumpenanlagen für Ein- und Mehrfamilienhäuser inklusive diverser Module zur Wirtschaftlichkeitsanalyse mit Vergleichsmöglichkeit alternativer Wärmeerzeuger/-quellen sowie Wärmebedarfsberechnung nach verschiedenen Berechnungsverfahren.
  • Erstellung Software-Architektur.
  • Implementierung der Desktop-Anwendung.
  • Technische Projektleitung.
Dresden, Deutschland

Technischer Projektleiter / Softwarearchitekt

T-Systems Multimedia Solutions GmbH

  • Projekt: Human Resources-Management, Jobbörse der Deutschen Telekom AG (International und vollständig lokalisiert im Einsatz, darunter Österreich, Schweiz, Südafrika, Spanien, u. a.)
  • Technische Projektleitung.
  • Analyse der Kundenanforderungen und Erstellung Fachkonzeption und DV-Konzeption.
  • Workflow-Modellierung (BPM).
  • Erstellung Prototyp der Anwendung.
  • Erstellung Software-Architektur.
  • Unterstützung Entwicklung und Consulting.
  • Entwicklung Workflow-Engine und hochkomplexes Rechte-/Rollen-Konzept.
  • Qualitätssicherung.
  • Coaching und Support der Projektmitarbeiter.
Dresden, Deutschland

Technischer Projektleiter / Softwarearchitekt

T-Systems Multimedia Solutions GmbH

  • Projekt: Telekom HR-Portal
  • Integrationsprojekt diverser Legacy-Anwendungen und neuer Softwarekomponenten in eine SOA (umgesetzt als OSGi-Komponenten Architektur; frontendseitig als Rich-Internet-Application (RIA) mit Web-Desktop-Oberfläche).
  • Erstellung DV-Konzept.
  • Prototyping / Erstellung Proof-Of-Concept.
  • Softwarearchitektur.
  • Technisches Consulting.
  • Technische Projektleitung.
  • Reviews von Architektur- und Entwicklungsergebnissen.
  • Coaching von Entwicklern.

Zusammenfassung

Als analytischer Problemlöser nutze ich gerne kreative Lösungsansätze und bilde mich kontinuierlich weiter, um meine Kenntnisse in der Breite und Tiefe zu erweitern. Mein Kompetenz-Schwerpunkt liegt auf Solution- und Software-Architektur bzw. Backend-Entwicklung und DevOps. Durch langjährige Erfahrung und Neugier bringe ich Effektivität und einen hohen Qualitätsstandard mit gesundem Pragmatismus und Effizienz in Einklang.

Sprachen

Deutsch
Muttersprache
Englisch
Verhandlungssicher

Zertifikate & Bescheinigungen

AWS Zertifizierter Entwickler – Associate (DVA)

AWS

AWS Zertifizierter Solutions-Architekt – Associate (SAA)

AWS

iSAQB Zertifizierter Professional für Softwarearchitektur, Fortgeschritten (CPSA-A)

iSAQB

SpringSource Zertifizierter Spezialist für Enterprise Integration (SCEIS)

SpringSource

OMG Zertifizierter Experte für Geschäftsprozessmanagement – Grundlegend (OCEB-F)

OMG

OMG Zertifizierter UML-Professional – Mittelstufe (OCUP-I)

OMG