Umsetzung und Weiterentwicklung einer webbasierten Storefront zur dynamischen Bestellung und Verwaltung
Fullstack EntwicklerAxiosBITVCI/CD...
Fullstack Entwickler
In einem agilen Team war ich als Fullstack Entwickler an der Umsetzung und Weiterentwicklung einer webbasierten Storefront zur dynamischen Bestellung und Verwaltung von Services beteiligt. Das Frontend wurde mit Angular 16+, TypeScript, HTML5, CSS3 und Sass umgesetzt. Dabei kamen moderne Angular-Architekturen, wiederverwendbare Komponenten, reaktive Datenflüsse mit RxJS sowie responsive und barrierearme UI-Konzepte zum Einsatz. Darüber hinaus wirkte ich an der Konzeption neuer Frontend-Funktionalitäten und an der kontinuierlichen Weiterentwicklung der Anwendungsarchitektur mit. Dabei brachte ich Vorschläge zur nachhaltigen Strukturierung, Wiederverwendbarkeit und Erweiterbarkeit der Lösung ein.
Die Backend-Architektur bestand aus mehreren lose gekoppelten Services. Zentrale API- und Storefront-Funktionalitäten wurden mit NestJS auf Basis von TypeScript implementiert. Ergänzend wurde ein Java-basierter Microservice mit Spring Boot entwickelt und weiterentwickelt, der fachlich komplexe Verarbeitungsprozesse sowie die Integration bestehender Unternehmenssysteme übernahm. Die REST-Schnittstellen des Services wurden mit Spring Web umgesetzt. Für den Datenzugriff kamen Spring Data JPA und Hibernate zum Einsatz.
Für die persistente Speicherung und effiziente Verarbeitung der Daten wurde PostgreSQL verwendet. In den NestJS-Services wurde die Datenzugriffsschicht mit TypeORM umgesetzt. Entitäten, Datenbankbeziehungen, Migrationen und Abfragen wurden dadurch strukturiert und wartbar abgebildet. Im Spring-Boot-Service erfolgte die Persistenzanbindung über JPA und Hibernate. Im Rahmen der API-Entwicklung wurden performante und wartbare REST-Schnittstellen konzipiert und implementiert. Bestehende Integrationen wurden kontinuierlich hinsichtlich Struktur, Wartbarkeit, Fehlerbehandlung und Erweiterbarkeit optimiert.
Zur asynchronen Kommunikation zwischen den NestJS- und Spring-Boot-Services sowie zur Verarbeitung von Hintergrundprozessen wurde RabbitMQ eingesetzt. Ereignisbasierte Kommunikationsabläufe ermöglichten eine lose Kopplung der Systemkomponenten, das Abfangen von Lastspitzen und die zuverlässige Verarbeitung von Bestell-, Status- und Änderungsereignissen. Dabei wurden Nachrichten veröffentlicht, konsumiert, validiert und fachlich verarbeitet. Zusätzlich wurden Fehlerfälle, Wiederholungsmechanismen und eine robuste Verarbeitung nicht erfolgreich zugestellter Nachrichten berücksichtigt.
Echtzeitfunktionen, Statusaktualisierungen und interaktive Kommunikationsszenarien wurden über WebSockets realisiert. Ergänzend wurden REST-Schnittstellen zur Integration interner und externer Systeme bereitgestellt. Die einzelnen Services wurden nach fachlichen Verantwortlichkeiten abgegrenzt und als unabhängig deploybare Komponenten innerhalb einer Microservice-Architektur betrieben.
Bei der UI-Umsetzung arbeitete ich eng mit dem UX-Team zusammen und nutzte Figma, um Designvorgaben abzustimmen und in Angular-Komponenten zu übertragen. Dabei wurden Anforderungen an die Barrierefreiheit gemäß BITV und WCAG berücksichtigt. Fachliche Anforderungen wurden gemeinsam mit Stakeholdern analysiert, technische Lösungsansätze konzipiert und Verbesserungspotenziale bestehender Funktionalitäten identifiziert und umgesetzt.
Zur Sicherstellung von Codequalität, Stabilität und Wartbarkeit wurden automatisierte Unit-, Integrations- und End-to-End-Tests mit Jest und Cypress eingesetzt. Die Spring-Boot-Komponenten wurden unter anderem mit JUnit und Mockito getestet. Ergänzend kamen ESLint, SonarQube sowie automatisierte CI/CD-Prozesse mit GitHub Actions beziehungsweise GitLab CI zum Einsatz.
Die Zusammenarbeit erfolgte nach agilen Methoden wie Scrum und Kanban. Neben der Feature-Entwicklung gehörten Code Reviews, technische Abstimmungen, Fehleranalysen und die kontinuierliche Verbesserung der Entwicklungs- und Deployment-Prozesse zu meinen Aufgaben. Authentifizierung, Autorisierung und sichere Kommunikation wurden unter anderem mit OAuth2, JWT und TLS/SSL umgesetzt.
Amazon API GatewayAmazon DynamoDBAmazon EventBridgeAWS CDKAWS LambdaCypressDockerESLintFigmaGitGitHubGitHub ActionsJiraMaterial UIMicrosoft Entra IDMock Service WorkerPostgreSQLRabbitMQSonarQubeSNSSQS
entwickelte für die WebApps zur Zahlungsabwicklung
Fullstack EntwicklerAdapter PatternAWSCI/CD...
Fullstack Entwickler
In einem agilen Team entwickelte ich als Fullstack-Entwickler neue Features für die WebApps von Riverty zur Zahlungsabwicklung. Der Backend-Bereich wurde als serverlose Cloud-Architektur auf AWS umgesetzt. Dabei wurden AWS Lambda-Funktionen mit TypeScript entwickelt und über AWS API Gateway als REST- bzw. GraphQL-Schnittstellen bereitgestellt. Für die Speicherung und Verarbeitung von Daten kamen AWS DynamoDB sowie AWS S3 zur Ablage statischer Inhalte wie Dokumente und Bilder zum Einsatz
Die serverlose Architektur wurde ereignisgetrieben umgesetzt, unter anderem durch die Integration von AWS EventBridge und AWS SQS zur asynchronen Verarbeitung von Geschäftsprozessen. Für Monitoring, Logging und Fehleranalyse wurde AWS CloudWatch genutzt. Die Infrastruktur wurde mit AWS CDK als Infrastructure as Code definiert, versioniert und automatisiert über bestehende CI/CD-Pipelines bereitgestellt. Dadurch konnten Cloud-Ressourcen reproduzierbar, skalierbar und wartbar verwaltet werden.
Das Frontend wurde mit React, Next.js und TypeScript implementiert, wobei Redux als State-Management-Lösung eingesetzt wurde. Das Styling des Frontends erfolgte gemäß definierter Styleguides mit MaterialUI sowie responsiven UI-Konzepten. Die Codequalität wurde durch E2E-Tests und Unit-Tests mit Playwright, Cypress und Jest sichergestellt. Bei der UI-Umsetzung arbeitete das Team eng mit dem UX-Team zusammen und nutzte Figma und Storybook, um Designvorgaben zu übernehmen, abzustimmen und in wiederverwendbare Frontend-Komponenten zu übertragen
Für Authentifizierung und Autorisierung wurden OAuth2, JWT und OpenID Connect eingesetzt. AWS Cognito wurde zur sicheren Benutzerverwaltung und zur Integration von Single Sign-On genutzt. Die Datenübertragung wurde über TLS/SSL abgesichert. Zusätzlich wurden statische Inhalte und Frontend-Artefakte über AWS S3 und AWS CloudFront performant ausgeliefert
Mein Team und ich arbeiteten eng im Pair Programming zusammen, teilten unser Wissen in regelmäßigen Sharing Sessions und organisierten unsere Zusammenarbeit mit täglichen Dailies sowie wöchentlichen Backlog Refinements und Sprint Plannings. Die Entwicklung erfolgte nach Scrum mit Fokus auf DevOps, CI/CD, Clean Code, automatisiertes Testing und wartbare serverlose Cloud-Architekturen
In einem agilen Team führte ich Code-Reviews und Fullstack Software Entwicklung für drei verschiedene Teams durch, die an der Software Factory IsyFact der BVA arbeiten. Diese SoftwareFactory enthielt Apps, bzw. verschiedene "Bausteine", die mit unterschiedlichen Technologien entwickelt wurden. Ein Frontend wurde mit Typescript und React entwickelt, während das Backend in Java unter Verwendung des Spring Frameworks implementiert und mit JUnit, Mockito bzw. unter anderem auch EasyMock Unit-Tests überprüft wurde. Ein anderes wurde mit Typescript und Vue im Frontend und Java / Quarkus im Backend implementiert. Die Backend-Services wurden in einer Microservice-Architektur aufgebaut. In spezifischen Anwendungsszenarien wurde DynamoDB als flexible NoSQL-Datenbank zur effizienten Verarbeitung und Speicherung semi-strukturierter Daten eingesetzt. Bei der UI-Umsetzung arbeiteten wir eng mit dem UX-Team zusammen und griffen auf Figma zurück, um Designvorgaben zu übernehmen, abzustimmen und in die Frontend-Komponenten zu übertragen.
Unsere Arbeitsprozesse organisierten wir effizient mit Hilfe des Kanban-Systems.Zudem wurden Sicherheitsmechanismen wie OAuth2 und JWT für die Authentifizierung und Autorisierung implementiert, Single Sign-On (SSO) zur zentralisierten Anmeldung, sowie TLS/SSL für die sichere Datenübertragung verwendet. OpenID und Spring Security wurden eingesetzt, um die Sicherheit der Anwendungen weiter zu erhöhen.
AxiosBITVCI/CDCSS3DevOpsDynamoDBGitHub Flow StrategieGraphQLGradleHTML5Hibernatei18nJavaJavaScript (TypeScript)JestJPAJUnitJWTKafkaKanbanKotlinNext.jsOAuth2OpenID ConnectPythonQuarkusReactRESTSassSpringSpring Boot / Spring SecurityThymeleafTLS/SSLTypeScriptVueW3CWCAG
MSG, BVA
1 Jahr 8 Monate
2022-05 - 2023-12
entwickelte eine neue Anwendung für den internen Gebrauch zur Organisation
Fullstack EntwicklerAdapter PatternBITVCI/CD...
Fullstack Entwickler
In einem agilen Team entwickelte ich als Fullstack-Entwickler eine neue Anwendung für den internen Gebrauch zur Organisation und Einsatz von Krisenvorsorge-Teams. Das Backend wurde in Java / Kotlin mit dem Framework Spring erstellt, wobei Liquibase und H2 für die Datenbank verwendet wurden.Gradle wurde für das Build-Management eingesetzt. Fürs Testing kamen JUnit und Mockito zum Einsatz
Das Frontend wurde mit React und Typescript implementiert, wobei React Admin für den Aufbau der Admin-Views und NextJS für serverseitiges Rendering genutzt wurden. Zur Anzeige und Interaktion mit Landkarten wurde ein GIS-System integriert. Das Styling des Frontends erfolgte gemäß definierten Styleguides und mit MaterialUI. Die Codequalität wurde durch E2E-Tests und Unit Tests mit Hilfe von Cypress und Jest sichergestellt
Bei der UI-Umsetzung arbeiteten wir eng mit dem UX-Team zusammen und griffen auf Figma und Storybook zurück, um Designvorgaben zu übernehmen, abzustimmen und in die Frontend-Komponenten zu übertragen
Für das Deployment und die Orchestrierung der Anwendung setzten wir Kubernetes ein, während Rancher zur Verwaltung der Kubernetes-Cluster verwendet wurde. Zudem implementierten wir OAuth2 und JWT für sichere Authentifizierungs- und Autorisierungsmechanismen, Single Sign-On (SSO) zur zentralisierten Anmeldung, sowie TLS/SSL zur Verschlüsselung der Datenübertragung. OpenID und Spring Security wurden zur weiteren Absicherung der Anwendung eingesetzt. Mein Team und ich arbeiteten über PairProgramming, teilten unser Wissen in regelmäßigen Sharing Sessions und organisierten unsere Teamarbeit mit täglichen Daylies sowie wöchentlichen Backlog Refinements und Sprint Plannings
Entwicklung einer App für die Dienstleistungsbranche
Fullstack EntwicklerAngularAWSAWS Lambda...
Fullstack Entwickler
Während meiner Anstellung bei GeeZee GmbH, einer IT-Consulting-Firma, war ich als Fullstack Entwickler maßgeblich an der Entwicklung einer App für die Dienstleistungsbranche beteiligt. Diese App konzentrierte sich darauf, die Kommunikation zwischen Kunden und Dienstleistern, insbesondere in der Gastronomie, zu optimieren .Für die Frontend-Entwicklung wurde Typescript mit dem Framework Angular verwendet, während im Backend Node.js und ExpressJs eingesetzt wurden. Als State-Managementt Tool wurde NGXS implementiert. Amazon S3 wurde in das Backend integriert, um die Speicherung und Verwaltung von statischen Inhalten, wie Bildern und Dokumenten, effizient zu handhaben. S3 ermöglichte eine skalierbare und kosteneffiziente Lösung zur Dateispeicherung, die den Nutzern schnellen und sicheren Zugriff auf hochgeladene Dateien bot.Zusätzlich wurde eine mobile Version der App entwickelt, die auf React Native basierte, um sowohl für Android als auch iOS eine einheitliche Benutzererfahrung zu gewährleisten. Für die Version der App, die speziell für Gastronomen entwickelt wurde, kam MongoDB als Datenbanklösung zum Einsatz, um eine flexible und skalierbare Datenverwaltung zu ermöglichen
Für das Nutzermanagement und die Authentifizierung setzten wir die Open-Source-Software Keycloak ein, unterstützt durch eine SSL-Verschlüsselung mit Let's Encrypt. Das Deployment und die kontinuierliche Integration der Anwendung wurde durch eine Kombination von Flux CI/CD und GitHub Actions automatisiert. GitHub Actions wurde insbesondere für das Auslösen der Pipelines und die Verwaltung von Code-Änderungen verwendet. Die Applikation wurde auf AWS gehostet und implementierte Architekturen wie Elastic Beanstalk und Amplify. Die Code-Verwaltung erfolgte über GitHub, während DynamoDB als Datenbank und Docker für die Containerisierung eingesetzt wurden
Diese vielfältigen Aufgaben und Projekte ermöglichten es mir, meine Fähigkeiten in verschiedenen Technologien und Cloud-Umgebungen zu erweitern und anzuwenden, um hochwertige und sichere Anwendungen für die Kunden von GeeZee GmbH zu entwickeln
AWS CDKDockerESLintGitGitHub ActionsJiraKeycloakMongoDBNodeJsnpmnxPlaywrightPostmanPrettierPrimeNGS3Visual Studio Code
entwickelte neue Features zur Verwaltung von Sozialversicherungsdaten
Backend EntwicklerAWS (EC2S3RDS)...
Backend Entwickler
In einem agilen Team entwickelte ich als Backend-Entwickler neue Features zur Verwaltung von Sozialversicherungsdaten. Mein Team und ich haben die Aufgaben hinsichtlich ihrer Programm- und Datenstruktur entworfen, automatisiert getestet und implementiert. Die Verarbeitung der Sozialversicherungsdaten erfolgt flexibel mithilfe einer Microservice-Architektur. Die Endpunkte wurden mit Apache Camel definiert und Datenpakete mit Apache Kafka versendet
Als Framework kam Quarkus mit der Programmiersprache Java zum Einsatz. Der Entwicklungsprozess erfolgte über Pull Requests. Integration- und Unit-Tests mithilfe von PACT und Mockito dienten zur Sicherstellung der Produktqualität.
Für das Deployment und die Skalierung der Microservices setzten wir AWS (EC2, S3, RDS) ein, wobei Rancher zur Verwaltung der AWS-Umgebungen diente. Die kontinuierliche Integration und Bereitstellung (CI/CD) wurde mit Tekton umgesetzt. Monitoring und Logging der Anwendungen erfolgten mit Prometheus und Grafana. Die kontinuierliche Integration und Bereitstellung (CI/CD) wurde mit Tekton umgesetzt. Monitoring und Logging der Anwendungen erfolgten mit Prometheus und Grafana.
Mein Team und ich organisierten unsere Teamarbeit nach Scrum mit täglichen Daylies sowie wöchentlichen Backlog Refinements, Sprint Plannings und Reviews
entwickelte neue Features für eine Anwendung im internen Gebrauch
Fullstack EntwicklerAngularBITVBootstrap...
Fullstack Entwickler
In einem agilen Team entwickelte ich als Fullstack-Entwickler neue Features für eine Anwendung im internen Gebrauch zur Aktualisierung und Anzeigen von Flugdaten
Diese Legacy Systeme / Anwendung wurde teilweise komplett neu implementiert und hinsichtlich ihrer Performance verbessert, zudem habe ich neue Features ausgearbeitet, getestet und im Backend sowie Frontend implementiert. Andere Bereiche der Altwanwendung wurden modernisiert. Das Backend ist in Java mit dem Framework Spring Boot geschrieben und wurde mit Unit-Tests in JUnit getestet. Das Frontend wurde mit Angular und Typescript implementiert und die Codequalität wurde über E2E-Tests mithilfe von Testcafe sichergestellt
NGXS wurde als State Management Tool verwendet. Als MQ Protokoll kam ActiveMQ zum Einsatz. Zudem implementierten wir OAuth2 und JWT für sichere Authentifizierungs- und Autorisierungsmechanismen, Single Sign-On (SSO) zur zentralisierten Anmeldung, sowie TLS/SSL zur Verschlüsselung der Datenübertragung. OpenID und Spring Security wurden zur weiteren Absicherung der Anwendung eingesetzt.Gradle wurde für das Build-Management eingesetzt. Das Styling des Frontends verlief im Rahmen von definierten Styleguides und Primereact als UI Component Library. Wir arbeiteten gegebenenfalls über PairProgramming, teilten unser Wissen während regelmäßiger Sharing Sessions und organisierten unsere Teamarbeit mit täglichen Daylies und wöchentlichen Backlog Refinements, sowie Sprint Plannings
Active MQDockerESLintGitGitHub ActionsIntelliJJBossJenkinsJiraKeycloakMariaDBnpmnxPrimeReactSonarQube
beteiligt an der Entwicklung einer Laborsteuerungsanwendung
Fullstack EntwicklerAngularAWS (EC2S3...
Fullstack Entwickler
Als Fullstack-Entwickler in einem agilen Team war ich an der Entwicklung einer Laborsteuerungsanwendung beteiligt, die sich auf die Steuerung von Medienträgern und Belüftungssystemen in Laboren konzentrierte. Im Frontend arbeitete ich an der Benutzeroberfläche, entwickelt in TypeScript mit dem Framework Angular. NgRx wurde als globaler State-Store verwendet, während zur Visualisierung von Messwerten wie Druck, Temperatur und Gasverbrauch die Bibliothek ngx-charts integriert wurde. Im Backend unterstützte ich bei der Entwicklung einer Microservice-Architektur in Java mit dem Spring Boot-Framework. Hibernate wurde für die Datenpersistenz in einer PostgreSQL-Datenbank genutzt, während RESTful APIs die Kommunikation zwischen Frontend und Backend ermöglichten. Für die Sicherheit der Anwendung und das Identitätsmanagement wurde Keycloak eingesetzt. Wir implementierten eine SSO-Lösung mit OAuth2 und OpenID Connect, um eine sichere Authentifizierung und Autorisierung zu gewährleisten
Das Projekt wurde nach Scrum-Methoden durchgeführt, was regelmäßige Sprint-Planungen, Daily Scrums, Sprint Reviews und Retrospektiven beinhaltete. Ich war aktiv an der Gestaltung des Product Backlogs beteiligt und arbeitete eng mit dem Product Owner und Scrum Master zusammen. Die Einhaltung hoher Codequalität wurde durch regelmäßige Code-Reviews, Pair Programming Sessions und die Nutzung von CI/CD-Pipelines mit Jenkins und Docker sichergestellt. Für die Codekonsistenz wurden Tools wie Prettier und ESLint sowohl im Frontend als auch im Backend verwendet
Im Rahmen eines agilen Teams trug ich zur Weiterentwicklung der Webanwendung bei, die für die graphische Darstellung von Produktionsanlagen aus der 3D-Simulationssoftware iPhysics zuständig ist
Gemeinsam mit dem Team entwickelten wir das Frontend in TypeScript mit dem Framework React. Für die 3D-Darstellung setzten wir die JavaScript-Bibliothek Three.js ein, die auch für die Implementierung einer VR-Funktionalität zur Begehung der Produktionsanlagen mit einer VR-Brille verwendet wurde. Die REST-Schnittstellen für die Datenabfrage von einer API wurden kollektiv implementiert, um die einzelnen Baugruppen in einem interaktiven Baum darzustellen. Das Backend ist in Java mit dem Framework Spring geschrieben und wurde mit Unit-Tests E2E Tests mithilfe von JUnit und Mockito getestet
Unser Testkonzept umfasste sowohl Unit-Tests mit JUnit und Mockito im Backend als auch End-to-End-Tests mittels Cypress im Frontend. Die Qualitätssicherung erfolgte durch regelmäßige Code-Reviews und Pair Programming Sessions. Die Einbindung von CI/CD-Pipelines mit Jenkins und Docker ermöglichte es uns, einen reibungslosen und effizienten Entwicklungsprozess aufrechtzuerhalten. Unsere Arbeit organisierten wir nach Scrum-Methoden mit regelmäßigen Sprint Planungen, Daily Scrums, Sprint Reviews und Retrospektiven
Umsetzung und Weiterentwicklung einer webbasierten Storefront zur dynamischen Bestellung und Verwaltung
Fullstack EntwicklerAxiosBITVCI/CD...
Fullstack Entwickler
In einem agilen Team war ich als Fullstack Entwickler an der Umsetzung und Weiterentwicklung einer webbasierten Storefront zur dynamischen Bestellung und Verwaltung von Services beteiligt. Das Frontend wurde mit Angular 16+, TypeScript, HTML5, CSS3 und Sass umgesetzt. Dabei kamen moderne Angular-Architekturen, wiederverwendbare Komponenten, reaktive Datenflüsse mit RxJS sowie responsive und barrierearme UI-Konzepte zum Einsatz. Darüber hinaus wirkte ich an der Konzeption neuer Frontend-Funktionalitäten und an der kontinuierlichen Weiterentwicklung der Anwendungsarchitektur mit. Dabei brachte ich Vorschläge zur nachhaltigen Strukturierung, Wiederverwendbarkeit und Erweiterbarkeit der Lösung ein.
Die Backend-Architektur bestand aus mehreren lose gekoppelten Services. Zentrale API- und Storefront-Funktionalitäten wurden mit NestJS auf Basis von TypeScript implementiert. Ergänzend wurde ein Java-basierter Microservice mit Spring Boot entwickelt und weiterentwickelt, der fachlich komplexe Verarbeitungsprozesse sowie die Integration bestehender Unternehmenssysteme übernahm. Die REST-Schnittstellen des Services wurden mit Spring Web umgesetzt. Für den Datenzugriff kamen Spring Data JPA und Hibernate zum Einsatz.
Für die persistente Speicherung und effiziente Verarbeitung der Daten wurde PostgreSQL verwendet. In den NestJS-Services wurde die Datenzugriffsschicht mit TypeORM umgesetzt. Entitäten, Datenbankbeziehungen, Migrationen und Abfragen wurden dadurch strukturiert und wartbar abgebildet. Im Spring-Boot-Service erfolgte die Persistenzanbindung über JPA und Hibernate. Im Rahmen der API-Entwicklung wurden performante und wartbare REST-Schnittstellen konzipiert und implementiert. Bestehende Integrationen wurden kontinuierlich hinsichtlich Struktur, Wartbarkeit, Fehlerbehandlung und Erweiterbarkeit optimiert.
Zur asynchronen Kommunikation zwischen den NestJS- und Spring-Boot-Services sowie zur Verarbeitung von Hintergrundprozessen wurde RabbitMQ eingesetzt. Ereignisbasierte Kommunikationsabläufe ermöglichten eine lose Kopplung der Systemkomponenten, das Abfangen von Lastspitzen und die zuverlässige Verarbeitung von Bestell-, Status- und Änderungsereignissen. Dabei wurden Nachrichten veröffentlicht, konsumiert, validiert und fachlich verarbeitet. Zusätzlich wurden Fehlerfälle, Wiederholungsmechanismen und eine robuste Verarbeitung nicht erfolgreich zugestellter Nachrichten berücksichtigt.
Echtzeitfunktionen, Statusaktualisierungen und interaktive Kommunikationsszenarien wurden über WebSockets realisiert. Ergänzend wurden REST-Schnittstellen zur Integration interner und externer Systeme bereitgestellt. Die einzelnen Services wurden nach fachlichen Verantwortlichkeiten abgegrenzt und als unabhängig deploybare Komponenten innerhalb einer Microservice-Architektur betrieben.
Bei der UI-Umsetzung arbeitete ich eng mit dem UX-Team zusammen und nutzte Figma, um Designvorgaben abzustimmen und in Angular-Komponenten zu übertragen. Dabei wurden Anforderungen an die Barrierefreiheit gemäß BITV und WCAG berücksichtigt. Fachliche Anforderungen wurden gemeinsam mit Stakeholdern analysiert, technische Lösungsansätze konzipiert und Verbesserungspotenziale bestehender Funktionalitäten identifiziert und umgesetzt.
Zur Sicherstellung von Codequalität, Stabilität und Wartbarkeit wurden automatisierte Unit-, Integrations- und End-to-End-Tests mit Jest und Cypress eingesetzt. Die Spring-Boot-Komponenten wurden unter anderem mit JUnit und Mockito getestet. Ergänzend kamen ESLint, SonarQube sowie automatisierte CI/CD-Prozesse mit GitHub Actions beziehungsweise GitLab CI zum Einsatz.
Die Zusammenarbeit erfolgte nach agilen Methoden wie Scrum und Kanban. Neben der Feature-Entwicklung gehörten Code Reviews, technische Abstimmungen, Fehleranalysen und die kontinuierliche Verbesserung der Entwicklungs- und Deployment-Prozesse zu meinen Aufgaben. Authentifizierung, Autorisierung und sichere Kommunikation wurden unter anderem mit OAuth2, JWT und TLS/SSL umgesetzt.
Amazon API GatewayAmazon DynamoDBAmazon EventBridgeAWS CDKAWS LambdaCypressDockerESLintFigmaGitGitHubGitHub ActionsJiraMaterial UIMicrosoft Entra IDMock Service WorkerPostgreSQLRabbitMQSonarQubeSNSSQS
entwickelte für die WebApps zur Zahlungsabwicklung
Fullstack EntwicklerAdapter PatternAWSCI/CD...
Fullstack Entwickler
In einem agilen Team entwickelte ich als Fullstack-Entwickler neue Features für die WebApps von Riverty zur Zahlungsabwicklung. Der Backend-Bereich wurde als serverlose Cloud-Architektur auf AWS umgesetzt. Dabei wurden AWS Lambda-Funktionen mit TypeScript entwickelt und über AWS API Gateway als REST- bzw. GraphQL-Schnittstellen bereitgestellt. Für die Speicherung und Verarbeitung von Daten kamen AWS DynamoDB sowie AWS S3 zur Ablage statischer Inhalte wie Dokumente und Bilder zum Einsatz
Die serverlose Architektur wurde ereignisgetrieben umgesetzt, unter anderem durch die Integration von AWS EventBridge und AWS SQS zur asynchronen Verarbeitung von Geschäftsprozessen. Für Monitoring, Logging und Fehleranalyse wurde AWS CloudWatch genutzt. Die Infrastruktur wurde mit AWS CDK als Infrastructure as Code definiert, versioniert und automatisiert über bestehende CI/CD-Pipelines bereitgestellt. Dadurch konnten Cloud-Ressourcen reproduzierbar, skalierbar und wartbar verwaltet werden.
Das Frontend wurde mit React, Next.js und TypeScript implementiert, wobei Redux als State-Management-Lösung eingesetzt wurde. Das Styling des Frontends erfolgte gemäß definierter Styleguides mit MaterialUI sowie responsiven UI-Konzepten. Die Codequalität wurde durch E2E-Tests und Unit-Tests mit Playwright, Cypress und Jest sichergestellt. Bei der UI-Umsetzung arbeitete das Team eng mit dem UX-Team zusammen und nutzte Figma und Storybook, um Designvorgaben zu übernehmen, abzustimmen und in wiederverwendbare Frontend-Komponenten zu übertragen
Für Authentifizierung und Autorisierung wurden OAuth2, JWT und OpenID Connect eingesetzt. AWS Cognito wurde zur sicheren Benutzerverwaltung und zur Integration von Single Sign-On genutzt. Die Datenübertragung wurde über TLS/SSL abgesichert. Zusätzlich wurden statische Inhalte und Frontend-Artefakte über AWS S3 und AWS CloudFront performant ausgeliefert
Mein Team und ich arbeiteten eng im Pair Programming zusammen, teilten unser Wissen in regelmäßigen Sharing Sessions und organisierten unsere Zusammenarbeit mit täglichen Dailies sowie wöchentlichen Backlog Refinements und Sprint Plannings. Die Entwicklung erfolgte nach Scrum mit Fokus auf DevOps, CI/CD, Clean Code, automatisiertes Testing und wartbare serverlose Cloud-Architekturen
In einem agilen Team führte ich Code-Reviews und Fullstack Software Entwicklung für drei verschiedene Teams durch, die an der Software Factory IsyFact der BVA arbeiten. Diese SoftwareFactory enthielt Apps, bzw. verschiedene "Bausteine", die mit unterschiedlichen Technologien entwickelt wurden. Ein Frontend wurde mit Typescript und React entwickelt, während das Backend in Java unter Verwendung des Spring Frameworks implementiert und mit JUnit, Mockito bzw. unter anderem auch EasyMock Unit-Tests überprüft wurde. Ein anderes wurde mit Typescript und Vue im Frontend und Java / Quarkus im Backend implementiert. Die Backend-Services wurden in einer Microservice-Architektur aufgebaut. In spezifischen Anwendungsszenarien wurde DynamoDB als flexible NoSQL-Datenbank zur effizienten Verarbeitung und Speicherung semi-strukturierter Daten eingesetzt. Bei der UI-Umsetzung arbeiteten wir eng mit dem UX-Team zusammen und griffen auf Figma zurück, um Designvorgaben zu übernehmen, abzustimmen und in die Frontend-Komponenten zu übertragen.
Unsere Arbeitsprozesse organisierten wir effizient mit Hilfe des Kanban-Systems.Zudem wurden Sicherheitsmechanismen wie OAuth2 und JWT für die Authentifizierung und Autorisierung implementiert, Single Sign-On (SSO) zur zentralisierten Anmeldung, sowie TLS/SSL für die sichere Datenübertragung verwendet. OpenID und Spring Security wurden eingesetzt, um die Sicherheit der Anwendungen weiter zu erhöhen.
AxiosBITVCI/CDCSS3DevOpsDynamoDBGitHub Flow StrategieGraphQLGradleHTML5Hibernatei18nJavaJavaScript (TypeScript)JestJPAJUnitJWTKafkaKanbanKotlinNext.jsOAuth2OpenID ConnectPythonQuarkusReactRESTSassSpringSpring Boot / Spring SecurityThymeleafTLS/SSLTypeScriptVueW3CWCAG
MSG, BVA
1 Jahr 8 Monate
2022-05 - 2023-12
entwickelte eine neue Anwendung für den internen Gebrauch zur Organisation
Fullstack EntwicklerAdapter PatternBITVCI/CD...
Fullstack Entwickler
In einem agilen Team entwickelte ich als Fullstack-Entwickler eine neue Anwendung für den internen Gebrauch zur Organisation und Einsatz von Krisenvorsorge-Teams. Das Backend wurde in Java / Kotlin mit dem Framework Spring erstellt, wobei Liquibase und H2 für die Datenbank verwendet wurden.Gradle wurde für das Build-Management eingesetzt. Fürs Testing kamen JUnit und Mockito zum Einsatz
Das Frontend wurde mit React und Typescript implementiert, wobei React Admin für den Aufbau der Admin-Views und NextJS für serverseitiges Rendering genutzt wurden. Zur Anzeige und Interaktion mit Landkarten wurde ein GIS-System integriert. Das Styling des Frontends erfolgte gemäß definierten Styleguides und mit MaterialUI. Die Codequalität wurde durch E2E-Tests und Unit Tests mit Hilfe von Cypress und Jest sichergestellt
Bei der UI-Umsetzung arbeiteten wir eng mit dem UX-Team zusammen und griffen auf Figma und Storybook zurück, um Designvorgaben zu übernehmen, abzustimmen und in die Frontend-Komponenten zu übertragen
Für das Deployment und die Orchestrierung der Anwendung setzten wir Kubernetes ein, während Rancher zur Verwaltung der Kubernetes-Cluster verwendet wurde. Zudem implementierten wir OAuth2 und JWT für sichere Authentifizierungs- und Autorisierungsmechanismen, Single Sign-On (SSO) zur zentralisierten Anmeldung, sowie TLS/SSL zur Verschlüsselung der Datenübertragung. OpenID und Spring Security wurden zur weiteren Absicherung der Anwendung eingesetzt. Mein Team und ich arbeiteten über PairProgramming, teilten unser Wissen in regelmäßigen Sharing Sessions und organisierten unsere Teamarbeit mit täglichen Daylies sowie wöchentlichen Backlog Refinements und Sprint Plannings
Entwicklung einer App für die Dienstleistungsbranche
Fullstack EntwicklerAngularAWSAWS Lambda...
Fullstack Entwickler
Während meiner Anstellung bei GeeZee GmbH, einer IT-Consulting-Firma, war ich als Fullstack Entwickler maßgeblich an der Entwicklung einer App für die Dienstleistungsbranche beteiligt. Diese App konzentrierte sich darauf, die Kommunikation zwischen Kunden und Dienstleistern, insbesondere in der Gastronomie, zu optimieren .Für die Frontend-Entwicklung wurde Typescript mit dem Framework Angular verwendet, während im Backend Node.js und ExpressJs eingesetzt wurden. Als State-Managementt Tool wurde NGXS implementiert. Amazon S3 wurde in das Backend integriert, um die Speicherung und Verwaltung von statischen Inhalten, wie Bildern und Dokumenten, effizient zu handhaben. S3 ermöglichte eine skalierbare und kosteneffiziente Lösung zur Dateispeicherung, die den Nutzern schnellen und sicheren Zugriff auf hochgeladene Dateien bot.Zusätzlich wurde eine mobile Version der App entwickelt, die auf React Native basierte, um sowohl für Android als auch iOS eine einheitliche Benutzererfahrung zu gewährleisten. Für die Version der App, die speziell für Gastronomen entwickelt wurde, kam MongoDB als Datenbanklösung zum Einsatz, um eine flexible und skalierbare Datenverwaltung zu ermöglichen
Für das Nutzermanagement und die Authentifizierung setzten wir die Open-Source-Software Keycloak ein, unterstützt durch eine SSL-Verschlüsselung mit Let's Encrypt. Das Deployment und die kontinuierliche Integration der Anwendung wurde durch eine Kombination von Flux CI/CD und GitHub Actions automatisiert. GitHub Actions wurde insbesondere für das Auslösen der Pipelines und die Verwaltung von Code-Änderungen verwendet. Die Applikation wurde auf AWS gehostet und implementierte Architekturen wie Elastic Beanstalk und Amplify. Die Code-Verwaltung erfolgte über GitHub, während DynamoDB als Datenbank und Docker für die Containerisierung eingesetzt wurden
Diese vielfältigen Aufgaben und Projekte ermöglichten es mir, meine Fähigkeiten in verschiedenen Technologien und Cloud-Umgebungen zu erweitern und anzuwenden, um hochwertige und sichere Anwendungen für die Kunden von GeeZee GmbH zu entwickeln
AWS CDKDockerESLintGitGitHub ActionsJiraKeycloakMongoDBNodeJsnpmnxPlaywrightPostmanPrettierPrimeNGS3Visual Studio Code
entwickelte neue Features zur Verwaltung von Sozialversicherungsdaten
Backend EntwicklerAWS (EC2S3RDS)...
Backend Entwickler
In einem agilen Team entwickelte ich als Backend-Entwickler neue Features zur Verwaltung von Sozialversicherungsdaten. Mein Team und ich haben die Aufgaben hinsichtlich ihrer Programm- und Datenstruktur entworfen, automatisiert getestet und implementiert. Die Verarbeitung der Sozialversicherungsdaten erfolgt flexibel mithilfe einer Microservice-Architektur. Die Endpunkte wurden mit Apache Camel definiert und Datenpakete mit Apache Kafka versendet
Als Framework kam Quarkus mit der Programmiersprache Java zum Einsatz. Der Entwicklungsprozess erfolgte über Pull Requests. Integration- und Unit-Tests mithilfe von PACT und Mockito dienten zur Sicherstellung der Produktqualität.
Für das Deployment und die Skalierung der Microservices setzten wir AWS (EC2, S3, RDS) ein, wobei Rancher zur Verwaltung der AWS-Umgebungen diente. Die kontinuierliche Integration und Bereitstellung (CI/CD) wurde mit Tekton umgesetzt. Monitoring und Logging der Anwendungen erfolgten mit Prometheus und Grafana. Die kontinuierliche Integration und Bereitstellung (CI/CD) wurde mit Tekton umgesetzt. Monitoring und Logging der Anwendungen erfolgten mit Prometheus und Grafana.
Mein Team und ich organisierten unsere Teamarbeit nach Scrum mit täglichen Daylies sowie wöchentlichen Backlog Refinements, Sprint Plannings und Reviews
entwickelte neue Features für eine Anwendung im internen Gebrauch
Fullstack EntwicklerAngularBITVBootstrap...
Fullstack Entwickler
In einem agilen Team entwickelte ich als Fullstack-Entwickler neue Features für eine Anwendung im internen Gebrauch zur Aktualisierung und Anzeigen von Flugdaten
Diese Legacy Systeme / Anwendung wurde teilweise komplett neu implementiert und hinsichtlich ihrer Performance verbessert, zudem habe ich neue Features ausgearbeitet, getestet und im Backend sowie Frontend implementiert. Andere Bereiche der Altwanwendung wurden modernisiert. Das Backend ist in Java mit dem Framework Spring Boot geschrieben und wurde mit Unit-Tests in JUnit getestet. Das Frontend wurde mit Angular und Typescript implementiert und die Codequalität wurde über E2E-Tests mithilfe von Testcafe sichergestellt
NGXS wurde als State Management Tool verwendet. Als MQ Protokoll kam ActiveMQ zum Einsatz. Zudem implementierten wir OAuth2 und JWT für sichere Authentifizierungs- und Autorisierungsmechanismen, Single Sign-On (SSO) zur zentralisierten Anmeldung, sowie TLS/SSL zur Verschlüsselung der Datenübertragung. OpenID und Spring Security wurden zur weiteren Absicherung der Anwendung eingesetzt.Gradle wurde für das Build-Management eingesetzt. Das Styling des Frontends verlief im Rahmen von definierten Styleguides und Primereact als UI Component Library. Wir arbeiteten gegebenenfalls über PairProgramming, teilten unser Wissen während regelmäßiger Sharing Sessions und organisierten unsere Teamarbeit mit täglichen Daylies und wöchentlichen Backlog Refinements, sowie Sprint Plannings
Active MQDockerESLintGitGitHub ActionsIntelliJJBossJenkinsJiraKeycloakMariaDBnpmnxPrimeReactSonarQube
beteiligt an der Entwicklung einer Laborsteuerungsanwendung
Fullstack EntwicklerAngularAWS (EC2S3...
Fullstack Entwickler
Als Fullstack-Entwickler in einem agilen Team war ich an der Entwicklung einer Laborsteuerungsanwendung beteiligt, die sich auf die Steuerung von Medienträgern und Belüftungssystemen in Laboren konzentrierte. Im Frontend arbeitete ich an der Benutzeroberfläche, entwickelt in TypeScript mit dem Framework Angular. NgRx wurde als globaler State-Store verwendet, während zur Visualisierung von Messwerten wie Druck, Temperatur und Gasverbrauch die Bibliothek ngx-charts integriert wurde. Im Backend unterstützte ich bei der Entwicklung einer Microservice-Architektur in Java mit dem Spring Boot-Framework. Hibernate wurde für die Datenpersistenz in einer PostgreSQL-Datenbank genutzt, während RESTful APIs die Kommunikation zwischen Frontend und Backend ermöglichten. Für die Sicherheit der Anwendung und das Identitätsmanagement wurde Keycloak eingesetzt. Wir implementierten eine SSO-Lösung mit OAuth2 und OpenID Connect, um eine sichere Authentifizierung und Autorisierung zu gewährleisten
Das Projekt wurde nach Scrum-Methoden durchgeführt, was regelmäßige Sprint-Planungen, Daily Scrums, Sprint Reviews und Retrospektiven beinhaltete. Ich war aktiv an der Gestaltung des Product Backlogs beteiligt und arbeitete eng mit dem Product Owner und Scrum Master zusammen. Die Einhaltung hoher Codequalität wurde durch regelmäßige Code-Reviews, Pair Programming Sessions und die Nutzung von CI/CD-Pipelines mit Jenkins und Docker sichergestellt. Für die Codekonsistenz wurden Tools wie Prettier und ESLint sowohl im Frontend als auch im Backend verwendet
Im Rahmen eines agilen Teams trug ich zur Weiterentwicklung der Webanwendung bei, die für die graphische Darstellung von Produktionsanlagen aus der 3D-Simulationssoftware iPhysics zuständig ist
Gemeinsam mit dem Team entwickelten wir das Frontend in TypeScript mit dem Framework React. Für die 3D-Darstellung setzten wir die JavaScript-Bibliothek Three.js ein, die auch für die Implementierung einer VR-Funktionalität zur Begehung der Produktionsanlagen mit einer VR-Brille verwendet wurde. Die REST-Schnittstellen für die Datenabfrage von einer API wurden kollektiv implementiert, um die einzelnen Baugruppen in einem interaktiven Baum darzustellen. Das Backend ist in Java mit dem Framework Spring geschrieben und wurde mit Unit-Tests E2E Tests mithilfe von JUnit und Mockito getestet
Unser Testkonzept umfasste sowohl Unit-Tests mit JUnit und Mockito im Backend als auch End-to-End-Tests mittels Cypress im Frontend. Die Qualitätssicherung erfolgte durch regelmäßige Code-Reviews und Pair Programming Sessions. Die Einbindung von CI/CD-Pipelines mit Jenkins und Docker ermöglichte es uns, einen reibungslosen und effizienten Entwicklungsprozess aufrechtzuerhalten. Unsere Arbeit organisierten wir nach Scrum-Methoden mit regelmäßigen Sprint Planungen, Daily Scrums, Sprint Reviews und Retrospektiven