Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Überblick

Überblick

Jan Grigat
EntwicklerB.Sc.Fokus Performance / Backend

Offen für Angebote ab 55K€ Remote oder 60K€ bis zu 2x/Woche vor Ort.

Persönliche Details oder Dokumente wie Zeugnisse werden auf Anfrage herausgegeben.

Vier größten Skills

  • Architecture Lead
  • Optimierung
  • Linux
  • Containerisierung

Mehr

Bisherige Positionen

Werdegang

Typologo_ForWeb_Evomotion
Fachabitur
Studium
Angewandte Informatik
App Entwickler
iOS / Android
Backend Entwickler
C# / Asp.Net
Evomotion
3,5 Jahre + 0,5 Jahre
adata Software GmbH
seit mehr als 4 Jahren

Kompetenzen

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.

Überblick

Immer wieder werde ich gefragt, ob ich in Bereich X mit Y schon ein Projekt gemacht habe.

Diese Seite sollte einen groben überblick darüber geben, was ich schon gemacht habe.

Hier sind ein paar Stichwörter. Zögern sie nicht die Suche zu nutzen welche auf der gesamten Webseite sucht.

ProjektUmfeldErfahrung / DauerSprache
evomove AppBeruflich4 JahreKotlin, Java
Projektarbeit SoftwareentwicklungStudium3 MonateKotlin
Projektarbeit Internet-AnwendungsentwicklungStudium3 MonateJava
Projektarbeit Android EntwicklungStudium3 MonateKotlin
Modding / Reverse EngineeringPrivat6 Jahre +Java, Kotlin
Gcode ViewerBeruflich1 WocheRust
Abschlussarbeit BachelorStudium1 JahrRust, Kotlin
Lullaby BooksPrivat1 MonatRust, Kotlin
Lagerhaltung für einen StoffhandelFreiberuflich1 Jahr +Rust, Go
C Interop für VerschlüsselungBeruflich2 Jahre +C, Swift, Kotlin, Java
AppEngine FrameworkBeruflich4 Jahre +Csharp

Projektliste

evomove App

Bei Evomotion war ich maßgeblich an der Entwicklung der Android App und dessen BLE-Kommunikation beteiligt.

Techniken:

  • Kotlin
  • Java
  • Google ML
  • Kotlin Compose
  • SQLite
  • SQL

Projektarbeit Softwareentwicklung

Für mein Studium habe ich zusammen mit meinen Kommilitonen eine serverseitig gerenderte Webanwendung mit REST-API entwickelt.

Techniken:

  • Kotlin
  • ktor
  • Bootstrap

Projektarbeit Internet-Anwendungsentwicklung

Dies war eine Gemeinschaftsarbeit, bei der eine serverseitig gerenderte Webanwendung mit REST-API entwickelt wurde.

Techniken:

  • Java
  • MySQL
  • SQL
  • SpringBoot

Projektarbeit Android Entwicklung

Ein Gemeinschaftsprojekt, bei dem eine App für die verschlüsselte Verwahrung von Notfallinformationen entwickelt wurde.

Techniken:

  • Kotlin
  • Compose
  • AWS

Modding / Reverse Engineering

Mit diesem Projekt habe ich meine Lernkurve begonnen und Kenntnisse erworben, welche ich später überall wiederverwenden konnte.

Techniken:

  • Java
  • Kotlin
  • Forge
  • Fabric

Gcode viewer

Für Stoffschnitte musste klar sein, welches Muster sich in einer Datei befindet.

Techniken:

  • Rust
  • egui

Abschlussarbeit Bachelor

Die Anwendung sollte die Positionierung von Elektroden anhand eines 3D-Modells erkennen und sichtbar machen. Dabei sollte die beste Lösung gefunden werden.

Techniken:

  • Rust
  • Kotlin

Lullaby Books

Ich brauchte ein Tool um unsere Bücher zu katalogisieren. Also schrieb ich eines mit dem ich die Barcodes scannen kann und die Metadaten per API abrufen kann. Warum? Meine Frau und ich besitzen inzwischen über 2000 Bücher.

Techniken:

  • Rust
  • reqwest
  • actix-web
  • Google books
  • seaorm
  • Postgres
  • sql
  • Bootstrap
  • Android
  • Compose
  • Microservices
  • Container
  • Kubernetes

Lagerhaltung für einen Stoffhandel

Es wurde eine Anwendung zur Verwaltung des Lagers benötigt für Verkauf und Logistik.

Techniken:

  • Rust
  • actix-web
  • Postgres
  • sql
  • Bootstrap
  • Go
  • Container
  • Kubernetes
  • Microservices

C Interop für Verschlüsselung

Es musste eine native Bibliothek in eine Android und Swift App integriert werden. Dabei habe ich die betreffenden Module geschrieben.

Technik:

  • C
  • ObjectiveC
  • Swift
  • Kotlin
  • Java

AppEngine Framework

adata entwickelt seine Anwendungen mithilfe eines hausinternen Frameworks. Für diese mussten Datanbankanbindungen, Hilfsmittel und Komponenten entwickelt werden.

Ich bin mit verantwortlich für dessen Entwicklung, dabei lag mein Kernbereich auf REST-API, Datenbank, Performance und Monitoring.

Techniken:

  • Csharp
  • .Net
  • Mariadb
  • Mysql
  • Postgres
  • Mssql
  • Sql
  • Asp.Net
  • OpenTelemetry
  • Container
  • Blazor
  • Razor

Studium

Parallel zu meinem Studium war ich als Werksstudent bei evomotion tätig. Meine Tätigkeiten sind deckungsgleich mit der späteren Anstellung als App-Entwickler.

Theoretisches Wissen, dass ich während des Studiums aufbaute, konnte ich nahezu komplett bei evomotion anwenden oder begleiten. So sind Dinge wie “Relationale Datenbanken” und “Internet- Anwendungsentwicklung” zum Teil auch in der App wiederzufinden.

Dies half mir, mein Wissen zu festigen und praktische Bindungen die es ohne diese Tätigkeit nie gegeben hätte aufzubauen.

Neben meinen Aufgaben an der App-Entwicklung setzte ich kleinere Hilfstools auf, wie ein Tool das Serien-Labeldruck ermöglichte. Da wir Stoffe zuschneiden mussten, benötigten wir eine Vorschau für die Schnittmuster am Gerät, so wurde auch ein G-Code-Preview gebaut.

Zuletzt konnte ich mich um die Automatisierung des Build-Prozesses der Apps kümmern.

Als Abschluss meines Studiums durfte ich meine Bachelorarbeit über “Migrierung der Schnittmusterberechnung anhand von 3D-Scans am Beispiel einer Unterschenkelmanschette” schreiben.

Tätigkeitsbereich

Siehe App-Entwickler

App-Entwickler

Note

Diese Tätigkeit hat immer wieder Überschneidungen z.b. mit meinem Tätigkeitsfeld als DevSecOps Engineer. Daher ist es sinnvoll bei Skills die sie hier vermissen auch in meine andere Tätigkeiten zu schauen.

Während so wie nach meines Studiums war ich bei evomotion als App-Entwickler tätig. So war ich mit der Zeit an beiden Projekten beteiligt, schrieb für die iOS-Appkomponenten und wechselte später zu Android.

Ich habe die Entstehung der Android App von Anfang an begleitet. Während dieser Zeit habe ich auch die Integration der nativen Sicherheitskomponenten übernommen, ein Teil der mir noch lange im Gedächtnis geblieben ist.

Während die Entwicklung bei iOS vorranschritt, habe ich unter Android mit Kotlin, Jetpack-Compose UI die Anwendungslogik ausgearbeitet und den Bluetooth-Stack implementiert.

Nach meinem Studium wurde ich von evomotion als App-Entwickler übernommen.

Während die App sich stetig weiterentwickelte, durfte ich die nächste Generation Werksstudenten anlernen.

Tätigkeitsbereich

  • Weiterentwicklung der iOs App
    unter den Auflagen nach Medizinproduktverordnung.
    • Swift
    • macOS/iOs
    • Polarion
  • Greenfield-Implementierung der Android App
    inklusive Betreuen des Deployments bei Kunden in Produktion wie Betaprogramm.
    • Android
    • Android-Studio
    • BLE
  • Konzeption und Aufbau der CICD durch Jenkins
    dabei wurde die iOs so wie die Android-App gebaut und halbautomatische Tests gegen die Hardware ausgelöst.
    • Jenkins
    • Docker
    • Android SDK
    • Android NDK
  • Konzeption und Umsetzung der Testautomatisierung
    der Android und iOs App zur Sicherstellung der Funktionen.
    • Android SDK
    • Espresso
    • XCode
  • Integration der Peripherie
    mit BLE und Verschlüsselung
    • Android NDK
    • Android SDK
    • BLE
  • Schulung und Weiterbildung von Mitarbeitern
    anleiten von Architektur und UX Development
    • Android SDK
    • Compose
    • Material Design
  • Automatisierung der Hausinternen Prozesse
    durch Tools für das Alltagsgeschäft
    • Compose Multiplatform
    • Java
    • Kotlin
    • Ktor
  • Dokumentation der Anwendung in Polarion
    nach vorgaben durch Tüv und Auflagen nach Medizinproduktverordnung
    • Polarion

Backend Entwickler

Note

Diese Tätigkeit hat immer wieder Überschneidungen z.b. mit meinem Tätigkeitsfeld als DevSecOps Engineer. Daher ist es sinnvoll bei Skills die sie hier vermissen auch in meine andere Tätigkeiten zu schauen.

Als Backend-Entwickler bei adata entwickle ich das Hauseigene Framework weiter, mein Fachgebiet ist hier die Datenbank-Integration.

Ich konnte erfolgreich die Telemetrie-Datenerfassung umsetzen, sowie den Umbau der Strukturen für den Betrieb als Container in der Cloud. Neben Schulung von Mitarbeitern, war ich damit betraut die Automatisierung der CI/CD Umgebung aufzubauen.

Mithilfe der Diagnosedaten konnten wir Probleme identifizieren und die Optimierung vorantreiben. Zuletzt konnten wir die großflächige Erweiterung der QA umsetzen.

Neben meiner primären Arbeit als Entwickler, trug ich meinen Teil dazu bei die Infrastruktur umzubauen. So begleitete und teilweise betreute ich den Aufbau von Gitlab und Proxmox so wie das Aufsetzen der Unternehmensweiten Authentifizierung.

Auch war ich mit der Forschung für Weiterentwicklungen beschäftigt und habe zuletzt den Umbau des Produktes auf Asp.Net umgesetzt.

Eine der wichtigsten Erfahrungen konnte ich durch eine Disaster-Recovery machen, auch wenn dieses Vorkommnis nicht unbedingt erfreulich ist, so sind es doch Erfahrungen, die ich eventuell später wieder anwenden kann.

Tätigkeitsbereich

  • Konzeption, Forschung und Entwicklung des Backends
    für das hauseigene Framework, inklusive Datenbankmodellen mit Migration und Backup
    • .Net
  • Konzeption und Umsetzung von End-to-End-Monitoring
    mithilfe von OpenTelemetry, bei der Metriken zur Überwachung und Sicherstellung des Betriebs in der Cloud und beim Kunden On-Premise genutzt wurden.
    • OTLP
    • Grafana
    • Loki
    • Prometheus
    • Tempo
    • Asp.Net
  • Modularisierung der CICD-Pipeline
    zur Nutzung mit minimalem Aufwand in neuen und alten Projekten
    • Gitlab CICD
  • Team-Training für Programmierung
    mit unter anderem Themen wie Multithreading, QA, Testing und Sicherheitskonzepten
    • .Net Async
    • XUnit
    • NUnit
    • OAuth2
    • OIDC
  • Implementierung defensiver Softwarearchitekturen
    zum Schutz vor gängigen Angriffen wie Prompt-Injection, SQL-Injection, XSS, CSRF und DDoS
    • Asp.Net
    • ADO.Net
    • Traefik
  • Erstellung von Templates für .NET
    zur Reduktion des Initialaufwandes für neue Anwendungen.
    • dotnet
  • Konzeption der Plugin- und REST-Architektur
    inklusive Authentifizierung und Autorisierung für das bestehende Framework.
    • Asp.Net
    • OIDC
    • OAuth2
  • Datenbank-Integration
    für MariaDB, Mysql, MSSQL und PostgreSQL
    • .Net
    • ADO.Net
  • Konzipierung und Umsetzung von serverseitiger Logik
    zum betrieb als Anwendungsserver
    • .Net
    • Asp.Net
    • Telerik
    • Docker/Podman Container
  • Aufbau von Microservices
    zur weiterentwicklung der Systemlandschaft und dem Umbau von Monolithen
    • Docker/Podman/Buildah
    • Kubernetes
  • Überwachung von Sicherheitsaspekten
    durch Durchführung und auswertungen von Pentests, Implementierung von Zugriffskontrollen und Authentifizierung
    • RBAC
    • Qodana
    • Sonarqube
    • aikido
  • Analyse Debugging und Fehlerbehebung
    bei Kunden und Mitarbeitern, ob im Framework oder den Anwendungen
    • Docker/Podman
    • OTLP
    • Jetbrains Rider
  • Unit und Integration testing
    aller ebenen und konzeption passender arbeitsabläufe.
    • NUnit
    • XUnit
    • Blackbox
    • Integration-Tests
  • Code - Review
    für Code im Framework und den Anwendungen
    • Gitlab
    • Bitbucket
  • Konzeption, Planung und Dokumentation
    auf allen Ebenen um die Produkte
    • Confluence
    • Jira
    • Gitlab
    • Dokumentationsgenerierung aus Code-Dokumentation
  • Ausrollen von Software-Updates
    in der Cloud und On-Premise
    • Docker/Podman
    • Kubernetes
    • S3
  • Teamübergreifende Beratung, Schulung und Entwicklung
    in CICD, Architektur und Softwareintegration
    • Gitlab
    • Confluence
    • Jira
    • REST
    • Asp.Net
    • OAuth2
    • OIDC
    • RBAC
  • Aufbau und Betreuung der Qualitätssicherung
    für alle Softwareteile von CLI bis Asp.Net Dienst
    • CICD
    • Gitlab
    • XUnit
    • Blackbox, Integration und Unit-Tests

DevSecOps Engineer

Note

Diese Tätigkeit hat immer wieder Überschneidungen z.b. mit meinem Tätigkeitsfeld als Backend Entwickler. Daher ist es sinnvoll bei Skills die sie hier vermissen auch in meine andere Tätigkeiten zu schauen.

In meiner Rolle bin ich das bindeglied zwischen vielen Teams, so verlassen sich Tester, Entwickler und weitere auf die Infrastruktur die ich aufbaue und oder Betreue.

Neben den Tätigkeiten zur überwachung und Optimierungen des Builds der Software, achte ich auch auf die Tests und Auswertungen von Sonarqube oder anderer Tools zur Qualitätsüberwachung.

In den Pipelines werte ich Ergebnisse aus, bereite diese auf oder informiere Betroffene über Updates.

Ich nutze Effektiv die Tools, die mir gegeben werden, um das bestmögliche Ergebnis zu erreichen. Dabei ist es mir wichtig meine Kollegen nicht abzuhängen, so schule ich sie oder leite sie in der Nutzung der Pipelines an.

Sollten Probleme auftreten, habe ich immer ein offenes Ohr für alle und versuche, diese sofort zu kanalisieren oder zu lösen. Ob Fragen, Anregungen oder kuriosen Fehlern, aufgrund meinem breiten Spectrum an Erfahrung liefere ich lösungen und Denkanstöße.

Wärend meiner Zeit bei adata habe ich diese Tätigkeit als weitere Rolle im Unternehmen neben der Anstellung als Backend Entwickler ausgeübt.

Tätigkeitsbereich

  • Greenfield-Aufbau oder Weiterentwicklung von DevSecOps
    mit Schwerpunkt CICD
    • Gitlab
    • Docker/Podman
    • Kubernetes
    • Helm
    • Sonarqube/Aikodo/Qodana
  • Konzeption und Umsetzung von Pipelines
    für Rapid-Tests und Test-Deployments für verschiedene Anwendungen
    • Gitlab
    • Docker/Podman/Buildah
    • Compose/Quadlet
    • Kubernetes
    • Helm
  • Konzeption und Umsetzung von End-to-End-Monitoring
    mithilfe von OpenTelemetry, bei der Metriken zur Überwachung und Sicherstellung des Betriebs in der Cloud und beim Kunden On-Premise genutzt wurden.
    • OTLP
    • Grafana
    • Loki
    • Prometheus
    • Tempo
  • Modularisierung der CICD-Pipeline
    zur Nutzung mit minimalem Aufwand in neuen und alten Projekten
    • Gitlab CICD
  • Containerisierung der Anwendungen für SaaS-Betrieb
    in AWS und Baremetal-Cloud.
    • Docker/Podman/Buildah
    • Gitlab CICD
  • Design und Umsetzung der Helm-Charts
    zum Deployment der Software in der Cloud für Produktiv und Tests
    • AWS/BareMetal
    • Helm
    • Gitlab CICD
  • Aufbau von IaC
    für den Betrieb von kritischer Infrastruktur.
    • Proxmox
    • Terraform
    • Ansible
  • Automatisierung und Integration
    der unternehmensweiten Anmeldung über SSO mit Authentik
    • LDAP
    • OIDC
    • Gitlab
  • Team-Training für CICD/QA
    mit unter anderem Themen wie Pipelines, QA, Testing und Sicherheitskonzepten
    • Gitlab
    • XUnit/NUnit
    • Sonarqube/Aikido/Qodana
  • Umstellung der Infrastruktur von Nginx zu Traefik
    und dessen Automatisierung für den Produktiv und Testbetrieb.
    • Traefik
    • QA
    • Gitlab
  • Aufbau der Baremetal Kubernetes Umgebung
    für den Produktivbetrieb.
    • CoreOS
    • Terraform
    • Ansible
    • Gitlab
  • Resilienz-Design und die proaktive DR-Bereitschaft
    mithilfe von Planung und Test von Disaster-Recovery- und Backup-Strukturen und Zeitbemessungen für die Wiederaufnahme
    • Proxmox