Salem Ben Mabrouk

Je suis

Résumé

Bonjour et bienvenue sur mon portfolio ! Sur cette page, vous trouverez les détails de mes expériences professionnelles depuis mes débuts.

Diplômé en ingénierie de l’ESILV en 2018, je me suis spécialisé dans le développement Back-End. À travers diverses missions, j'ai principalement développé en Python. Toutefois, je reste ouvert à d'autres langages. Passionné par les nouvelles technologies, j'entretiens régulièrement ma veille technologique. La découverte des architectures serverless lors d'une mission a été un tournant, et depuis, je développe mes applications personnelles selon ce concept. Je suis intéressé par toute mission à dominante Back-End, idéalement avec une composante Cloud.

Bonne visite !

Mes expériences

Expériences professionnelles

Développeur Back-End Python

Novembre 2021 - Aujourd'hui

Renault - Guyancourt

Au sein de l'équipe R&D Resim ADAS de Renault, j'ai été chargé de poursuivre le développement et la maintenance des services existants. L'équipe Resim ADAS se charge de la resimulation virtuelle de milliers de kilomètres de données de roulage. Ces resimulations impliquent des traitements sur de milliers de To de données. L'objectif final est d'améliorer le comportement des voitures autonomes. Ces calculs sont répartis dans un réseaux de plusieurs dizaines de HPC.

  • Développement d'un logiciel d'injection de données from scratch

    • Développement sous architecture MVC
    • Réécriture de la représentation graphique du logiciel avec Tkinter
    • Implémentation de l'injection parallélisée avec multiprocessing
    • Stockage en base des statuts d'injection
  • Maintenance des packages internes

    • Compression/Décompression automatiquement des fichiers avant upload/download
    • Correction de bugs divers
  • Développement du process de labelling géolocalisation

    • Lecture et formatage des données GPS collectées
    • Détection des Points Of Interest traversés
Python
Tkinter
Multiprocessing
MVC
PowerShell
PostgreSQL
Bash
Docker
Swagger
Gitlab-CI
Git
AWS S3
LSF IBM
Linux
Windows

Ingénieur Devops AWS

Septembre 2021 - Novembre 2021

Danil.io - Paris

Danil est une plateforme SaaS de datavisualisation de la performance de chatbots. L'application est hébergée par AWS de manière Serverless.

Je suis intervenu au sein de l’équipe afin de mettre en place une chaîne de CI / CD complète.

  • Installation d’une chaîne de CI/CD Depuis Gitlab vers le Cloud AWS.

    • CI : Validation des standards PEP8
    • Build de l'application et sauvegarde des artifacts dans S3
    • Déploiement automatique des différents services serverless
  • Rédaction de l’infra-as-code du projet avec SAM (Serverless Application Model)

    • Configuration de l’API Gateway, de Cognito (authentification)
    • Des Lambdas et des différents layers, avec gestion des environnement de Développement et de Production.
Python
AWS CloudFormation
AWS Lambda
AWS API Gateway
AWS SAM
AWS Cognito
Gitlab-CI
Flake8
Git
MacOS

Développeur Back-end Serverless

Juillet 2020 - Février 2021

Las & Co

Las & Co est une société de VTC possédant une flotte de plusieurs centaines de véhicules. Pour gérer l’attribution des véhicules aux chauffeurs, il a été décidé de développer une application web.

  • Initialisation from-scratch de l’app

    • Rédaction du fichier IaC qui structure l’architecture du projet
    • Configuration de l’API Gateway, gestion CORS
    • Mise en place de l’authentification Oauth2 avec Cognito
    • Rédaction du DatabaseManager en liaison avec DynamoDB
    • Développement des lambdas CRUD des entités : Users, Drivers, Vehicles, Events etc.
    • Mise en place de la validation de données avec le package Cerberus
    • Création d’un gestionnaire de pièces jointes permettant l’import de fichiers de tous types (photos, documents administratifs, contrats de travail etc.) et stockage dans AWS S3
  • Mise en oeuvre des endpoints pour la gestion des processus métiers (workflows)

    • Gestion de début d’activité : prospection du chauffeur, prise de rdv de signature, signature du contrat, attribution d’un véhicule
    • Gestion de sinistre : déclaration, enrichissement avec photos des dégâts, attribution d’un garage partenaire, suivi et validation des réparations
    • Paie : déclaration de la paie des chauffeurs, validation du montant par la direction
    • Fin d’activité : demande de congés ou fin d’activité par le chauffeur, validation de la direction, changement du statut du véhicule attribué
    • Création de tâches et attribution à un collaborateur Las&Co à chaque étape des workflows
  • Calculs de KPIs de l’application via un endpoint dédié (Dashboard d’administration)

    • Nb de chauffeurs / statut; Nb de véhicules / statut; Nb de véhicules disponibles ;
    • Somme des soldes des chauffeurs ; Top10 des chauffeurs au solde le plus haut / le plus bas
    • Nb de tâches ouvertes / fermées / par jour
    • Revenus générés / dépenses réalisées / par période définie
  • Création de crons de notifications automatiques avec CloudWatch

    • Mise à jour de statut en cas de retard sur révision ou CT
    • Notif hebdomadaire pour le lancement de la paie ; de renouvellement de l’assurance de véhicules ; de demande d’état des lieux suite à une panne, etc.
  • Outillage, qualité, projet

    • Utilisation des services de CI/CD d’AWS : exécution de pipelines CodePipeline appelant les scripts CodeCommit, CodeBuild et CodeDeploy écrits par l’équipe DevOps
    • Rédaction de la documentation du produit, de l’API
    • Animation des daily meetings, attribution des tâches Jira aux développeurs backend
    • Support et aide à la formation sur AWS des deux autres développeurs backend
Python
Cerberus
AWS CloudFormation
AWS Lambda
AWS API Gateway
AWS DynamoDB
AWS SAM
AWS Cognito
AWS CodePipeline
AWS CodeBuild
Git
Jira
MacOS

Developpeur Back-End Python

Février 2019 - Avril 2020

Crossquantum - Levallois-Perret

CrossQuantum est une start-up acquise par SwissLife, qui développe une application mobile d’agrégation de patrimoine pour particuliers : LaFinBox

  • Gestion d'articles de news spécialisés à destination des utilisateurs de LaFinBox

    • Mise en place d’un backoffice avec Python / Flask / MongoDB
    • Création des API permettant la création, l’édition et la publication d’articles (~ 1/jour)
    • Gestion des droits de publication selon profil utilisateur
    • Développement d’un bot récupérant intégrant ~10 articles spécialisés depuis un sFTP
    • Lecture des articles en XML et nettoyage (retrait des pubs, formattage)
    • Intégration à la BDD pour les proposer à la publication en complément de la création pure
    • Rédaction de tests unitaires et des dockerfiles
  • Logkeeper : surveillance et suivi des traitements quotidiens internes

    • Développement d’une librairie python de journalisation, intégration à tous les batchs
    • Développement d’un bot agrégeant les données de journalisation et créant des KPI : traitements réussis, en échec, en cours, etc.
    • Envoi quotidien par email aux PO et responsables des applications
  • Export de données clients à destination des partenaires (assurances, BFI)

    • Rédaction de scripts Python et requêtes MongoDB complexes (pipelines d’agrégation)
    • KPI : nombre d’utilisateurs de l’application, nombre de vues des articles de promotion des plateformes partenaires, nb de clics sur le lien de redirection vers le partenaire, etc.
    • Envoi quotidien automatique aux partenaires par email
  • CptFlam : gestionnaire d’alertes sur soldes

    • Analyse de tous les comptes de tous les utilisateurs
    • Levée d’alertes suivant les seuils définis par les utilisateurs : notifications push, emails
    • Refactoring du service afin de réduire le temps de traitement : 3h → 1h quotidiennement
    • Maintenance du service et création de nouvelles alertes
  • Data visualisation : statistiques d’utilisation de la plateforme

    • Création de dashboards Grafana présentant des KPIs d’utilisation de la plateforme : nombre d’utilisateurs connectés, web / mobile / OS, volume d’activité, etc.
    • Maintenance des pipelines d’agrégation des données : Python, InfluxDB
  • Divers

    • Mise à jour des connecteurs aux API bancaires partenaires suivant leurs évolutions
    • Mise en place de sessions de peer programming
    • Méthodologie Agile
Python
Flask
Docker
Kubernetes
MongoDB
InfluxDB
Grafana
RabbitMQ
Sentry
Git
Jira
Confluence
MacOS

Data Scientist (Stage)

Février 2018 - Juillet 2018

M6 Publicité - Neuilly-Sur-Seine

Au sein de la DSI, j’ai intégré une équipe de Data Science pour mener un projet de prédiction d'audience des écrans publicitaires en utilisant des algorithmes de Machine Learning.

  • Extraction depuis une copie des BDD de production des données d’historique des audiences publicitaires sur les 2 dernières années, en SQL
  • Nettoyage et uniformisation en Python / Pandas
  • Analyse non supervisée en R afin de mieux comprendre la donnée et identifier les variables influentes sur l’audience
  • Analyse supervisée (arbres de décisions, réseaux de neurones) avec Scikit-learn et TF afin de prévoir les audiences sur les 3 semaines à venir
Python
Pandas
MySQL
Scikit-learn
Tensorflow
Matplotlib
R
Jira
Git
Windows

Développeur Back-End Java (Stage)

Avril 2017 - Août 2017

WeSmart - Bruxelles

WeSmart est une startup bruxelloise proposant une solution de monitoring énergétique pour professionnels sur la base de capteurs et d’une plateforme d’agrégation.

  • Développement d’une fonctionnalité d’import de fichiers excel de consommations pour intégration dans la plateforme à l’aide d’une librairie de mapping excel - objet
  • Développement d’un module de prévision de consommation avec Weka, une librairie de Machine Learning
  • Extension de la documentation de la plateforme, rédaction d’API Doc en yaml avec Swagger
  • Maintenance de services existants en Java Spring
  • Rédaction de Dockerfiles
Java
Spring
Docker
Docker Swarm
Cassandra
Weka
Swagger
Gitlab-CI
Git
Windows

Formations

Ingénieur généraliste - Option Data Science

2013 - 2018

Ecole Supérieure d'Ingénieurs Léonard de Vinci, Paris La Défense

  • Software Development: Python, Java, C#, JavaScript
  • Databases : MySQL, MongoDB, Elasticsearch
  • Data Science: Machine Learning, Data analysis

Baccalauréat Scientifique

2013

Lycée Joliot Curie, Nanterre

Mention Assez-bien

Mes Compétences Techniques

A travers mes expériences, j'ai pu pratiquer un large panel de technos qui m'a permis de gagner en polyvalence.

Languages de programmation
Python
JavaScript
Java
Frameworks / Librairies
Flask
VueJS
Pandas
Outils
Git
Grafana
Swagger
Wordpress
Infra / Cloud
AWS
Docker
Nginx
Kong
Bases de données
MongoDB
DynamoDB
Cassandra
MySQL
PostgreSQL
Redis
Concepts
Architecture MVC
Designs Patterns

Certifications

  • Janvier 2018 : TOEIC 875/990
  • Avril 2021 : AWS Cloud Practitioner 857/1000
  • Mars 2023 : AWS Developer Associate 849/1000

Productions

Contact

Je suis ouvert à toute proposition de mission correspondant à mon profil. N'hésitez pas à me contacter par email ou via le formulaire disponible ci-dessous.

Chargement...
Oupsi... Une erreur est apparue
Votre message a été envoyé. Merci !

Localisation

Paris, La Défense