Architecture Lead
Bei adata Software bin ich tief in den Architekturentscheidungen für unsere Infrastruktur und Software beteiligt.
Maßgeblich für diese Rolle ist es, dass ich immer zwei Schritte vorausdenke. Ich muss wissen welche Folgen es hat, sich auf eine Bibliothek zu verlassen, wo sich die kritischen Punkte der Infrastruktur befinden und wie ich Sicherheitsrisiken vermeide.
All das und noch mehr muss ich beachten, damit unsere Software stabil, sicher und skalierbar bleibt.
Bei Evomotion konnte ich diese Fähigkeiten aufbauen und miterleben wie sich Software entwickelt. Auch jetzt noch steht dieselbe Grundarchitektur und ich freue mich zu sehen, dass die damalige Architektur so solide war, dass sie immer noch besteht.
Optimierung
Sowohl bei Evomotion, als auch bei adata war bzw. bin ich an der Optimierung der Produkte beteiligt. Ob Datenbank, Berechnungen oder Abläufe, ich scheue nicht davor hinter die Kulissen zu schauen. Nur so finden sich Fehler bevor sie Produktionsumgebungen erreichen.
Linux
Seit Beginn meines Fachabiturs habe ich einen radikalen Schritt gemacht und bin komplett auf Linux umgestiegen. Für mich ist dies kein reines Server-Betriebssystem, es spielt bei mir eine zentrale Rolle in allen Umgebungen.
Egal ob bei Datenrettung oder bei der Entwicklung benutze ich es täglich in meinem Alltag.
Dort ist es deutlich leichter für mich einen Container oder Kubernetes Cluster zu starten. Ich kenne mich aus in Komponenten wie SELinux oder Podman. Egal ob libvirt, qemu oder Proxmox, privat oder beruflich habe ich Virtualisierung vielseitig und umfangreich eingesetzt.
Als meine bisher größte Herausforderung würde ich dabei die Datenwiederherstellung nach einem Disasterfall bezeichnen, der alles in allem glimpflich verlaufen ist.
Containerisierung
Dieses Gebiet hat es mir angetan. Seit meinem Studium beschäftige ich mich mit diesem Thema sowohl privat, als auch in meinen beruflichen Tätigkeiten.
Ob in Kombination mit SElinux um präzise Berechtigungen eines Prozesses bis in den Container hinein zu definieren, oder im Build-Prozess um schnellere, kleinere und sicherere Images zu erzeugen.
Ob auf Alpine-Basis oder von Scratch, freue ich mich dort jede Möglichkeit zu ergründen. Insbesondere da diese Container unsere Systemlandschaft prägen, wobei jedes Megabyte RAM-Verbrauch, jedes Stückchen Speicherplatz zählt, um unsere Prozesse so effizient, sicher und kostengünstig wie möglich zu gestalten.
Bei adata bin ich damit betraut die Test und Produktivumgebungen in Containern zu verwalten. Dafür habe ich sowohl den Build, als auch das Deployment maßgeblich beeinflusst.
CICD
Seit ich bei adata arbeite, habe ich dort die komplette Automatisierung der Build-Prozesse geleitet. Build, Test, Signierung und Deployment lief dabei durch meine Hände.
Dabei ist Gitlab zu einem ständigen Begleiter geworden.
Ob es darum ging Installer zu bauen, Prozesse zu automatisieren, Tests auszuwerten, Sicherheitsscans durchzuführen oder Deployments auszurollen, überall bin ich dabei oder leite die nächste Generation dazu an.
Entwicklung in diversen Sprachen
Seit dem Ende meiner Schulzeit an der Realschule habe ich mit dem Programmieren begonnen. Dadurch bin ich mit diversen sprachen in kontakt gekommen und bin in der lage in vielen davon Produktiv zu arbeiten.
Mit Java begann alles, mit Swing die ersten Anwendungen und Android die ersten anfänge für Apps.
Später mit C / C++ und Qt in der Ausbildung dann Hilfstools für das Elekto und Bauwesen.
Mit meinem Einstieg in das Studium begann ich in Go, Rust, C#, Kotlin, Swift und Objective-C. Dazu kamen die diverse dazu passenden Frameworks für den usecase. Gin, Gorilla, cobra, Axum, tokio, Rocket, SeaOrm, Asp.net, Entity Framework, Jetpack Compose, Dagger / Hilt und viele mehr habe ich dazu benutzt.
Durch die vielen Erfahrungen habe ich nun auch bei meinen Tätigkeiten bei adata in kürzester Zeit die Entwicklung in Cobol unterstützen können.
Ich sehe also für mich kein problem mich in neue Probleme, Techniken und Herausforderungen zu bewältigen.
Qualität und Tests
Mein ansatz ist Test first, wann immer ich kann setze ich das durch und nutze dafür alles was mir zur verfügung steht.
Wiederholbare tests auf jeder ebene Schützt unsere arbeit gegen flüchtigkeitsfehler.
Bei meinen arbeiten habe ich alleine oder im Team Bibliotheken testabdeckungen und aussagen über softwarequalität aufbauen können. Ob Unit, Integration oder Blackbox Tests, ich habe alle Teile davon bereits entworfen und umgesetzt in code und CICD. Zudem konnte ich bei evomotion die Hardwaregestützten Tests mit begleiten.