Yahya - Développeur Sénior Java/React | Référent technique
Ref : 191125R004-
78500 SARTROUVILLE
-
Développeur (34 ans)
-
En portage salarial
Expérience
Depuis Avril 2019 - Développeur freelance
Client : La Sofia / Prestation en régie
Au sein d’une équipe de 4 personnes travaillant en mode agile / SCRUM, conception et
développement du nouveau site de déclarations de ventes et d’achats de livres par les
bibliothèques et les fournisseurs de livres. Ces déclarations servent à calculer les montants de
droit de prêt des livres en bibliothèques qui seront perçus puis versés aux auteurs.
Dans le cadre de cette mission, j’ai réalisé les tâches suivantes :
• Réalisation des choix techniques avec l’équipe.
• Développement d’écrans sur le front office.
• Développement de services web sur le back office.
• Formation et assistance de l’équipe sur le développement React.
• Revue de code à l’aide des requêtes de tirage (Merge requests).
— Responsabilités : Formation et assistance, développement, réalisation de tests, revue
de code, documentation.
— Environnement : Java 8, JavaScript, React/Redux, Material-UI, CSS, Spring Boot,
Services web REST, Jest, Chai, Enzyme, JUnit, Mockito, SQL Server, Hibernate,
Maven, Git, GitLab, IntelliJ IDEA, Visual Studio Code, ESLint.
Octobre 2015 -> Mars 2019 - CELAD : Entreprise de Services du Numérique (ESN)
Mai 2018
Mars 2019
Client : Sigfox / Prestation en régie
Au sein d’une équipe de 12 personnes travaillant en mode agile / SCRUM, réalisation de
l’application dédiée à supporter le nouveau modèle métier de Sigfox. Elle permet de gérer
les territoires, les distributeurs, les offres, les grilles de prix, les devis et les commandes afin
d’établir des contrats avec les clients de la société.
Dans le cadre de cette mission, j’ai réalisé les tâches suivantes :
• Développement de services web REST sur le back office découpé en microservices.
• Développement d’écrans sur le front office.
• Revue et correction du module qui calcule les frais des devis.
• Amélioration de mécanisme de logging.
• Correction d’anomalies.
• Revue de code à l’aide des requêtes de tirage (Pull requests).
— Responsabilités : Développement, réalisation de tests, revue de code, documentation.
— Environnement : Java 8, JavaScript, React/Redux, Spring Boot (Architecture microservices), Services web REST, CSS, PostgreSQL, Gradle, Webpack, Git, Bitbucket,
IntelliJ IDEA, Visual Studio Code, Jenkins, SonarQube, Jira, Ubuntu.
Février 2017
Avril 2018
Client : Kuehne + Nagel / Prestation au forfait
Développement d’évolutions et maintenance d’une application de gestion de chaînes d’approvisionnements. Cette application permet de :
• Définir toutes les entités impliquées dans la chaine d’approvisionnements (produits,
fournisseurs, manufacturiers, transporteurs, destinataires, entrepôts . . .).
• Gérer les déplacements des produits entre sites, zones et stations.
• Suivre les produits à l’aide de leurs codes à barre et des systèmes de balayage implantés
dans les stations.
• Gérer les incidents de balayage et de déplacements de produits.
• Gérer des tournées systématiques de distribution de produits, construites sur le modèle
de la tournée du laitier (milk run).
• Historiser toutes les actions effectuées sur les produits ainsi que les opérations faites
depuis les applications web et mobile.
— Responsabilités : Référent technique, développement, réalisation de tests, livraison,
mise à jour des dépendances et des outils, élaboration de manuels de mise à jour et de
configuration.
— Environnement : Java 8, JavaScript, AngularJS 1.6.9, Spring, Services web REST,
Hibernate, HTML, CSS, Oracle 12c, Maven, npm, Bower, Grunt, Git, Eclipse Oxygen,
Webstorm, Jenkins, SonarQube, Jira, CentOS.
Octobre 2015
Janvier 2017
Client : Natixis / Prestation en régie
Au sein de l’équipe CCO (Crédit COnsommation), j’ai participé au développement des
applications WEB suivantes :
• Back office services web : Réalisation des services web SOAP qui permettent aux
clients de faire des opérations sur des contrats de type crédit renouvelable à partir
d’une application mobile.
2 / 6
• Back office d’une plateforme de paiement en plusieurs fois : L’application
permet aux commerçants agrées par Natixis de proposer à leurs clients, au sein de sites
web de vente, une facilité de paiement en 3 ou 4 fois sans frais.
• Application d’automatisation du traitement des dossiers clients : L’application automatise les procédures de vigilance à l’égard de clientèle au sein de département
de conformité de la banque.
• Application de consultation des profils clients : L’application présente les informations des clients et de leurs contrats et permet aux attachés commerciaux des
centres de relation clientèle de simuler des opérations sur ces contrats pour mener à
bien leurs activités.
— Responsabilités : Développement, réalisation de tests unitaires, réalisation de tests
fonctionnels avec SoapUI.
— Environnement : Java, JavaScript, JEE, Spring, Apache Camel, CDI, Apache
CXF(Services web SOAP), Jersey(Services web REST), JMS, Hibernate, JPA, JSP, JSF,
Richfaces, Eclipse Kepler/Luna, JBoss, WebSphere, Maven, SoapUI, Git, Dimensions
CM, Oracle 11g.
Août 2013 -> Septembre 2015 - ARDIA : société de développement informatique en Tunisie
Client : PSA / Prestation au forfait
Conception et développement d’une application de suivi de véhicules à travers le cloud SIGFOX
(la première implémentation de l’internet d’objets).
Elle est composée de deux parties : la partie embarquée qui est installée sur des véhicules et
communique avec ce cloud à travers la bande radio UNB (Ultra Narrow Band) et la partie
application de supervision qui consomme des services web REST déployés sur SIGFOX et reçoit
les messages provenant de véhicules via un callback. L’application permet aux administrateurs
de suivre des véhicules sur une carte, modéliser et modifier leurs propriétés, consulter les
statistiques des paramètres de calculateur et leur envoyer des commandes.
— Responsabilités : Création du document de conception détaillée et développement
de l’application de supervision.
— Environnement : Java, JavaScript, Spring MVC, Services web REST, AngularJS
1.4.4, Bootstrap, Hibernate, JPA, Jackson, JSON, Eclipse Kepler, Tomcat 7, Maven,
NodeJS, npm, Bower, Grunt, MySQL, SVN.
Projet interne : Système de localisation en interne
Développement d’un système de localisation d’objets mobiles à l’intérieur d’un bâtiment.
Il est géré par un service passerelle, fonctionnant sur les appareils Android, qui communique
avec les noeuds mobiles périodiquement pour envoyer leurs données à une application serveur
qui applique un algorithme de triangulation et affiche leurs positions sur des cartes d’étages.
— Responsabilités : Création des documents de spécification fonctionnelle et de conception détaillée, développement des applications passerelle et serveur.
— Environnement : Java, JavaScript, Spring MVC, imgNotes jQuery plugin, Restlet
Android framework, Jackson, JSON, BlueDroid(Bluetooth Low Energy APIs), Eclipse
Kepler, Tomcat 7, Android SDK (Android 4.3), PostgreSQL, SVN.
3 / 6
Client : Grande entité dans le secteur militaire / Prestation au forfait
Projet de contrôle et supervision de stations terrestres de télécommunication par satellite.
L’application permet aux utilisateurs de consulter l’architecture d’une station et les états de
ses composants en temps réel et d’y envoyer des commandes pour gérer son fonctionnement.
La conception de l’application est basée sur deux concepts : la programmation orientée
composant, qui la rend très modulaire, et l’architecture orientée services (in-JVM SOA) qui
permet d’établir des relations dynamiques entre ses composants qui contiennent les éléments
de l’interface graphique (boutons, étiquettes, images, composants personnalisés, vues détaillées,
sous-synoptiques, etc.) et ceux de traitement.
L’IHM peut être configurée, voire entièrement changée, en modifiant la configuration dans la
base de données et/ou par l’ajout ou le remplacement de bundles.
La création de composants ainsi que la gestion d’événements et de connexion TCP sont
exécutés dans des threads natifs et des exécuteurs Java.
La transmission d’événements est assurée par le bus de l’événement Google Guava.
— Responsabilités :
Création des documents de spécification fonctionnelle, IHM et logicielle.
Conception est développement de l’architecture OSGi de l’application.
Développement de plusieurs bundles.
— Spécifications et architecture : Spécification OSGi, in-JVM SOA, Programmation
orientée composant, Programmation multithread.
— Environnement : Java, Swing, Hibernate, JPA, Google Guava Library, Apache Karaf
3.0.3, Apache Felix 4.0.3, Maven, Eclipse Kepler, PostgreSQL, SonarQube, Jenkins,
SVN, Bugzilla.
Client : ACTIA Mexico / Prestation au forfait
L’application est un client FTP pour Android TV box déployés dans des bus touristiques, elle
commence à télécharger des contenus multimédias depuis les serveurs qui se trouvent dans les
stations de bus dès l’arrivée à celles-ci.
L’application communique avec un serveur TCP pour obtenir un playlist qui contient les noms
de fichiers multimédias à télécharger et en fonction de la configuration elle crée des threads
pour télécharger ces fichiers à partir d’un serveur FTP.
Elle prend en charge la reprise de téléchargement et possède un algorithme pour éviter le
retéléchargement de fichiers.
— Responsabilités : Création des documents de spécification fonctionnelle et de conception détaillée, développement de l’application.
— Environnement : Java, Android APIs, Android greenrobot eventbus, Eclipse Kepler,
Android SDK, SVN.
Projet interne : Outil pour retrouver des clés perdues
Cette application permet à l’utilisateur de trouver une clé dotée d’un beacon BLE en lui
affichant la distance approximative qui les sépare avec un bouton qui le fait sonner.
— Responsabilités : Conception et développement de l’application.
— Environnement : Java, BlueDroid(Bluetooth Low Energy APIs), Eclipse Kepler,
Android SDK (Android 4.3), SVN.
4 / 6
Client : FilmFlyNet / Prestation au forfait
Maintenance et amélioration d’une plateforme de partage et de diffusion de contenus Vidéo /
Audio en ligne. La tâche la plus importante que j’ai réalisée dans le cadre de ce projet était le
développement d’une méthode de paiement Paypal en utilisant l’API NVP.
— Responsabilités : Maintenance, correction de bogues, développement d’évolutions.
— Environnement : Php 5, Symfony 1.4.
Stages et projets universitaires
Février 2013
Mai 2013
Application d’infotainment en bus (Stage PFE chez ARDIA)
Conception et développement d’une application d’infotainment pour des bus touristiques.
Cette application propose plusieurs services :
• Tracking de bus et calcul des données de voyage.
• Recherche des points d’intérêt autour de la position du bus.
• Recherche des informations météo autour de la position du bus.
• Diffusion Audio/Video.
— Responsabilités : Conception et développement de l’application.
— Environnement : Java, Spring, Spring Security, Services web REST, Hibernate,
JSF 2, PrimeFaces, osmdroid, Eclipse Indigo, Android SDK, Tomcat 7, Flumotion,
RabbitMq, MySQL.
Juin 2012
Août 2012
Système de divertissement en vol (Stage d’été chez OPCMA Tunisie)
Amélioration des services d’un système de divertissement en vol et développement des nouveaux
services (Demande de repas / boisson / magazine, Free shop, Multilinguisme).
— Environnement : Java, Spring, Hibernate, Services web REST, JAXB, JSON, JSF,
Prime-Faces, Eclipse Indigo, Android SDK, Tomcat 7, MySQL.
Février 2012
Mai 2012
Application de géolocalisation de taxis (Projet universitaire)
Conception et développement d’une application répartie de géolocalisation de taxis en temps
réel.
— Spécifications et architecture : Architecture 3-tiers, Programmation multithread.
— Environnement : Java, JEE, EJB, EclipseLink 2, Services web SOAP, WSDL, JSF
2, CSS, NetBeans, GlassFish server, Eclipse Indigo, Android SDK, MySQL
Formation
2010-2013 Cycle d’ingénieur, spécialité Informatique, ENSI (École Nationale des Sciences de
l’Informatique de Tunisie), Rang 30/311
2008-2010 Classes préparatoires scientifiques, filière Technologie, IPEIM (Institut Préparatoire aux Études d’Ingénieurs de Monastir), Rang au concours national d’entrée aux
cycles de formation d’ingénieurs 51/1200
2007-2008 Baccalauréat, section Techniques, Lycée secondaire Eljem, Mention Bien
Résumé
Six ans Développeur Full Stack
Développeur sénior avec plus de 6 ans d’expérience en développement Full Stack.
J’ai participé au cours de ma carrière à des projets réalisés avec les langages de programmation,
les technologies et les plates-formes suivants :
• Java / JavaScript
• JEE / Spring / React / Redux / AngularJS 1.X / Camel / Android / OSGi (Felix) /
Swing
Domaines de compétences
• Langage de modélisation : UML.
• Méthodologies : Modèle Scrum, Modèle en V.
• Architectures : Architecture microservices, Architecture orientée services, Architecture trois tiers, Architecture MVC.
• Langages de programmation : Java, JavaScript, HTML, SQL.
• Spécifications et Technologies : JEE, Spring, Spring Boot, Camel, Apache Felix
(OSGi), Jersey/Spring MVC (REST), Axis/CXF (SOAP), EJB, CDI, Hibernate,
JPA, AngularJS 1.x, Ext JS, React/Redux, Bootstrap (CSS), JSP, JSF, PrimeFaces,
RichFaces, Android, Swing.
• Conteneur web et Serveur d’application : Tomcat, JBoss, WebSphere, GlassFish,
Apache Karaf.
• Gestion et automatisation de production : Maven, npm, Bower, Grunt, Gradle.
• SGBD : MySQL, PostgreSQL, Oracle.
• Gestion de versions : Git, SVN, Dimensions CM.
• Systèmes d’exploitation : Microsoft Windows, Ubuntu, CentOS, Android.
• Autres : Jira, Bugzilla, Jenkins, SonarQube.
Langues
Anglais professionnel
Français professionnel
Arabe natif
Divers
Sports football, tennis de table