
Anas Hmamouch
Ingénieur Études et Développement
Salaire / Taux journalier
92700 Colombes, France
Mobilité : Paris
Freelance, ouvert au CDI
Peut venir sur site
Expertises
Langues
À propos
Introduction
Ingénieur logiciel senior avec 8 ans d'expérience dans la conception et le développement de backends robustes et scalables basés sur des architectures microservices. Spécialisé en Java/Spring, je maîtrise les environnements critiques à forts enjeux (financier, transport, investissement). J'apporte une expertise opérationnelle immédiate, focalisée sur la performance, la sécurité et la qualité du code. Passionné par les bonnes pratiques (DDD, TDD, SOLID), je livre des solutions évolutives et maintenables, adaptées aux besoins freelance : autonomie, efficacité et résultats mesurables.
Expérience de travail
Lead Dev - Backend Java/Spring
SOCIETE GENERALE
oct. 2023 - Présent
3 ans 1 mois
Paris, France
– Refonte totale d'une application core-business gérant les transactions interbancaires pour un portefeuille de banques clientes, incluant le traitement des messages MX SWIFT (e.g., pacs.008 pour virements SEPA, pacs.009 pour transferts interbancaires), l'exposition des écritures comptables via APIs sécurisées avec OAuth2, la saisie d'ordres de virement, et la communication fluide avec services externes. – Ce projet ambitieux a accéléré les performances (via optimisations JPA/Oracle), renforcé la sécurité contre les menaces cyber, boosté la maintenabilité pour des évolutions agiles, et assuré une conformité exemplaire aux réglementations bancaires (SWIFT / ISO 20022 pour messages MX), minimisant les risques opérationnels et favorisant une scalabilité horizontale dans un environnement à haute volumétrie. – Analyse de besoins : Analyse approfondie des besoins métier et collaboration étroite avec les équipes métier pour analyser les exigences fonctionnelles et les traduire en solutions backend scalables et adaptées aux besoins métier. – Refonte du code Legacy existant : Optimisation des procédures stockées Oracle SQL en les transformant en requêtes JPA plus simples, ce qui améliore non seulement la maintenabilité du code, mais aussi sa performance, réduisant les coûts d'évolution du code à long terme. – Conception d'architecture micro services : Conception d'une architecture moderne et évolutive en utilisant Java 21 et Spring Boot 3, structuré autour d'une architecture microservices par domaine, communicant via REST. Cette approche permet de faciliter la gestion des évolutions, d'optimiser les performances de l'application et de garantir une évolution continue. – Développement d'API RESTful : Conception des API RESTful industry-standard avec gestion fine des erreurs HTTP et validation XML/JSON pour messages MX, garantissant une UX fluide et une intégration seamless avec écosystèmes tiers (e.g., services externes via OAuth2/JWT). – Sécurité Avancée: Intégration OAuth2 via SGConnect pour un contrôle d'accès granulaire, protégeant les données sensibles (incluant virements et comptabilité) et simplifiant les audits de conformité. – Monitoring Proactif: Déploiement une stack de surveillance temps réel (Kibana/ElasticSearch/Grafana) pour une détection d'anomalies, réduisant les incidents en production de 30%, particulièrement critiques pour les flux SWIFT. Mise en place d'un système de surveillance et monitoring pour suivre les performances de l'application avec Kibana, ElasticSearch et Grafana, analyser les logs en temps réel et détecter rapidement les anomalies. – Qualité et Testing: Adoption de la méthodologie TDD (JUnit5/Mockito) avec des exigences comme (>90% de couverture, pas de code smells ni de duplication de code) intégrant BDD via Cucumber pour aligner code et specs métier (scénarios Gherkin pour tests d'intégration end-to-end, validant comportements métier en évitant régressions coûteuses cette approche BDD renforce la collaboration métier-dev en traduisant exigences en tests lisibles, réduisant les malentendus et accélérant les validations. – Méthodologie Agile Scrum: Participation active aux cérémonies (Sprint Planning, Daily Standups, Sprint Reviews, Retrospectives, BackLog refinement) pour assurer une communication fluide, une gestion efficace des priorités et une résolution rapide des incidents en production. – Craftsmanship et Bonnes Pratiques: Amélioration continue et bonnes pratiques de code en s'engagent à respecter les principes du Clean Code, en effectuant des Code Reviews régulières et en pratiquant le Pair Programming résultant en un codebase lisible, SOLID- compliant et prêt pour scaling, avec focus sur la robustesse des communications inter- services, tout en intégrant le Cucumber pour des best practices BDD, comme l'écriture de features en Gherkin pour une documentation vivante, facilitant les audits et les onboardings rapides. – Industrialisation DevOps (Jenkins/SonarQube): Orchestration des pipelines CI/CD (Jenkins/SonarQube/JFrog/Docker/Kubernetes) pour des releases automatisées, fiables et zero-downtime en prod, supportant les déploiements de nouvelles features ou corrections d'anomalies. Cucumber intégré aux pipelines pour exécuter des tests BDD automatisés, garantissant une qualité métier continue post-déploiement.
Ingénieur Études Et Développement Web/mobile confirmé Java EE, VueJs
RATP
avr. 2023 - sept. 2023
6 mois
Paris, France
– Collaboration avec des experts métiers, des développeurs et des responsables de base de données pour définir les spécifications fonctionnelles et les modifications à apporter à l'IHM. – Proposition des modifications à l'IHM pour améliorer l'expérience utilisateur. – Maîtrise technique du front et du back (VueJS, Java) et participation active à la planification, à l'identification des risques et à la résolution des problèmes liés au développement de l'IHM. – Création de maquettes interactives, démontrant le flux de travail et les fonctionnalités de l'IHM, tout en veillant à son ergonomie, son intuitivité et sa conformité avec les exigences des utilisateurs finaux. – Implication dans les tests d'acceptation et l'optimisation des performances de l'IHM (VueJS, Java) pour assurer une expérience utilisateur fluide. – Optimisation des performances de l'IHM pour améliorer l'expérience utilisateur.
Développeur fullstack
BPI FRANCE – BANQUE POPULAIRE D'INVESTISSEMENT
mars 2020 - mars 2023
3 ans 1 mois
– Mission stratégique au sein du groupe BPI France : conception et implémentation d'applications web et mobile critiques pour le suivi des investissements, intégrant des architectures scalables et sécurisées. Ce projet a permis d'optimiser les échanges de données en temps réel, d'améliorer la qualité du code via des pratiques avancées, et de garantir une conformité réglementaire stricte, grâce à l'automatisation CI/CD et à une collaboration Agile fluide. – Responsable du développement et conception d'applications mobile pour le domaine d'investissement chez BPI France travaillant principalement en React Native et Android – Conception d'une architecture de projet robuste et évolutive développement depuis le scratch – Collaboration étroite avec les développeurs back-end pour définir les besoins et les spécifications – Développement d'un pipeline Jenkins pour l'intégration continue et la livraison continue – Déploiement de l'application dans le store privé du client – Expertise dans l'intégration des services web via la technologie REST, en respectant les bonnes pratiques de code (TDD, BDD, Craftsmanship, code reviews) et en favorisant des échanges de données rapides et efficaces entre les applications mobiles et front et les composants back-end. – Utilisation de tests unitaires, d'intégration et d'acceptation pour garantir la qualité du code – Mise en place d'une culture de code review pour identifier et corriger les erreurs – Utilisation de pratiques de refactoring pour améliorer la qualité du code – Implémentation des tests bout en bout automatisés pour les applications web. – Mise en place d'une couche de sécurité robuste en intégrant le protocole OAuth, en suivant les meilleures pratiques et en garantissant l'authentification et l'autorisation sécurisées des requêtes API. – Utilisation de mesures de sécurité standardisées, telles que le protocole OAUTH – Mise en place d'un processus de sécurité rigoureux pour identifier et corriger les vulnérabilités – Collaboration étroite avec les Business Analysts et les Product Owners pour effectuer des tests rigoureux, recetter les fonctionnalités et optimiser les performances, en respectant les délais et le budget. – Participation active aux ateliers de définition des exigences et des spécifications – Mise en place d'un processus de test rigoureux pour garantir la qualité du produit – Travail en étroite collaboration avec les Business Analysts et les Product Owners pour respecter les délais et le budget – Utilisation avancée de la méthodologie Agile/Scrum pour coordonner les sprints, gérer les priorités et assurer une itération rapide du développement. – Participation active aux réunions de sprint planning, de sprint review et de cérémonies agiles. – Priorisation des tâches en fonction des besoins des utilisateurs – Mise en place d'un processus de développement itératif et incrémental – Conception minutieuse des API pour optimiser l'interaction entre les applications mobiles & front et les services web sous-jacents, en favorisant une architecture orientée vers le MVC et une une extensibilité du système au fur et à mesure de l'évolution des besoins. – Utilisation d'une architecture modulaire et extensible – Définition des besoins en matière d'API, cela comprend la compréhension des besoins des applications mobiles et front, ainsi que des services web sous-jacents. – Conception des contrats d'API comme la définition des méthodes, des paramètres et des réponses des API. – Mise en place de mécanismes de validation des données pour garantir la cohérence des données – Utilisation de pratiques de documentation pour faciliter la compréhension et l'utilisation des API – Utilisation de pratiques modernes telles que la documentation API Swagger/OpenAPI pour fournir une référence complète et à jour pour les développeurs internes et externes. – Création de documentation API complète et à jour – Mise à jour de la documentation API en fonction des changements de code – Utilisation de la documentation API pour faciliter la collaboration entre les développeurs – Exploration continue de nouvelles techniques et technologies, y compris l'intégration de services web en REST pour des modèles de requêtes plus flexibles et efficaces au sein des API, et ateliers de migration vers de nouvelles technologies. – Suivi des dernières tendances technologiques – Mise en place d'ateliers de migration vers de nouvelles technologies pour les développeurs internes et externes
Développeur Mobile
UNICONSULT
févr. 2019 - févr. 2020
1 an 1 mois
– Mission autonome en développement mobile : conception from scratch et déploiement en production d'une application Android dédiée au suivi de projets, intégrant un backend Firebase pour une gestion de données en temps réel, sécurisée et scalable. Ce projet a permis d'améliorer l'efficacité opérationnelle des utilisateurs finaux via une UX intuitive et des performances optimisées, démontrant une expertise croissante en intégration full-stack mobile. – Conception et développement d'une application Android native en Java, avec une interface utilisateur intuitive et facile à utiliser – Implémentation d'un backend robuste basé sur Firebase, avec des fonctionnalités de sécurité et de performance avancées – Utilisation de technologies et de pratiques de développement de pointe, telles que les architectures MVC et MVVM – Optimisation des performances de l'application pour améliorer l'expérience utilisateur. – Amélioration de mes compétences en développement mobile et en intégration de services backend, avec une expérience de production réussie
Développeur Mobile
OTIPASS
oct. 2018 - févr. 2019
5 mois
– Gestion d'un projet de migration des applications Android existantes vers React Native – Adaptation des applications pour cibler les plateformes Android et iOS – Assurer la qualité du code : développement de code clair, concis et facile à maintenir et livraison des projets dans les délais impartis – Maintenance et résolution des problèmes sur les applications Android existantes – Améliorations significatives apportées aux applications mobiles de l'entreprise
Développeur Android
CONNECT&GO
sept. 2016 - oct. 2018
2 ans 2 mois
– Contribution au développement d'une application mobile pour les appareils FAMOCO – Développement d'une fonctionnalité de connexion NFC permettant aux clients de se connecter rapidement et facilement à leurs cartes et bracelets numériques. – Implémentation de tests unitaires pour garantir la qualité et la fiabilité de l'application. – Collaboration avec une équipe multidisciplinaire pour assurer la réussite du projet
Développeur Mobile
STAFFONE
oct. 2016 - juil. 2017
10 mois
– Développement d'une application mobile dans le secteur immobilier avec le framework IONIC pour la partie front et PHP et MySQL pour la partie backend – Offre aux utilisateurs la possibilité de se connecter avec des courtiers immobiliers locaux, créer leur profil ainsi que choisir un pack d'abonnement via l'API Stripe. – Travail en étroite collaboration avec l'équipe backend pour assurer une expérience utilisateur fluide et conviviale, ainsi qu'une intégration optimale des fonctionnalités. – Lancement de l'application avec succès sur les principales plateformes de distribution d'applications mobiles (Google Play et App Store) – Intégration de l'API Stripe pour permettre aux utilisateurs d'acheter des abonnements via l'application. – Utilisation de la bibliothèque Stripe officielle pour PHP pour une intégration fluide et facile. – Développement d'une logique de validation des données pour garantir la sécurité des transactions. – Développement et exécution de tests unitaires pour garantir la qualité du code et la détection d'anomalies.
Formation
INSTITUT NATIONAL DES POSTES ET TELECOMMUNICATIONS – INPT
DIPLOME INGENIEUR D'ETAT, GENIE LOGICIEL