Ali - Développeur Java Expert FullStack | Tech Lead
Ref : 170323B001-
77420 CHAMPS SUR MARNE
-
Développeur (40 ans)
-
Télétravail si le client est à plus de 2h de son domicile
-
Mandataire social de sa structure Freelance (SARL, SAS, EURL, etc)
MISSIONS-PROJETS
RATP SIT (en freelance)
Durée : du 01/2020 à aujourd’hui
Rôle : Tech lead JAVA full-stack
- Prise en main rapide de l’outil appli blanche de l’offre ADN (framework RATP).
- Analyse et aide à la complétion des spécifications fonctionnelles.
- Création et gestion du backlog des tâches (découpage, chiffrage, priorisation et affectation).
- Choix des nouvelles technologies à utiliser.
- Conception globale de l’ensemble de l’application.
- Développement des fonctionnalités.
- Réalisation des tests unitaires et d’intégration.
- Assistance et guidance des autres développeurs vers les bonnes pratiques de développement.
- Administration des environnements bas (DEV, DEV2, REC, REC2)
- Déploiement fréquent et préparation des livrables pour recette et production
- Assistance corrective des anomalies de recette et de production
Projet : DIAMANT : Digitalisation des actes de maintenance des trains
J’ai démarré en tant que tech lead sur un nouveau projet qui a pour but de mettre à disposition des
mainteneurs des équipements ferroviaires du matériel roulant de la RATP (MRF), des fiches
dématérialisées de traçabilité des actes de maintenance et la documentation de maintenance.
Le projet est réparti en 3 applications : 1 application (JAVA) backend communiquant par WEB services
REST (JSON) avec 1 front web (Angular) et des terminaux mobile (Android).
Le projet possède plusieurs contraintes dont :
- La structure des formulaires à remplir par les agents côté mobile est dynamique
- La volumétrie des données produites : environ 500000 fiches par an
- la gestion des modes offline/online des terminaux mobiles
- la gestion du travail collaboratif entre les agents de maintenances qui peuvent modifier les mêmes
données
Le développement se base sur une méthode itérative (entre agile et cycle en V) : projet en 3 lots ayant
des sprints de 3 semaines
Equipe : 10 personnes (1CP, 1MOA, 2 AMOA, 1 MOE, 1 Tech lead, 3 Développeurs, 1 Admin système)
Environnement technique : JAVA 11, ANGULAR 8, ANDROID 10, UBUNTU,
RATP OFFRE ADN (SPRINGROUND, ANGULARGROUND, DROIDGROUND)
SPRING BOOT 2.1 (WEB, SECURITY, CAS, DATA, JPA, MONGODB)
MONGODB, POSGRESQL, HIBERNATE 5, JPA, LIQUIBASE, H2, SQLITE, ROOM
HTML5, CSS 3, SCSS, BOOSTRAP 4, TYPESCRIPT
REST, OKHTTP, JSON, JACKSON, SWAGGER
ITEXTPDF, GLIDE, LOGBACK
JUNIT, MOCKITO, SPRING TEST, KARMA, JASMINE, ROBOLECTIC
GRADLE, MAVEN, NPM
APACHE,
INTELLIJ, JIRA, GITLAB, JENKINS, SONAR, ARTIFACTORY
RATP SMART SYSTEMS (en freelance)
Durée : du 02/2018 à 10/2019
Rôle : Expert JAVA
- Choix des nouvelles technologies à utiliser
- Mise en place des bonnes pratiques de développement
- Purge de la dette technique et montée en qualité des applications
- Conception et réalisation de nouvelles couches applicatives
- Développement de nouvelles fonctionnalités.
- Réalisation des tests unitaires et d’intégration.
Mission 1 : Développement de fonctionnalités pour le service Informations Voyageurs
On m’a confié un ensemble de projets différents qui portent tous sur une même application que j’ai
refondue entièrement techniquement.
Environnement technique d’APIX après refonte : JAVA 11, 10 et 8, JEE, WINDOWS 10, MARIADB, SQL,
HTML5, CSS 3, JQUERY, JAVASCRIPT,
SPRING 5, SPRING DATA, HIBERNATE, JPA,
REST, SOAP, JSON, JAVA.NET.HTTP, CXF, APACHE HTTPCLIENT, JACKSON
JETTY, GOOGLE MAPS API,
ECLIPSE, GIT, MAVEN, JENKINS, SONAR,
JUNIT, MOCKITO
REDMINE, GITLAB
Projet 1.1 : POC du projet W (3 mois)
J’ai intégré l’équipe d’un projet POC (qui a été commandé par la RATP et la SNCF) en tant qu’unique
développeur Java afin de réaliser de nouvelles fonctionnalités dans une ancienne application (APIX)
qui agrège les informations voyageur (dont la recherche d’itinéraires). Il s’agit d’une application back
qui expose des web services à destination d’un Chat-bot.
L’objectif était de démontrer que l’on pouvait faire des recherches d’itinéraires à l’échelle nationale
tout en combinant le résultat de plusieurs nouveaux moteurs d’itinéraires. Aussi, il fallait profiter du POC,
afin d’introduire un nouveau moteur d’agrégation des informations voyageurs innovateur.
Le POC a été une réussite car j’ai terminé tout seul (alors que 2 développeurs étaient prévus
initialement) dans les temps impartis les tâches demandées qui ont permis au Chat-Bot de fonctionner
comme attendu.
Dans ce projet en particulier, je gérais l’ensemble des étapes du cycle de développement, de la
conception suivie de la création des tâches à partir du besoin exprimé par le tech-lead, à leurs clôtures
en passant par leurs développements.
Equipe : 1 développeur, 1 Tech lead, 1 Architecte
MISSIONS-PROJETS
Projet 1.2 : Refonte technique d’APIX : Agrégateur d’informations voyageur (4 mois)
Ayant consommé qu’une partie du budget du POC, le client m’a confié la tâche imprévue qui est de
rendre APIX, une solution multi-client et de merger l’ensemble des modules (30) dédiés à des clients de
l’application différents se trouvant dans des branches git différentes.
De plus, il a fallu récupérer le nouveau moteur d’agrégation du POC basé sur de la configuration, afin
de le rendre comme celui utilisé par défaut plus tard et customisable par client.
Il est à noter que j’avais la validation de l’architecte sur la majorité des choix techniques dont
notamment la mise en place d’un contexte Spring par module, et l’utilisation de java.net.http de
java11.
Ce fut une très grande refonte technique d’APIX et de montée en qualité afin de faciliter les futurs
développements. Le code fonctionnel est resté quant à lui intact.
Equipe : 1 développeur, 1 tech lead, 1 Architecte
Projet 1.3 : Rajout de tarifs aux l’itinéraires (3 mois)
Première évolution fonctionnelle qui porte sur l’information tarifaire relative aux itinéraires demandés par
les utilisateurs.
Equipe : 1 développeur, 1 tech lead, 1 chef de projet, 1 Architecte
Projet 1.4 : Hopen Maas : Adaptation du produit à un nouveau client (3 mois)
2 nouveaux clients hors RATP ont commandé des fonctionnalités par rapport à des réseaux de
transports différents.
Comme APIX est devenue une solution multi-clients, il ne s’agissait que de configuration pour les
fonctionnalités existantes.
Par contre, Le développement de nouveaux services était quand même nécessaire par rapport aux
nouveaux besoins comme celui qui donne la position d’un véhicule. Côté mobile, on voyait la position
du véhicule bouger sur le parcours.
Il a aussi fallu adapter l’existant à certains besoins spécifiques sans causer de régressions pour le client
RATP.
Equipe : 1 développeur back, 1 développeur mobile, 1 tech lead, 1 chef de projet, 1
Architecte
MISSIONS-PROJETS
Mission 2 : Réalisation d’une application de rechargement de titres de transport à distance (6 mois)
On m’a confié le développement de 2 applications dans le cadre du projet TCT : Terminal de
chargement de titres de transports. L’objectif du projet est de permettre à des clients dépositaires
(tabagistes) de vendre un service de rechargement des titres de transport à distance.
Equipe : 3 développeurs (+7 en centre de service), 1 scrum master, 1 architecte, 1 tech
lead, 2 Product Owners, 1 Chef de projet
Projet 2.1 : Smart Ticket : serveur de rechargement à distance
Il s’agit d’une application backoffice que j’ai conçue et développée tout seul.
Elle s’occupe principalement de recharger des cartes Navigo connectées au terminal de ventes (TCT)
tout en récupérant une ressource SAM d’un serveur distant.
Le rechargement se base sur la technologie Calypso à travers l’implémentation d’eclipse Keyple.
Environnement technique : JAVA 8, JEE, WINDOWS 10, POSTGRESQL, SQL, FLYWAY
SPRING BOOT 2.5, SPRING SECURITY, SPRING CACHE,
SPRING DATA, HIBERNATE, JPA, SPRING REST, JACKSON, GSON, KEYPLE
ECLIPSE, GIT, MAVEN, JENKINS, SONAR, REDMINE
JUNIT, MOCKITO, SPRING TEST, SPRING SECURITY TEST, H2
Projet 2.2 : Ticketing SDK : un SDK regroupant plusieurs fonctionnalités liés à la billettique en IDF
L’objectif du SDK est de pouvoir être utilisable par des applications différentes, notamment dans le
cadre du projet TCT, par SmartTicket et l’application mobile du TCT.
La plus grande difficulté technique était donc d’avoir un code qui tourne à la fois sur Java et Android
(api version 25) qui n’implémente pas toutes les fonctionnalités du JDK oracle ni celles du java 8.
Pour cela, des façades ont été mises en place.
Environnement technique : JAVA 8, WINDOWS 10, SQL, SQLITE
JACKSON, GSON, RETROFIT 2, DAGGER 2, OWNER, KEYPLE
ECLIPSE, GIT, MAVEN, JENKINS, SONAR, REDMINE
JUNIT, MOCKITO, H2
MISSIONS-PROJETS
AAA-DATA (en freelance)
Durée : du 10/2017 à 12/2017
Rôle : Référent technique JAVA full-stack
- Choix des technologies à utiliser
- Mise en place des diverses couches de l’application
- Préparation de l’architecture de l’application.
- Conception globale de l’ensemble de l’application.
- Développement des fonctionnalités.
- Réalisation des tests unitaires et d’intégration.
Projet : GAGE AUTO : interface de télétransmission des opérations de GAGE vers le ministère de
l’intérieur
J’ai intégré l’équipe d’un nouveau projet GAGE AUTO au Sprint 0 en tant que référent technique fullstack afin de mener à bien le développement d’une petite application assez sécurisée et d’atteindre
une version mise en production assez rapidement ayant les fonctionnalités majeures de base.
L’application est un site internet responsif à accès restreint développé pour le compte des membres de
l’ASF (Association Française des sociétés Financières).
Jusque début novembre, les sociétés financières de l’ASF devaient déposer ou envoyer aux préfectures
un dossier pour chaque opération de gage (inscription, radiation, cession et prorogation). Le temps de
traitement de ce dossier pouvait prendre 2 à 3 semaines. Dorénavant, grâce à GAGEAUTO, il suffira
pour ces sociétés d’avoir un compte sur le site et de remplir un simple formulaire. La réponse du SIV (Le
Système d'Immatriculation des Véhicules) sera alors quasi immédiate.
Le développement respecte la méthodologie agile SCRUM (sprint variable 1 à 2 semaines)
Equipe : 7 personnes (1PO, 1 Scrum Master/Architecte technique, 2 Référents Techniques, 1 Testeur, 2
Admins systèmes)
Environnement technique : JAVA 8, JEE, WINDOWS 10, MARIADB, SQL,
HTML5, CSS 3, BOOSTRAP 4, JQUERY, JAVASCRIPT, JSON,
SPRING BOOT 1.5, SPRING SECURITY, SPRING CACHE,
SPRING MVC, THYMELEAF 3, FREEMARKER
SPRING DATA, HIBERNATE, JPA,
CXF, SOAP, OPENCSV
MICROSOFT AZURE (cloud), TOMCAT,
ECLIPSE, SVN, MAVEN, JENKINS, ARTIFACTORY,
JUNIT, MOCKITO, SPRING TEST, SPRING SECURITY TEST, H2
JIRA
MISSIONS-PROJETS
GRDF (en freelance)
Durée : du 05/2017 au 09/2017
Rôle : Lead Tech JAVA/Angular
- Définition du rythme du développement.
- Conception globale de l’ensemble de l’application.
- Découpage des tâches.
- Mise en place des bonnes pratiques de développement.
- Assistance à l’ensemble de l’équipe de développement.
- Développement des nouvelles fonctionnalités.
- Réalisation des tests unitaires et d’intégration.
- Revue et amélioration de la qualité du code.
- Gestion des environnements bas (Bac à sable, Intégration et Validation)
Projet : GAZBHY : conversion et adaptation du gaz B en gaz H dans le nord de la France :
J’ai intégré l’équipe du projet GAZBHY au Sprint 3 en tant que Lead Tech afin d’encadrer une jeune
équipe de développeurs, de participer au développement l’application et d’atteindre une version
stable et qualitative pour une première mise en production.
Le gisement de Groningue aux Pays-Bas, qui alimente en gaz naturel la région des Hauts-de-France va
bientôt être épuisé. GRDF devra remplacer dans le cadre du projet GAZBHY l'alimentation en gaz
d'environ 1.3 millions de foyers et de centaines d'industries.
Avant de procéder à cette modification, GRDF a besoin au préalable, de faire un recensement
complet chez des particuliers et des professionnels, puis, d’appliquer certaines adaptations aux
équipements si besoin.
La première version de l’application à mettre en production est une version pilote qui se limitera à
quelques secteurs au nord de la France. Cette dernière est principalement à destination d’1 millier
d’intervenants qui travailleront sur tablette et d’une centaine de pilotes et d’administrateurs qui
l’utiliseront en mode desktop. C’est donc une application responsive ayant un workflow à complexité
modérée, qui nécessite d’être bien sécurisée et d’avoir une bonne fiabilité des données.
Le développement respecte la méthodologie agile SCRUM (sprint de 2 semaines)
Equipe : 11 personnes (1 Chef de projet, 1 PO, 1 Proxy PO, 1 Architecte technique, 1 Architecte
fonctionnel, 1 Lead Tech, 3 Développeurs, 1 Testeur, 1 Stagiaire)
Environnement technique : JAVA 8, JEE, WINDOWS 10, CYGWIN, POSTGRESQL, SQL,
HTML5, CSS 3, ANGULAR 2, Materialize, TYPESCRIPT, JAVASCRIPT, JQUERY, JSON,
SPRING BOOT, HIBERNATE, JPA, JERSEY, JACKSON,
APACHE, TOMCAT, SPRING SECURITY, SPRING CACHE, FLYWAY
ECLIPSE, GIT, MAVEN, NPM, JENKINS, SONAR, ARTIFACTORY,
SSO, SAML, OKTA
JUNIT, MOCKITO,
REST, COBIGEN
JIRA, CONFLUENCE
DARTY du 05/2016 au 01/2017
Rôle : Ingénieur d’études et développement JAVA/JEE
Mission : Développement et maintenance des applications back de DARTY
WFP (World Food Programme) du 03/2016 au 04/2016
Rôle : Ingénieur d’études et développement Android
Mission : Evolution d’un système de gestion des dons alimentaire du WFP
ELIOR du 01/2016 au 02/2016
Rôle : Ingénieur d’études et développement JAVA/JEE
Mission : Evolution d’un système de livraison de repas à domicile
SFR du 08/2015 au 12/2015
Rôle : Ingénieur d’études et développement JAVA/JEE
Mission : Développement et maintenance d’applications web du Selfcare SFR
SNCF du 01/2011 au 06/2015
Rôles :
Référent technique depuis le 02/2013
Ingénieur d’études et développement JAVA/JEE
Projet : OCTOPUS : Planification du plan de transport de la SNCF
COFIROUTE du 01/2008 au 09/2010
Rôle : Ingénieur d’études et développement JAVA/JEE
Mission : Réalisation d’applications au cœur d’un workflow de message du tunnel de l’A86
ISOBAR (AEGIS MEDIA FRANCE) du 06/2007 au 12/2007
Rôle : Ingénieur d’études et développement ASP
Projets : Stage de réalisation de sites web de stimulations de vente web pour grands comptes
2or3things du 06/2006 au 09/2006
Rôle : concepteur/développeur JAVA/JEE
Projet : Stage de réalisation d’un robot d’indexation de flux RSS
Formation
2005-2007
ISTY (Institut des Sciences et Techniques des Yvelines)
Ingénieur en Informatique
2001-2005
ISERT (Institut Supérieur d'Electronique et des Réseaux & Télécoms)
Maîtrise en Ingénierie Informatique
2000-2001
Lycée Youssef Ben TACHFINE
Bac S.
COMPÉTENCES TECHNIQUES ET FONCTIONNELLES
Langages
Java (8, 7, 6, 5, 4, 3), JEE, ANDROID, C++, GROOVY
SQL, PL/SQL, XML, XSD, XSLT, RSS
HTML5, XHTML, CSS, JAVASCRIPT, JSON, JSP, PHP, ASP, FREEMARKER
Base de données
ORACLE, MYSQL, DB2, SQL SERVER, SQLITE, HSQLDB
Méthodologie et formalisme
Agile : SCRUM
Modélisation : MDA, MVC, UML
Webservice : REST, SOAP, XMLRPC
Application Live cycle Management
Build : GRADLE, MAVEN, GRUNT, BOWER, ANT
Intégration continue : CONTINIUM, JENKINS, SONAR
Analyse de code : CHECKSTYLE, FINDBUGS, PMD, JDEPEND, COBERTURA
Versioning : GIT, SVN, CVS
Systèmes d’exploitation
Windows : XP, 7
Linux : Cygwin, Ubuntu, Mandriva, RedHat, SUSE
Mac
Frameworks et librairies
SPRING 4, DROPWIZARD 2, GUICE 4
MVC : SPRING MVC, STRUTS 2
Client lourd : JAVA FX, SWING, AWT
BDD : SPRING JDBC, HIBERNATE, JPA
Cache : MEMCACHED, EHCACHE, JGROUPS
Webservice : JERSEY, CXF, AXIS
Sécurité : SPRING SECURITY, CAS, LDAP
Logging : LOGBACK, SLF4J, LOG4J, COMMONS LOGGING
Templating : VELOCITY, ACCELEO
Test : SPRING TEST, JUNIT, MOCKITO
Reporting : JASPERREPORTS, BIRT, POI
JavaScript : ANGULAR JS, JQUERY, JQUERY UI, BOOTSTRAP, EXTJS
Autres : APACHE COMMONS, DOZER, JACKSON, ASPECTJ, JNI, SAXON, XMLBEANS, QUARTZ, JMF, GUAVA, LOMBOK, LIQUIBASE
Serveurs Web, d’applications, de messagerie et CMS
Serveur Web : APACHE, JETTY, NODE JS
Serveur d’Applications : TOMCAT, WEBSPHERE
Serveur de messagerie : ACTIVE MQ, WEBSPHERE MQ
CMS : JAHIA, SYMPHONY CMS
Outils
Développement : ECLIPSE, ANDROID STUDIO, NETBEANS, DREAMWEAVER
Modélisation : TOPCASED, STAR UML, POWER AMC
Test : SOAPUI, SELENIUM
Bug Tracker : JIRA, MANTIS
Déploiement : RUNDECK
Langues
Français Courant
Anglais Fonctionnel (TOEIC 810 points)
Arabe Courant
REALISATIONS PERSONNELLES
Jeux Android
Système de pointage RFID (JAVAFX)
Site web de gestion de tournois développé à l’aide de Symphony CMS (PHP et XSLT)
Outil de traitement d’image générant des GIF animées en JAVA (SWING)