Entreprises, SSII, DSI
Trouvez rapidement les meilleurs intervenants pour tous vos projets informatiques
Photo d'Adil, Développeur JAVA

Adil Développeur JAVA

CV n°200501S001
  • Profil

    Développeur (32 ans)

  • Statut En profession libérale
  • Domaines d'expertise

    Etudes / développements, Transport, Moyens de paiements

Compétences techniques
É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

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 eurostar.com, 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.