Ingénieur FullStack DevOps
NoLostt
1/2023 - 3/2024
NoLostt est une plateforme novatrice visant à retrouver des objets perdus. En tant que
développeur, j'ai joué un rôle essentiel dans le développement complet de l'application, de sa
conception à son déploiement.
Équipe : 1 PO, 1 Scrum Master, 1 Tech Lead, 5 Devs, 1 QA Tester
Méthodologie : Scrum
Réalisations Techniques:
Frontend :
Implémentation de la fonctionnalité d’authentification permettant aux clients de créer un
profil via un formulaire interactif tout en intégrant le service AWS Cognito pour une
gestion sécurisée des identités.
Intégration de la gestion des messages, des fichiers et des conversations pour une
communication fluide entre les utilisateurs, favorisant ainsi l'interaction et la collaboration.
Intégration du service Google Maps afin de localiser les objets perdus et de fournir un
itinéraire clair entre l’Angel et le client, améliorant ainsi l'efficacité de la récupération.
Mise en place d'un service de mailing pour notifier le client lorsqu'un Angel scanne le ticket
sur son objet, assurant ainsi une communication proactive et transparente.
Intégration d'une API de scan de QRcode pour permettre aux utilisateurs de scanner
facilement le ticket NoLostt, simplifiant ainsi le processus de recherche et de réclamation
des objets perdus.
Configuration d'une interface utilisateur intuitive et ergonomique pour une navigation
aisée et une prise en main rapide de l'application.
Mise en place de tests unitaires et d'intégration pour assurer la fiabilité et la qualité du
code frontend, garantissant ainsi une expérience utilisateur sans faille.
Backend :
Création de fonctionnalités backend robustes avec Node.js, adoptant une architecture
microservice serverless pour des performances optimales et une évolutivité sans faille.
Mise en place d'un système de gestion des lots d'étiquettes et des étiquettes pour une
organisation efficace des données administratives, garantissant une gestion optimale des
objets perdus.
Développement d'un module de gestion des conversations entre les Angel NoLostt et les
clients, permettant un suivi personnalisé des objets perdus et une communication
transparente.
Intégration de MongoDB et Express.js pour une manipulation sécurisée des données et
une gestion efficace des informations au niveau du backend.
Création d'un système complet de gestion des utilisateurs, incluant l'authentification,
l'autorisation et la gestion des profils, pour une expérience utilisateur sécurisée et
personnalisée.
Implémentation d'un service de mailing personnalisé pour notifier les utilisateurs lors des
actions importantes, favorisant ainsi une communication proactive et transparente.
Développement d'un service de conversation et de messagerie pour faciliter les échanges
entre les utilisateurs, favorisant ainsi la résolution rapide des problèmes et la collaboration.
Création d'un service de gestion des fichiers pour enregistrer les informations des fichiers
uploadés sur la bucket S3, assurant un stockage sécurisé et une manipulation efficace des
données.
Automatisation et Infrastructure :
Configuration d'un pipeline d'intégration et de déploiement continu (CI/CD) avec GitLab
CI/CD pour garantir des mises à jour fluides et régulières de l'application.
Utilisation de Terraform pour automatiser le déploiement de l'application sur différents
environnements (UAT, DEV, PROD) sur AWS.
Intégration des ressources AWS telles que Lambda, S3, API Gateway et Cognito pour
assurer une architecture cloud scalable et sécurisée.
Stack: NodeJs (Typescript), Angular (Typescript), MongoDB, Docker, Swagger, REST API,
Terraform, Gitlab CI, AWS (Lambda, S3, API Gateway, Cognito, IAM, Route53, CloudFront),
SonarQube, GitFlow, IntelIj, JIRA, POSTMAN, Scripting (Python)
Ingénieur FullStack DevOps
Allence Tunis
12/2018 - 12/2022
Projet ERP Facturation
Dans ce projet, j'ai orchestré le développement d'une architecture back end robuste et
évolutive, basée sur des microservices serverless déployés sur AWS Lambda. En parallèle, j'ai
supervisé la conception et le développement d'un frontend moderne et réactif, assurant ainsi
une expérience utilisateur optimale. J'ai mis en place un workflow Git efficace et automatisé
avec Terraform pour gérer les environnements AWS. Nous avons intégré des services tels que
AWS S3, API Gateway et Cognito pour assurer la sécurité et la scalabilité de l'application. En
automatisant les tests et le déploiement avec GitLab CI/CD, nous avons garanti un processus
de développement agile et fiable.
Équipe : 5 Développeurs, 1 Scrum Master, 1 PO, 1 QA tester
Méthodologie : Scrum
Réalisations Techniques:
Front-End :
Conception et implémentation d'une architecture de stockage robuste en intégrant le
service S3 d'Amazon pour garantir la fiabilité et la scalabilité du stockage des données de
l'application.
Optimisation de l'expérience utilisateur en supprimant l'affichage des détails des erreurs
dans l'environnement de production, assurant ainsi une meilleure confidentialité des
informations sensibles et une gestion efficace des erreurs.
Mise en place d'un système de sauvegarde efficace en choisissant de stocker les données
dans la cache, réduisant ainsi la dépendance au local storage et améliorant les
performances globales de l'application.
Amélioration de l'ergonomie et de l'esthétique de l'interface utilisateur en utilisant
PrimeNG, une bibliothèque de composants UI avancée, pour offrir une expérience
utilisateur moderne et intuitive.
Renforcement de la sécurité de l'application en intégrant le service Cognito, garantissant
une authentification robuste et une gestion sécurisée des identités des utilisateurs,
conformément aux normes de sécurité les plus strictes.
Réalisation de fonctionnalités complexes telles que l'affichage de PDF, la création
automatique de PDF, la mise en place d'une messagerie en temps réel, ainsi que la
conception et l'implémentation des validators des formulaires avec leurs complications
associées.
Intégration d'un calendrier réactif pour la gestion des ressources humaines (CRA) afin
d'optimiser la planification et la coordination des activités.
Développement et intégration d'un service personnalisé de mailing pour permettre une
communication efficace et ciblée avec les utilisateurs de l'application.
Implémentation d'un système de changement dynamique des couleurs du design en
fonction de l'environnement (dev, uat, uatm, prod), permettant une visualisation claire de
l'environnement actuel et facilitant ainsi le développement et le déploiement.
Back-End :
Conception et développement d'une architecture microservice et serverless, utilisant des
technologies telles que Node.js, Express.js, et MongoDB, pour répondre aux besoins de
l'application, assurant ainsi une extensibilité et une évolutivité optimales.
Mise en place d'une API RESTful pour permettre une communication efficace entre le
front end et le back end, garantissant une séparation claire des préoccupations et une
extensibilité du système.
Développement et Gestion des Modules:
- Ressources Humaines: CRA, Employés, Salaires et Congés
- Carrière: CV, Compétences, Offres d’emploi, Auto évaluation et QCM d’évaluation
- Finances: Entreprise, Fiches de paies, Factures, Devis, Charges et Espace Comptable.
Implémentation de tests unitaires et d'intégration avec des outils tels que Mocha pour
garantir la qualité du code et la robustesse du système, assurant ainsi une maintenance
facilitée et une réduction des erreurs.
Développement de fonctionnalités avancées telles que la génération de rapports
dynamiques, la manipulation de fichiers PDF, et la mise en place d'un service de
messagerie en temps réel, répondant ainsi aux exigences métier spécifiques de
l'application.
Optimisation des performances du back end en utilisant des techniques telles que le
caching, la pagination, le tri et l'indexation des données, assurant ainsi une expérience
utilisateur fluide et réactive.
Génération d'un fichier Swagger pour fournir une documentation complète du projet et
servir de fichier de déploiement pour configurer l'API Gateway, garantissant ainsi une
documentation claire et une configuration précise des endpoints de l'API.
Création d'un service de mailing pour permettre une communication efficace avec les
utilisateurs de l'application, assurant ainsi une communication personnalisée et ciblée.
Développement d'agrégations pour réaliser des calculs complexes dans la base de
données, permettant ainsi une analyse approfondie des données et une prise de décision
éclairée.
Génération de CV à partir des informations des candidats et création de fichiers ZIP
contenant toutes les factures d'une période déterminée, facilitant ainsi la gestion des
ressources et des données pour les utilisateurs de l'application.
Automatisation et Infrastructure :
Mise en place du git flow avec les branches développe, release, hotfix et master pour
assurer le versionnement et favoriser le travail collaboratif au sein de l'équipe.
Utilisation de l'outil Terraform pour créer les différents environnements de travail sur AWS
(DEV, UAT, UATM, PROD), garantissant ainsi une infrastructure reproductible et
cohérente.
Utilisation du service AWS Lambda pour déployer nos Microservices backend, permettant
ainsi une gestion efficace des ressources et une scalabilité dynamique.
Utilisation du service AWS S3 (Simple Storage Service) pour déployer notre frontend et
l'utiliser comme espace de stockage, assurant ainsi une diffusion rapide et sécurisée du
contenu.
Utilisation du service AWS API Gateway pour déployer notre fichier swagger et définir les
endpoints entre S3 et les Lambdas, facilitant ainsi la gestion et la configuration des API.
Utilisation du service AWS Cognito pour assurer la sécurité et l'authentification des
utilisateurs, garantissant ainsi un accès sécurisé aux res...