
Faycel Aouina
Tech Lead Java Senior | Architecture & DevOps
Salaire / Taux journalier
Servon, France
Freelance, ouvert au CDI
Peut venir sur site
Expertises
Langues
À propos
Introduction
Tech Lead Java Senior avec 15+ ans d'expertise en architecture logicielle et leadership technique. Spécialisé en Spring Boot, architectures réactives WebFlux, et optimisation de plateformes haute performance avec pipelines CI/CD. J'accompagne vos projets critiques avec mentorat d'équipe et solutions scalables modernes.
Expérience de travail
Tech Lead sur les projets Pharmago et Delivery
KCA dev servicesFreelance
mars 2024 - Présent
2 ans 8 mois
Paris, France
⚙️ Pilotage technique et mise en œuvre d'une architecture modulaire basée sur Spring Boot 3, Java 17, et PostgreSQL pour une plateforme pharmaceutique. 🚀 Mise en place de pipelines CI/CD avec GitLab pour des déploiements automatisés et fiables. 🔧 Optimisation des performances des API REST grâce à l'audit des requêtes JPA, configuration de caches (EhCache), et intégration de tests de charge. 🧑🏫 Encadrement des équipes dans l'implémentation de bonnes pratiques : revues de code, documentation technique, et formation sur Hibernate et Spring. 📂 Amélioration de la gestion des fichiers volumineux (uploads), intégration de WebSocket pour les notifications en temps réel, et configuration avancée d'Nginx. Delivery (WebFlux) : ⚡ Conception et supervision d'une architecture réactive avec Spring WebFlux et MongoDB, adaptée à une plateforme de gestion de livraisons à fort trafic. 🛠️ Standardisation de la gestion des erreurs réactives avec des handlers globaux et validation avec StepVerifier. 🌐 Contribution à l'intégration d'une architecture event-driven avec Kafka, garantissant une scalabilité horizontale et une résilience accrue. 📘 Formation des développeurs sur les concepts réactifs et outils modernes, avec suivi régulier des livrables pour garantir la qualité. 💡 Résumé : Ce rôle m’a permis d’allier ⚙️ leadership technique, 🧑🏫 mentoring d’équipe, et 🔧 optimisation de solutions modernes pour des plateformes critiques.
Relocation
Career Break
juil. 2023 - mars 2024
9 mois
Paris, France
🚀 Enthousiaste du développement logiciel et passionné par l'apprentissage continu ! Actuellement en préparation pour la certification Spring tout en élargissant mes compétences avec des formations en ligne sur les outils DevOps tels que Docker, Kubernetes et ArgoCD. 💡 Je suis également investi dans le renforcement de mes compétences pratiques en Java, Ruby et Python. Mes entraînements sur Codingame me permettent de relever des défis stimulants, d'approfondir ma compréhension des langages de programmation et de perfectionner mes compétences en résolution de problèmes. 🔗 Découvrez mes réalisations sur Codingame et suivez mon parcours d'apprentissage sur https://www.codingame.com/profile/8d89a80a7f9be04c508e6718da0bd7ff8403365
Online VIP Consulting
nov. 2020 - juil. 2023
2 ans 9 mois
Hybrid
Lead Technique en Développement Logiciel
nov. 2021 - juil. 2023
1 an 9 mois
Hybrid
* Élaborer la planification et l'organisation des projets: Mettre en place une planification détaillée et une organisation efficace pour les projets de développement, en tenant compte des délais, des ressources et des objectifs. * Définir la composition de l'équipe technique: Structurer l'équipe technique en fonction d'une hiérarchie appropriée, en veillant à une répartition équilibrée des compétences. * Participer activement au développement du back-end et du back-office: s'impliquer dans le développement du back-end et du back-office en apportant une expertise technique et en assurant la cohérence avec les meilleures pratiques. * Contrôler régulièrement l'état d'avancement des projets: Surveiller de près l'avancement des projets et des initiatives technologiques, en ajustant les plans si nécessaire pour respecter les échéances. *Assurer le respect des règles de qualité et de sécurité: Garantir la conformité aux normes de qualité et de sécurité tout au long des projets de développement. * Supervision de l'étude des besoins utilisateur: Surveiller attentivement les besoins du projet, en identifiant les fonctionnalités cruciales pour l'expérience utilisateur. * Leadership dans la conception Full Stack: Diriger la conception de l'architecture et de la structure de l'application en suivant les meilleures pratiques pour la conception logicielle Full Stack. * Coordination de la préparation des infrastructures système: Coordonner la préparation des infrastructures système nécessaires au déploiement de l'application, en garantissant que les serveurs et les bases de données soient opérationnels.
Chef d’équipe développement
nov. 2020 - oct. 2021
1 an
Hybrid
* Définition et communication claire des objectifs techniques du projet: Clarifier et communiquer de manière précise les objectifs techniques du projet, en s'assurant que toute l'équipe comprend les attentes. * Planification et organisation des activités de développement en collaboration avec l'équipe: Élaborer la planification des activités de développement en étroite collaboration avec l'équipe, en tenant compte des compétences et des ressources disponibles. *Coordination des phases techniques du projet: Assurer la coordination efficace des phases techniques du projet, en veillant à l'alignement des livrables avec la vision globale du produit. *Établissement d'échéances et de jalons techniques pour le projet: Définir des échéances et des jalons techniques clairs pour assurer un suivi précis de l'avancement du projet. * Formation et encadrement de l'équipe technique: Identifier les compétences nécessaires au sein de l'équipe et contribuer à la croissance professionnelle des membres par le biais de formations et de conseils. * Fourniture d'une expertise technique et conseils: Apporter une expertise technique et fournir des conseils et recommandations avisés aux membres de l'équipe. * Suivi des tâches techniques assignées: Surveiller attentivement l'avancement des tâches techniques assignées, en garantissant leur exécution dans les délais impartis. *Rapports réguliers sur l'avancement technique du projet: Communiquer régulièrement sur l'avancement technique du projet aux parties prenantes concernées. * Garantie du respect des normes de qualité et de sécurité: S'assurer que le travail de l'équipe respecte les normes de qualité, de sécurité et les meilleures pratiques de développement. * Mise en place de processus de contrôle de la qualité: Mettre en œuvre des processus de contrôle de la qualité visant à assurer la fiabilité du code produit.
Ingénieur développement logiciels
VERMEG for Banking & Insurance Software
sept. 2018 - oct. 2020
2 ans 2 mois
Tunis, Tunisie
* Analyser les différentes parties existantes du projet: Évaluer et comprendre les composants existants du projet, en identifiant les aspects clés de l'architecture et du code source. * Recueillir les nouvelles demandes et spécifications fonctionnelles des clients: Collaborer étroitement avec les clients pour comprendre leurs besoins et recueillir les spécifications fonctionnelles, en veillant à une compréhension approfondie des exigences. * Concevoir et implémenter de nouveaux composants métiers et techniques avec Palmyra: utiliser le framework technique Palmyra pour concevoir et mettre en œuvre de nouveaux composants métier et techniques, en garantissant l'efficacité et la qualité du développement. * Effectuer des évolutions et ajouter de nouvelles fonctionnalités utilisateurs: Développer des fonctionnalités nouvelles et améliorées tant au niveau backend que frontend, en mettant l'accent sur la qualité et les meilleures pratiques de développement Java. * Améliorer l'expérience utilisateur: Contribuer à l'amélioration continue de l'expérience utilisateur en mettant en œuvre des améliorations ergonomiques et fonctionnelles. *Effectuer des revues de code: Examiner le code produit par l'équipe pour garantir la qualité, la cohérence et le respect des normes de codage Java. * Gérer les anomalies et les incidents identifiés lors des releases: Traiter efficacement les anomalies et incidents détectés lors des versions, en assurant une résolution rapide et fiable. * Fixer et corriger les bugs remontés par l'équipe de QA: Analyser, corriger et optimiser les problèmes remontés par l'équipe de l'Assurance Qualité, en veillant à la stabilité du code.
Ministère de défense nationale Tunisie
nov. 2008 - août 2018
9 ans 10 mois
Tunis, Tunisie
Lead Développeur Full Stack
sept. 2010 - août 2018
8 ans
Tunis, Tunisie
* Analyse approfondie des besoins et spécifications du projet: Examiner minutieusement les besoins et exigences du projet, en comprenant les fonctionnalités essentielles et les spécifications techniques requises. * Direction de la conception de l'architecture logicielle: Guider l'élaboration de l'architecture logicielle et la structure de l'application, en définissant la stack technologique à utiliser tant pour le front-end que pour le back-end. * Supervision de l'étude des besoins utilisateur: Surveiller attentivement les besoins du projet, en identifiant les fonctionnalités cruciales pour l'expérience utilisateur. * Leadership dans la conception Full Stack: Diriger la conception de l'architecture et de la structure de l'application en suivant les meilleures pratiques pour la conception logicielle Full Stack. * Gestion de l'installation et de la configuration des composants logiciels: Gérer l'installation et la configuration des composants logiciels nécessaires sur les serveurs, en veillant à ce que l'environnement de production soit optimal. * Encadrement de la configuration de l'environnement de développement: Encadrer l'établissement de l'environnement de développement requis sur les postes de travail, en veillant à l'installation des outils et frameworks nécessaires pour le développement front-end et back-end. * Participation active au développement: s'impliquer directement dans le processus de développement en collaborant avec l'équipe, en écrivant du code, et en contribuant au front-end ou au back-end selon les besoins du projet. * Leadership du support aux utilisateurs finaux: Diriger l'accompagnement des utilisateurs finaux dans l'utilisation de l'application, en assurant un support technique de qualité et en résolvant les problèmes rencontrés. * Supervision de la rédaction d'une documentation technique complète: Superviser la rédaction d'une documentation technique exhaustive pour faciliter la maintenance et les évolutions futures de l'application.
Ingénieur Développeur Full Stack
nov. 2008 - déc. 2013
5 ans 2 mois
Tunis, Tunisie
* Analyser les besoins et les exigences du projet : Évaluer en détail les besoins et exigences du projet, en comprenant les fonctionnalités et les spécifications techniques nécessaires. *Concevoir l'architecture logicielle et la structure de l'application: Élaborer l'architecture logicielle en définissant la stack technologique pour le front-end et le back-end, en veillant à une conception robuste et évolutive. * Étudier les besoins du projet pour l'expérience utilisateur: Examiner attentivement les besoins du projet, en identifiant les fonctionnalités essentielles pour améliorer l'expérience utilisateur. * Concevoir l'architecture Full Stack avec les meilleures pratiques: Élaborer l'architecture et la structure de l'application en utilisant les meilleures pratiques pour la conception logicielle Full Stack, en assurant l'efficacité et la flexibilité. * Préparer les infrastructures système pour le déploiement: Mettre en place les infrastructures système nécessaires au déploiement de l'application, garantissant que les serveurs et les bases de données sont prêts à l'emploi. * Installer et configurer les composants logiciels sur les serveurs: Mettre en place les composants logiciels nécessaires sur les serveurs, en optimisant l'environnement de production. *Configurer l'environnement de développement sur le poste de travail: Établir l'environnement de développement requis en installant les outils et les frameworks nécessaires pour le développement front-end et back-end. * Accompagner les utilisateurs finaux: Assister les utilisateurs finaux dans l'utilisation de l'application, en fournissant un support technique et en résolvant les problèmes rencontrés. * Rédiger une documentation technique complète: Créer une documentation technique détaillée pour faciliter la maintenance et les évolutions futures de l'application, expliquant l'architecture, les choix technologiques et les procédures de déploiement.
Formation
Académie navale
Diplôme d'ingénieur
2004 - 2007
2 ans 11 mois
EPAM Sousse
préparatoire aux académies militaires
2002 - 2004
2 ans 1 mois