Profilbild von Ibrahim Amjahad Senior Software Engineer aus HuerthRheinland

Ibrahim Amjahad

verfügbar

Letztes Update: 24.03.2024

Senior Software Engineer

Abschluss: Informatik Master of Science, Informatik Bachelor of Science, Wirtschaftsinformatik Bachelor of Science
Stunden-/Tagessatz: anzeigen
Sprachkenntnisse: arabisch (Muttersprache) | deutsch (Muttersprache) | englisch (verhandlungssicher)

Schlagwörter

Skills

Java (5 - 17), C, C#, DevOps, CI/CD, Spring Boot, Spring Data, Spring Security, CI/CD, GitLab, Jenkins, Git, Maven, Docker, Openshift / Kubernetes Cloud, React, JSP/JSF, Vaadin, HTML,CSS,JavaScript, TypeScript, JUnit, TDD, Software Architektur, Microservices, REST, Scrum, Kanban SAFE, JPA/Hibernate, Postgresql, Oracle, SQL, NoSQL, Jira, Confluence, Keycloak, Swagger / OpenAPI, 

Zertifizierung:

Zertifizierung: Professional Scrum Product Owner (PSO I) - Scrum.org 2020
Zertifizierung: Professional Scrum Master (PSM I) - Scrum.org 2020
Zertifizierung: GPM Basisschulung Projektmanagment IPMA Level D 2019
Zertifizierung: Certified Agile Requirements Specialist (CARS) 2018

Projekthistorie

10/2022 - 11/2023
Senior Software Engineer
ITZ Bund (Öffentlicher Dienst, 5000-10.000 Mitarbeiter)

Als Senior Software Engineer bin ich für die Entwicklung und das Deployment im Zoll des ITZ-Bund zuständig. Ziel ist es, Prozesse für den Zoll zu automatisieren, Papierformen abzuschaffen und sowohl die alten als auch neuen Prozesse zu digitalisieren. Für die neuen Prozesse steht ein neues Frontend, das in React entwickelt wurde, und Backend, das in Spring Boot (Java) entwickelt wurde, zur Verfügung. Zusätzlich gab es eine automatisierte Kommunikation zu diversen Schnittstellen, die vom entwickelten Backend ausgingen. Die Software wurde auf einen JBoss deployt. In den weiteren Sprints soll das Deployment auf Openshift / Kubernetes stattfinden. Innerhalb des Teams waren wir in Scrum organisiert.


Ich hatte in diesem Team viele unterschiedliche Aufgaben:
 
  • Weiterentwicklung und Verbesserung der vom Team entwickelten CI/CD Jenkins Pipeline
  • Unterstützung von anderen Teams bei der Analyse und Beurteilung der kompletten Softwarearchitektur
  • Erarbeiten von Architekturkonzepten für neue Prozesse und deren Dokumentation via Diagramme und Flowcharts
  • Integration eines User IDPs durch spezifischen ITZ Bund IAM
  • Oft habe ich auch organisatorisch die Verantwortung übernommen und Sprints geplant, das Backlog priorisiert und zusammen mit Stakeholdern Anforderungen für neue Features und Systeme erarbeitet. Außerdem habe ich ein drittes Team als Scrum Master unterstützt.
  • Entwicklung des Backends in Java (Spring Boot) gemäß Anforderungen des ITZ Bund Spring Frameworks
  • Integrierung von Spring Boot in die ITZ Bund Landschaft
  • Weiterentwicklung des Frontends mithilfe von React in TypeScript und gemäß Anforderungen des ITZ Bund Frameworks „Kolibri“

07/2022 - 03/2023
Senior Software Engineer
Deutsche Bahn / DB Systel (Transport und Logistik, >10.000 Mitarbeiter)

Als Senior Software Engineer war ich sowohl für die Backend- als auch für die Frontend-Entwicklung zuständig. Organisiert waren wir als DevOps-Team (>10 Personen) nach Scrum. Hauptaufgabe des Projekts war es das ICE Portal, aber auch andere Plattformen weiterzuentwickeln. Dabei wurden auch Alt-Systeme (Java EE) weiter gepflegt und neue Services als Microservices in Spring Boot implementiert. Auch das Bauen der CI/CD Pipeline war ein Teil meiner Aufgaben.

Ich hatte in diesen Teams viele unterschiedliche Aufgaben:
 
  • Weiterentwicklung und Verbesserung der vom Team entwickelten CI/CD GitLab-Pipeline
  • Unterstützung von anderen Teams bei der Analyse und Beurteilung der kompletten Softwarearchitektur und der bereits entwickelten Software
  • Erzeugung eines Konzepts für die Entwicklung neuer Microservices
  • Implementierung von Anforderungen
  • Dokumentation der Software im Confluence
  • Weiterentwicklung der Alt-Systeme in Java EE (Spring Boot) gemäß Anforderungen
  • Entwicklung neuer Microservices mit Spring Boot gemäß Anforderungen
  • Entwicklung von Unit und Integrationstest
  • Überwachung der Code Quality

11/2021 - 08/2022
Senior Software Engineer
Atos Information Technology GmbH (Energie, Wasser und Umwelt, >10.000 Mitarbeiter)

Als Senior Software Engineer war ich für die Backend-Entwicklung der Plattform DARE / Netze BW zuständig. Organisiert waren wir als DevOps-Team (>10 Personen) nach Scrum. Hauptaufgabe des Projekts war es XML-Dateien auf Korrektheit zu validieren und in eine Cassandra Datenbank zu importieren. Da sich die Daten im XML-Dokument stätig ändern können, wurde zusätzlich in einem Zeitintervall von 15 Minuten die Daten abgerufen und zum Export zur Verfügung gestellt. Sowohl im Import als auch Export war darauf zu achten, dass die Performance nicht einbricht.

 

Ich hatte in diesen Teams viele unterschiedliche Aufgaben:

 

  • Weiterentwicklung und Verbesserung der vom Team entwickelten CI/CD Jenkins-Pipeline
  • Unterstützung von anderen Teams bei der Analyse und Beurteilung der kompletten Softwarearchitektur und der bereits entwickelten Software
  • Erzeugung eines Konzepts für den Import eines Netzmodells
  • Implementierung von Prüfregeln gemäß Anforderungen
  • Dokumentation der Software im Confluence
  • Weiterentwicklung der Multi-Module in Java (Spring Boot) gemäß Anforderungen
  • Entwicklung von Unit und Integrationstest
  • Überwachung der Code Quality

01/2021 - 10/2021
Senior Software Engineer
Timocom GmbH (Transport und Logistik, 500-1000 Mitarbeiter)

Als Senior Software Engineer war ich für die Entwicklung und das Deployment des Produkts SFS (Smart-Freight-Search) zuständig. Organisiert waren wir als DevOps-Team nach Scrum. Parallel zur Produktentwicklung war ich in einem Forschungsteam, dass nach neuen Technologien geforscht hat und diese implementiert wurden. Unter anderem ist aus dem Forschungsprojekt ein GitLab Spring Boot Starter entwickelt worden, der den kompletten Release Prozess mithilfe des Tools standard-version automatisiert.

 

Ich hatte in diesen Teams viele unterschiedliche Aufgaben:

 

  • Weiterentwicklung und Verbesserung der vom Team entwickelten CI/CD Jenkins Pipeline und diese in eine GitLab CI/CD Pipeline migrieren. Dabei kam das Tool standard-version innerhalb der CI/CD Pipeline zum Einsatz und Releases automatisiert zu erstellen.
  • Unterstützung von anderen Teams bei der Analyse und Beurteilung der kompletten Softwarearchitektur
  • Erzeugung eines Konzepts für ein API-Gateway basierend auf Kong
  • Erarbeiten von Architekturkonzepten für neue Prozesse und deren Dokumentation via Diagramme und Flowcharts
  • Integration eines User IDPs durch Keycloak innerhalb der neu konzipierten Softwarearchitektur
  • Oft habe ich auch organisatorisch die Verantwortung übernommen und Sprints geplant, das Backlog priorisiert und zusammen mit Stakeholdern Anforderungen für neue Features und Systeme erarbeitet. Außerdem habe ich ein drittes Team als Scrum Master unterstützt.
  • Weiterentwicklung der Multi-Module in Java (Spring Boot) gemäß Anforderungen des Timocom Spring Frameworks
  • Integrierung von Spring Boot in die Timocom Spring Landschaft
  • Weiterentwicklung des Frontends mithilfe von React in TypeScript

 

Verwendete Techniken:

Java 11, React, TypeScript, HTML, CSS, REST, XML, YAML, JSON, Docker, Kubernetes, Openshift, Keycloak, Git, IntelliJ, Bash, PostgreSQL, MongoDB, H2, Instana, Dockerhub, Scrum, CI/CD, Jenkins, GitLab, Tomcat, Swagger, Thymeleaf, Sonar, Gradle, Maven, Kong API Gateway, Spring Boot, Timocom spezifisches Framework, Standard-Version, Commitizen


04/2020 - 12/2020
IT Consultant
Deutsche Telekom AG (Telekommunikation, >10.000 Mitarbeiter)

Als Teil des DevOps Teams war ich mitverantwortlich für den Betrieb und die Weiterentwicklung von Microservices. Hierbei ging es zum einen um den Betrieb und die Weiterentwicklung des von uns in Openshift betriebenen Kubernetes Clusters, sowie um die Implementierung und Verbesserung der Automatisierungswerkzeuge, welche wir den Entwicklern anderer Bereiche zur Verfügung stellten.


Ich hatte in diesem Team viele unterschiedliche Aufgaben:

  • Weiterentwicklung und Verbesserung der vom Team entwickelten CI/CD Pipeline. Hierzu habe ich an vielen Stellen umfangreiche Refactorings durchgeführt, um die Softwarearchitektur der einzelnen Komponenten zu verbessern, so dass diese leichter zu verstehen und zu testen waren. Da diese Pipeline eng mit Kubernetes zusammenarbeitet habe ich hierdurch viel über die Kubernetes API gelernt.
  • Betreuung der Openshift Ressourcen, welche von der Infrastruktur direkt genutzt wurden, sowie Beratung und Support anderer Teams bei ihrer Nutzung von Openshift.
  • Unterstützung von anderen Teams bei der Analyse und Beurteilung von Java Microservice-Architekturen basierend auf Spring
  • Erarbeiten von Architekturkonzepten für neue Prozesse und deren Dokumentation via Diagramme und Flowcharts
  • Integration eines User IDPs durch Keycloak
  • Validierung der in Keycloak generierten Tokens im Microservice.
  • Implementierung eines Beispiel Clients, dass die Kommunikation zwischen Microservices und Keycloak aufzeigt. Dieser Client wurde anderen Teams zur Verfügung gestellt.
  • Oft habe ich auch organisatorisch die Verantwortung übernommen und Sprints geplant, das Backlog priorisiert und zusammen mit Stakeholdern Anforderungen für neue Features und Systeme erarbeitet. Außerdem war ich verantwortlich für die Ausbildung unseres Auszubildenden
  • Weiterentwicklung der Microservices in Java (Spring Boot) gemäß Anforderungen
  • Weiterentwicklung des Frontends mithilfe von React


    Verwendete Techniken:


    Java 11, React, Gatsby, Material UI, JavaScript, HTML , CSS, REST, XML, YAML, JSON, Docker, Kubernetes, Openshift, Keycloak, Github, Git, IntelliJ, Mac OS, Bash, PostgreSQL, MongoDB, H2, Redis, Prometheus, Dockerhub, SAFE, Scrum, , CI/CD,  Tomcat, Swagger, Thymeleaf, Sonar, Maven


04/2019 - 12/2020
IT Consultant
Deutsche Telekom AG (Telekommunikation, >10.000 Mitarbeiter)

Als Lead Developer eines Scrum Teams war es meine Aufgabe eine Migration durchzuführen. Die Anwendung bestand aus einem monolithischem Hauptsystem, welches auf PHP Symfony basiert und in Java Spring Boot migriert werden sollte. Der Monolith sollte in der neuen Software Architektur aufgebrochen werden, sodass Frontend und Backend voneinander entkoppelt sind.

 

Unter anderem war ich zuständig für die Anforderungsanalyse neuer Features, habe Fachabteilungen bei der Formulierung und Lösung von Problemen geholfen und neue Softwarelösungen entworfen und auch implementiert.

 

Ich habe bei der Auswahl neuer Werkzeuge und Libraries mitgewirkt, indem ich eine erste Auswahl getroffen habe und diese dann mit Hilfe von selbstgebauten Proof-of-Concept Implementierung auf ihre grundlegende Eignung überprüft habe.

 

Über die ganze Zeit habe ich daran gearbeitet die Qualität unsere Software zu verbessern, indem ich die Testabdeckung erhöht und den Entwicklungsprozess selbst besser strukturiert habe. Zu diesem Zweck war ich auch Teil einer Arbeitsgruppe, deren Ziel es war Vorschläge und Richtlinien zur Stabilisierung und Verbesserung des unternehmensweiten Software-Entwicklungsprozesses zu erarbeiten.

 

Ich hatte in diesem Team viele unterschiedliche Aufgaben:

 

  • Konzeption und Implementierung der neuen Software-Architektur
  • User Storys schneiden und Sprint Planung
  • Einführung von CI/CD
  • Datenmigration von MariaDB zu OracleDB
  • Verantwortlichkeit für Auszubildenden
  • Implementierung des Frontends (JSF) und Backends (Spring Boot)

 

Verwendete Techniken:
 

Java 11-13, JSF/JSP, HTML, CSS, JavaScript, REST, Scrum, Kanban, Bash, Docker, docker-compose, Flyway, Git, GitLab, Maven, Spring (Boot, Data, MVC, Security), Sonar, Oracle DB, Postgres, JUnit, Mockito IntelliJ, Tomcat, Linux, Jira, Confluence, Sonar, CI/CD


08/2018 - 03/2019
IT Consultant
Deutsche Telekom AG (Telekommunikation, >10.000 Mitarbeiter)

Ich war Teil eines DevOps Scrum Team, dass die Aufgabe hatte, die Ersten Microservices bei der Deutschen Telekom auf Basis von Spring Boot zu entwickeln. Meine Aufgabe war es den Microservice mit Caching Funktionalität zu implementieren. Kollegen im Team habe ich bei dem Aufbau der CI/CD Pipeline in GitLab geholfen.

Der Microservice wurde nach der Referenz Architektur von Spring entwickelt.

 

Verwendete Techniken:

Java 9, Spring, Maven, Git, XML, JSON, JUnit, Jira, Confluence, GitLab, Docker, Openshift, DockerHub


04/2018 - 07/2018
Java Entwickler
explicatis GmbH (Internet und Informationstechnologie, 50-250 Mitarbeiter)

Meine Aufgabe bei der explicatis GmbH war es das bestehende Zeiterfassungstool „WORK“ zu warten und weiterzuentwickeln, sowie neue Software unter Berücksichtigung des MVC-Musters zu implementieren. Das Zeiterfassungstool wurde mit Vaadin 7 als Monolith implementiert. Eine weitere Aufgabe bestand darin, Fremdsysteme wie GitLab und Jira in das Zeiterfassungstool zu integrieren. Zur SQL-Datenbank wurden ORM Mapper (JPA/Hibernate) eingesetzt.

 

Verwendete Techniken:

Java 8, Vaadin, JPA/Hibernate, MySQL, JSF, Maven, Git, MVC, JUnit, Jira, Confluence, Jenkins, HTML, CSS, IntelliJ


08/2017 - 03/2018
Java Entwickler
Dr. Sacher GmbH (Konsumgüter und Handel, 50-250 Mitarbeiter)

Meine Aufgabe bei Dr. Sacher Kosmetik GmbH war es eine bestehende Altsoftware zu warten und weiterzuentwickeln. Die Altsoftware war eine ASP.Net Web Forms Anwendung, die in C# implementiert wurde. Meine Aufgabe war es die Anwendung in C# nach dem MVC Pattern weiterzuentwickeln. Als Frontend Technologie wurde das DevExpress Fronend Framework zur Weiterentwicklung genutzt. Als ORM Mapper kam das Entity Framework zum Einsatz. Zusätzlich Stand ich dem Kunden als Ansprechpartner zur Verfügung.

 

Verwendete Techniken:

ASP.NET, Entity Framework, NHibernate, Microsoft SQL Server, DevExpress, LiquiBase, Maven, SVN, XML, MVC, JUnit, Jira, Confluence, Jenkins, HTML, CSS, Eclipse, Putty


08/2017 - 03/2018
Java Entwickler
DFL Digital Sports GmbH (Sonstiges, 50-250 Mitarbeiter)

Ich war Teil eines Scrum Teams, welches sich um die Entwicklung und den Betrieb von Microservices gekümmert hat. Meine Aufgabe war es einzelne Features gemäß Anforderungen zu implementieren und die REST Schnittstellen mithilfe von Swagger zu dokumentieren. Zusätzliche habe ich die Abläufe der einzelnen Aktivitäten der Klassenbeziehungen mithilfe von Sequenzdiagrammen dokumentiert.

 

Verwendete Techniken:

Java 7, Spring, JPA/Hibernate, MySQL, Maven, Git, XML, Json, JUnit, Jira, Confluence, Jenkins, HTML, CSS, IntelliJ, Docker, GitLab


03/2017 - 03/2018
Java Entwickler
Cologne Intelligence (Internet und Informationstechnologie, 50-250 Mitarbeiter)

Meine Aufgabe bei der Cologne Intelligence war es die bestehende Altsoftware „CI Sales Platform“ zu warten und weiterzuentwickeln, sowie neue Software unter Berücksichtigung des MVC-Musters zu implementieren. Als Frontend wurde das Apache Wicket Framework genutzt. Das Backend war in Java geschrieben.

 

Verwendete Techniken:

Java 6, Apache Wicket, JPA/Hibernate, MySQL, LiquiBase, Maven, Git, XML, MVC, JUnit, Jira, Confluence, Jenkins, HTML, CSS, Eclipse

04/2016 - 02/2017
IT Consultant
Syngenio AG (Internet und Informationstechnologie, 50-250 Mitarbeiter)

Ich war Teil des Teams, welches sich um die Entwicklung und den Betrieb der „SkillDB“ gekümmert hat. Ich war dabei hauptsächlich für Weiterentwicklung neuer Features zuständig. Die SkillDB ist ein Confluence Plugin, dass alle Skills aller Mitarbeiter beherbergt. Deshalb ist sie für den Vertrieb sehr wichtig, da aus dem Plugin Beraterprofile anhand der Skills generiert werden.  

In Bezug auf dieses Atlassian Confluence Plugins habe ich eine ganze Reihe unterschiedlicher Aufgaben wahrgenommen:

 

  • Konzeption und Implementierung neuer Features
  • Implementierung des Frontends in jQuery und Backends in Java
  • Verbesserung der Code Qualität durch Refactoring und zusätzlicher Unit-Tests
  • Updaten der verwendeten Technologien auf neuere Versionen des Atlassian Frameworks
  • Einpflegen von Daten in die Datenbanken, z.B. für neue Skills mit bestehenden Nutzern

 

Zusätzlich zu meinen Aufgaben als Softwareentwicklung, war ich auch einer der Ansprechpartner, wenn eine Fachabteilung Fragen zu oder Probleme mit unseren Systemen hatte.

Außerdem war ich einer der Haupansprechpartner für Junior Entwickler, wenn sie bei komplexen Projekten Unterstützung brauchten. Ich gab Hilfestellung bei der Analyse und Lösung der Probleme in solchen Fällen.

 

Verwendete Techniken:

Java 8, Tomcat,Git, SVN, Eclipse, IntelliJ, Maven, JPA/Hibernate, JavaScript, HTML, CSS, jQuery, PostgreSQL, MongoDB, NoSQL, REST, SOAP, Jira, Confluence, JUnit, Atlassian Framework


04/2016 - 02/2017
Java Entwickler
Hochschule Bonn-Rhein-Sieg (Öffentlicher Dienst, 250-500 Mitarbeiter)

Ich war Teil eines Scrum Teams, welches sich um die Entwicklung und den Betrieb des Forschungsprojekts ProSyWis (Prozessunterstützendes System für Wissenarbeiter). Meine Aufgabe war es einzelne Features gemäß Anforderungen zu implementieren und eine Oberfläche zu implementieren, die dem Usability Standard (ISO 9241-110) entsprechen. Darüber hinaus wurden weitere Usability Standards recherchiert und implementiert. Das Frontend wurde mittels des Think-Aloud Test evaluiert. Zusätzliche habe ich die Abläufe der einzelnen Aktivitäten der Klassenbeziehungen mithilfe von Sequenzdiagrammen dokumentiert.

 

Verwendete Techniken:

Java 7, Spring, JPA/Hibernate, Vaadin 7, MySQL, Maven, Git, XML, JUnit, Jira, Confluence, Jenkins, HTML, CSS, IntelliJ, Docker, GitLab, CEP (Complex Event Processing), ESP (Event Stream Processing)

Reisebereitschaft

Verfügbar in den Ländern Deutschland

exali IT-Haftpflicht-Siegel (Sondertarif für Freelancermap-Mitglieder)

Das original exali IT-Haftpflicht-Siegel bestätigt dem Auftraggeber, dass die betreffende Person oder Firma eine aktuell gültige branchenspezifische Berufs- bzw. Betriebshaftpflichtversicherung abgeschlossen hat. Diese Versicherung wurde zum Sondertarif für Freelancermap-Mitglieder abgeschlossen.

Versicherungsbeginn:
04.05.2021

Versicherungsende:
01.06.2024

Profilbild von Ibrahim Amjahad Senior Software Engineer aus HuerthRheinland Senior Software Engineer
Registrieren