Faycel Aouina

Tech Lead Java Senior | Architecture & DevOps

Salaire / Taux journalier

Servon, France

Freelance, ouvert au CDI

Peut venir sur site

Expertises

Spring BootPostgreSQLGitLabJavaTest Driven DevelopmentClean CodeEvent Driven ArchitectureRuby on RailsGitJenkinsGrafanaMavenSoftware CraftsmanshipHexagonal ArchitectureDéveloppement BackendDevOpsRubyOracle DatabaseMongoDBMySQLFirebaseDockerGraphQLPostmanSwagger/OpenAPILinuxGitHubWebpackGradleScrumConfluenceJiraAsanaBase de données SQLKubernetes

Langues

AnglaisArabeFrançais

À 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.

Liens

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

Le meilleur endroit pour trouver votre prochaine opportunité

© 2026. Tous droits réservés.