Adil - Développeur JAVA

Ref : 200501S001
Photo d'Adil, Développeur JAVA
Compétences
Expériences professionnelles
  • Expériences
    Tech Lead Java/Scala chez Eurostar
    Londres - Mai 2016, Avril 2020

    Faisant parti de l’équipe Booking Path du site ********, j’étais membre de l’équipe responsable de la migration de l’application monolithe vers une plateforme micro services.

    J’ai travaillé sur l’ensemble des services backend gérant le parcours utilisateur, à partir de la recherche de trains jusqu’à la réservation du ticket et le paiement.

    Aujourd’hui, le site web est entièrement supporté par des micros services.
    Devenu peu à peu Tech Lead de l’équipe backend de Booking Path, j’ai dû maintenir le cap entre l’équipe frontend et backend, mais également avec le cote métier, en faisant office d’interface technique et challengeant leur nouveaux besoins.

    Niveau technique, les premiers services étaient en Java, puis nous avons décidé de switcher sur du Scala pour les nouveaux services, en maintenant toujours les services Java.

    Certaines de mes contributions :

    Checkout : un BPMN (Activiti - Camunda) en Java, ce service orchestre de A à Z la transaction du user, de la réservation jusqu’au paiement, et par la suite du post traitement come l’envoi du mail de confirmation. Plusieurs méthodes de paiement sont supportées, telles que Carte Bleue, Apple Pay, ou encore Paypal.
    Tech stack : Java, Spring Boot, Activiti, BPM, MySQL, Maven, Jackson, Hibernate, JPA, Hystrix, Feign, Swagger, Liquibase, CircleCI

    Train Search : un service RESTful en Java Spring Boot qui recherche les horaires des trains disponibles. J’ai également mis en place une tache cron qui va mettre en cache de façon périodique les horaires les moins chers afin de fournir une vue calendrier avec le prix le moins cher par jour, en utilisant Spring Integration Flow.
    Tech stack : Java, Spring Boot, Spring Integration Flow, Hystrix, Feign, Cron, Shedlock, Redis cache, Swagger

    Payment Service : un service Java Spring Boot utilisant Camel, qui gère les transactions par carte (et aussi 3DS) par communication avec Datacash, qui est la plateforme de paiement
    Tech stack : Java, Spring Boot, Camel, MySQL, XML, Swagger

    Toutes les autres méthodes de paiement ont été intégrées via des services RESTful Scala :
    a. Apple Pay : implémente une transaction Apple Pay en 2 étapes : la validation et le paiement. Ce process inclut la validation et la phase initiale et le décryptage du token de paiement.
    b. Paypal : intégration avec la plateforme Mastercard Payment Gateway, pour effectuer une transaction Paypal en plusieurs étapes également.
    c. iDeal : la nouvelle méthode de paiement introduite aux Pays-Bas, via virement bancaire.
    Tech stack : Scala, Akka, Akka Actors, Akka Http, Sbt, Circe, Json4s, Xstream, SSL, Swagger

    J'ai aussi conduit l’approche ainsi que l’implementation des tests BDD au sein des services backend, en faisant un prérequis indispensable pour le developement de tous les services. Certains frameworks utilisés pour y arriver : Wiremock, Apickli, Cucumber, Grunt, Bash/Shell

    Tech Lead Java/Scala chez Eurostar
    Londres - Mai 2016, Avril 2020

    Faisant parti de l’équipe Booking Path du site ********, j’étais membre de l’équipe responsable de la migration de l’application monolithe vers une plateforme micro services.

    J’ai travaillé sur l’ensemble des services backend gérant le parcours utilisateur, à partir de la recherche de trains jusqu’à la réservation du ticket et le paiement.

    Aujourd’hui, le site web est entièrement supporté par des micros services.
    Devenu peu à peu Tech Lead de l’équipe backend de Booking Path, j’ai dû maintenir le cap entre l’équipe frontend et backend, mais également avec le cote métier, en faisant office d’interface technique et challengeant leur nouveaux besoins.

    Niveau technique, les premiers services étaient en Java, puis nous avons décidé de switcher sur du Scala pour les nouveaux services, en maintenant toujours les services Java.

    Certaines de mes contributions :

    ⦁ Checkout : un BPMN (Activiti - Camunda) en Java, ce service orchestre de A à Z la transaction du user, de la réservation jusqu’au paiement, et par la suite du post traitement come l’envoi du mail de confirmation. Plusieurs méthodes de paiement sont supportées, telles que Carte Bleue, Apple Pay, ou encore Paypal.
    Tech stack : Java, Spring Boot, Activiti, BPM, MySQL, Maven, Jackson, Hibernate, JPA, Hystrix, Feign, Swagger, Liquibase, CircleCI

    ⦁ Train Search : un service RESTful en Java Spring Boot qui recherche les horaires des trains disponibles. J’ai également mis en place une tache cron qui va mettre en cache de façon périodique les horaires les moins chers afin de fournir une vue calendrier avec le prix le moins cher par jour, en utilisant Spring Integration Flow.
    Tech stack : Java, Spring Boot, Spring Integration Flow, Hystrix, Feign, Cron, Shedlock, Redis cache, Swagger

    ⦁ Payment Service : un service Java Spring Boot utilisant Camel, qui gère les transactions par carte (et aussi 3DS) par communication avec Datacash, qui est la plateforme de paiement
    Tech stack : Java, Spring Boot, Camel, MySQL, XML, Swagger

    ⦁ Toutes les autres méthodes de paiement ont été intégrées via des services RESTful Scala :
    ⦁ Apple Pay : implémente une transaction Apple Pay en 2 étapes : la validation et le paiement. Ce process inclut la validation et la phase initiale et le décryptage du token de paiement.
    ⦁ Paypal : intégration avec la plateforme Mastercard Payment Gateway, pour effectuer une transaction Paypal en plusieurs étapes également.
    ⦁ iDeal : la nouvelle méthode de paiement introduite aux Pays-Bas, via virement bancaire.
    Tech stack : Scala, Akka, Akka Actors, Akka Http, Sbt, Circe, Json4s, Xstream, SSL, Swagger

    ⦁ J'ai aussi conduit l’approche ainsi que l’implementation des tests BDD au sein des services backend, en faisant un prérequis indispensable pour le developement de tous les services. Certains frameworks utilisés pour y arriver : Wiremock, Apickli, Cucumber, Grunt, Bash/Shell

    Senior Consultant Java chez The Travel Corporation
    Londres – Novembre 2014, Mai 2016

    The Travel Corporation (TTC) est une agence de voyage, je faisais partie de l’équipe responsable du maintien et du développement de la plateforme de réservation. J’ai pris part à plusieurs projets :

    ⦁ Discounts Admin Portal : développement d’un portail admin pour gérer les différents types de discounts disponibles sur les réservations – équipe SCRUM team de 6 développeurs.

    ⦁ Développement d’un micro service RESTful en Node.js.
    ⦁ Extraction de logique et refactoring à partir du code legacy pour l’intégrer a ce nouveau service
    ⦁ Développement du frontend en utilisant Angular (formulaires, validation, recherche dynamique)
    ⦁ Approche BDD pour implémenter les nouvelles stories et scenarios
    ⦁ Intégration continue installée via TeamCity
    ⦁ Application déployée via AWS VPC utilisant des templates CloudFormation

    ⦁ Développement sur l’application représentante la plateforme de réservation, notamment du module promotions - SCRUM team de 5 développeurs.

    ⦁ Refactoring du code legacy Java en maintenant le code existant mais en ajoutant également des nouvelles features (en utilisant l’approche TDD)
    ⦁ Re-design de l’interface UI en utilisant Spring MVC / Struts
    ⦁ Ajout de nouveaux endpoints web via Apache CXF
    ⦁ Migration de Svn vers Git, définition de la branching stratégie, gestion des releases avec Maven et Jenkins
    ⦁ Monitoring des développeurs junior, notamment par du pair programming.
    Tech stack: Java, Spring Boot, Spring MVC, Apache CXF, Maven, Node.js, Angular, AWS, CloudFormation, TeamCity, Git, XML, HTML/CSS

    Consultant Java chez SOAT en prestation chez SFR
    Octobre 2011, Novembre 2014

    Au sein du département Fibre Optique B to B, et membre d’une équipe de 10, nous étions responsable du portail web permettant de gérer l’ensemble des données du parc fibre optique (gros volume car ce sont les adresses de l’ensemble du territoire), ainsi que le workflow d’un déploiement fibre.

    ⦁ Développement au sein d’une application Spring MVC, avec comme interface Struts UI. Grande base de données gérées via Hibernate et JPA.
    ⦁ Implémentation SCRUM: je faisais partie des membres de l’équipe responsable de l’implémentation de la méthode Agile SCRUM au sein de l’équipe. En effet, après une restructuration complète des processus, en accord avec la MOA, l’équipe a commencé à suivre tous les principes tels que le DSM, sprint planning (poker), répartition des users stories, SCRUM Board, sprint reviews, review du definition of done, intégration continue, etc.
    ⦁ Interface avec la MOA afin de clarifier les besoins et anticiper les futures features.
    ⦁ Création de job (SHELL script) pour import de données
    ⦁ Optimisation et analyses de requêtes SQL complexes
    ⦁ Cycle de vie de l’application et intégration continue gérée via Maven et Jenkins


    Dans le même département, au sein d’un autre projet, j’ai aussi développé une application Flex capable de géolocaliser, basé sur des outils ESRI et des web services :



    ⦁ Création d’une application Flex, qui permet à l’utilisateur de géolocaliser une entreprise sur la carte (via adresse ou coordonnées) afin de déterminer dans quelle zone tarifaire se trouve l’entreprise. Les zones et les prix sont calculés et fournis par des web services.

    ⦁ Ces web services sont développés sous Spring-CXF. Ces web services utilisent les données des zones et de l’adresse pour déterminer l’éligibilité de l’entreprise. Ils sont également consommés par d’autres client.

    ⦁ Pour mettre à jour les données, une interface web admin était également nécessaire, qui j’ai développé via Spring MVC et Hibernate. Cette application permet de l’import de données venant de fichiers CSV, et aussi de la mise à jour des paramètres de configuration d’éligibilité.

    ⦁ Une fois l’application Flex mise en prod, j’étais tout de même responsable de sa maintenance, il a donc fallu m’adapter et coordonner les nouveaux développement avec la maintenance de l’application existante.

    Tech stack: Flash Builder, Flex, ESRI Arcgis SIG, Spring CXF, Java, Hibernate, JPA, Eclipse, Data loading, Spring MVC, Hibernate, Java, jQuery, Oracle, SQL, HTML/CSS.

    Ingénieur en alternance chez Thales Communications
    Colombes – Septembre 2008, Septembre 2011

    J’ai travaillé au sein de l’unité en charge des systèmes de communications navales, dans un contexte international avec des clients venant de chaque coin, Venezuela ou encore Royaume Uni.
    Le système sur lequel je travaillais est un système comprenant un serveur principal, auquel se connecte une multitude d’équipements permettant de communiquer, radio, terminaux, etc.

    Mon rôle se trouvait au sein de l’équipe de test, le but étant d’automatiser une parte des tests sur les équipements.
    Dans ce contexte, j’ai participe a plusieurs projets :

    ⦁ Grace à un outil de data modeling (approche MDD - Eclipse), j’ai créé une application permettant de simuler un équipement. La logique des équipements était stockée dans des templates, puis ensuite ces templates étaient mis en relation via les models. Le but final étant de d’intégrer cet équipement dans l’environnement de test.

    ⦁ J’ai réalisé une application Web, via Grails, pour collecter des données, de les transformer, et de les afficher en temps sous forme de graphs et de barres de progressions (jQuery / CSS), et de tableaux de résultats.

    ⦁ Ma première tache était de refactorer un outil de test, qui trouvait ses scenarios à partir de fiches XML, et générait les résultats sous format HTML. Les fiches étaient très redondantes et volumineuses, il fallait donc les rendre générique et réduire leur volume

    Tech stack: Grails, Groovy, C++, Java, Eclipse Domain-Specific Language, Rhapsody, REST, UML, Visual Studio, XSL / XML, HTML / CSS

    Analyste Développeur (stage) chez Idéal Standard
    Colombes – Avril 2008, Juin 2008

    ⦁ Développement d’une application Visual Basic (avec macros et formulaire) et d’une base de données Access permettant de gérer les accès des utilisateurs aux différents progiciels installés tel que SAP au sein de l’entreprise.
    Les utilisateurs ainsi que leurs acces etaient geres via des fiches Excels, le but etait donc de digitaliser la gestion des utilisateurs ainsi que les acces.
    Tech stack: Microsoft Visual Basic, Excel, Acces.

Études et formations
  • Compétences

    Informatique :

    ⦁ Langages : Java, Scala, Javascript, Kotlin, SQL, HTML/CSS, UML, XML/XSL, Groovy, Flex, Bash, Shell

    ⦁ Frameworks : Spring, Spring MVC, Spring Boot, Spring Rx, JPA, Hibernate, Akka, Akka Http, Gatling, K6, Apickli, Cucumber, Ktor, Apache CXF, Grails, JUnit, Wiremock, Mockito, Node.js, Jackson, AWS CloudFormation, AWS CodeDeploy
    ⦁ Logiciels : IntelliJ, Eclipse, JMeter, Postman
    ⦁ Base de données : Oracle, MySQL, PostgreSQL, DynamoDB, MongoDB.
    ⦁ IAM : Auth0, Keycloak
    ⦁ Intégration continue : Git, Svn, Clearcase, Maven, Sbt, Grunt, Gradle, CircleCi, Jenkins, Heroku
    ⦁ Méthodes : Agile (Scrum, Kanban), Lean, TDD, BDD

    Langues :

    ⦁ anglais : bilingue.
    ⦁ espagnol : notions scolaires.

    Formations

    Master M2IRT, Management en ingénierie informatique des réseaux télécoms
    Option SIBA – Systèmes d’informations banques et assurances.
    ITIN – Ecoles du groupe CCIV – Septembre 2005 – Septembre 2008

    Réalisations :

    ⦁ Développement d’une application mobile sous Android. Cette application est la transposition du site Web de l’entreprise sur mobile.
    Environnement technique : Android SDK, XML, REST.

    DUT Informatique, Option Génie logiciel, Application Web.
    Université Villetaneuse Paris XIII – Septembre 2003 – Septembre 2005

D'autres freelances
Développeur JAVA

Ces profils pourraient vous intéresser !
CV Ingénieur de développement JAVA
Didier

Ingénieur de développement JAVA

  • PARIS
JAVA DOCKER JENKINS ORACLE POSTGRESQL GIT SCRUM Angular Kubernetes APACHE KAFKA
Disponible
CV Développeur TALEND DI /Cloud / ESB
Youssef

Développeur TALEND DI /Cloud / ESB

  • MASSY
TALEND DI TALEND SQL JAVA SALESFORCE SQL SERVER SAP
Disponible
CV Consultant MULESOFT
Aly

Consultant MULESOFT

  • SAINT-NAZAIRE
MULESOFT ANYPOINT PLATFORM JAVA SALESFORCE
Disponible
CV Développeur  Full stack
Robert

Développeur Full stack

  • LYON
JAVA PHP JAVASCRIPT SQL ORACLE Angular MYSQL
Disponible
CV Technical Leader Java/JEE
Houssem

Technical Leader Java/JEE

  • RUEIL-MALMAISON
JAVA SPRING Kafka DOCKER Kubernetes GIT Microservices API RESTful SOAP PL SQL
Disponible
CV Développeur Full Stack - Tech Lead
Enzo

Développeur Full Stack - Tech Lead

  • BAYONNE
JAVA PHP SYMFONY Angular CI/CD DEBIAN TypeScript
Bientôt disponible
CV Consultant IT
Anthony

Consultant IT

  • QUERRIEU
JAVA J2EE SQL SERVER Microsoft PowerApps Microsoft Power BI
Bientôt disponible
CV Développeur Android Kotlin
Senda

Développeur Android Kotlin

  • ÉPINAY-SUR-SEINE
Kotlin JAVA XML SQL Angular NODE.JS
Disponible
CV Développeur JAVA - ANGULAR
Demba

Développeur JAVA - ANGULAR

  • SACQUENVILLE
JAVA Angular Spring Boot POSTGRES GIT SWAGGER Kafka RabbitMQ JENKINS AMAZON AWS
Bientôt disponible
CV Ingénieur de développement JAVASCRIPT
Said

Ingénieur de développement JAVASCRIPT

  • PARIS
JAVASCRIPT SQL JAVA Angular J2EE C++
Disponible