Skip to content
View valentinratigniet-byte's full-sized avatar

Highlights

  • Pro

Block or report valentinratigniet-byte

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse

Bonjour, je suis Valentin Ratigniet 👋

Typing SVG

Profil hybride : culture financière (Master Économie Appliquée + alternance Business Analyst) et ingénierie de données. Ce profil n'est pas une collection de projets isolés — c'est un écosystème connecté où chaque brique réutilise la précédente, de la base opérationnelle jusqu'au cloud.

Site vitrine

Email LinkedIn GitHub followers Profile views

Python SQL PostgreSQL dbt BigQuery Power BI Docker Claude


💼 Expérience

Business Analyst opérationnel (alternance), Groupe Delcroix · août 2025 → septembre 2026

  • Refonte du reporting autour d'un modèle sémantique Power BI partagé (gouvernance, maintenance, charge serveur).
  • Étapes Power Query converties en SQL natif sur des sources hétérogènes (AS/400, TMS, OPM) pour alléger les rapports.
  • Tableaux de bord de pilotage opérationnel : TRS véhicules, plannings, écarts comptables, projections d'heures.
  • Étude de cadrage : passage à un entrepôt de données centralisé, méthode ABC, accès par profil/service.
  • Sujets prolongés dans le portfolio, sur des données entièrement fictives : 21 · entrepôt de pilotage sous Power BI et 17 · rentabilité en méthode ABC.

Master 2 Économie appliquée (conseil économique aux entreprises), Université de Lille · 2024 → 2026

🤝 Comment je travaille avec l'IA

Ce portfolio a été construit avec un assistant de code IA (Claude Code) — c'est visible dans les commits (Co-Authored-By), et je préfère le dire clairement.

J'utilise l'IA comme un assistant qui accroît ma productivité, mon raisonnement et ma vitesse d'apprentissage. Le code produit avec elle est relu, corrigé, vérifié et, autant que possible, refait par moi, pour toujours comprendre ce qui est fait et produit.

Ce qui relève de moi :

  • Le cadrage métier : le problème, les KPI, les règles de gestion, le périmètre. Exemple : pour le projet 20, construit pour une candidature, j'ai choisi le pilotage de projets d'ingénierie plutôt que de réutiliser l'e-commerce, pour coller au « Management de Projet » de l'offre.
  • Le SQL et Power BI / DAX : je les relis, les corrige et les maîtrise (modélisation, mesures, rapports).
  • L'exécution et la vérification : je lance les pipelines et je recoupe les chiffres avant de publier (projet 20 : agrégats Databricks comparés au calcul local, au chiffre près).

Ce que ça m'a appris :

  • Relire, c'est comprendre : je réponds de chaque transformation, donc je dois la comprendre.
  • Vérifier avant de croire : l'IA peut se tromper avec assurance ; tout chiffre est recoupé par un calcul indépendant.
  • Bien spécifier et guider : le résultat dépend de la clarté du besoin, ce qui m'a entraîné à cadrer comme un Business Analyst.

Je peux expliquer et défendre en entretien chaque choix et chaque chiffre de ces projets.

🧭 Par où commencer ?

Vous recrutez un·e... Commencez par...
Data Analyst 22 · Prix immobilier MEL (73 000 ventes réelles, économétrie) → 01 · Olist (données réelles, ~100k commandes) → 09 · Dashboard Power BI → 08 · SQL analytique
Data Engineer 19 · Plateforme multi-domaines → 21 · Entrepôt transport → 13 · BigQuery → 20 · Databricks
Business Analyst / Contrôle de gestion 21 · Spécification fonctionnelle → entrepôt (23 user stories, règles de gestion, recette) → 15 · Écarts Prix/Volume/Mix → 17 · ABC costing → 16 · Business case
2 minutes seulement Le diagramme ci-dessous, puis 14 · Filiation : cliquer un indicateur et remonter jusqu'à la donnée brute

🧩 L'écosystème

Un seul socle (la base du Projet 07, en ambre ci-dessous) irrigue tout le reste. Chaque flèche est une vraie dépendance technique — pas juste un ordre de lecture.

flowchart LR
    classDef petrol fill:#137A8B,color:#fff,stroke:#0d5964,stroke-width:1px
    classDef ambre fill:#E4A93C,color:#1a1a1a,stroke:#b8822b,stroke-width:1px
    classDef neutre fill:#eef1f2,color:#1a1a1a,stroke:#c7cdd0,stroke-width:1px

    P07["07 · Base PostgreSQL<br/>OLTP e-commerce, 3NF"]
    P08["08 · Bibliothèque SQL<br/>fenêtres, cohortes, RFM"]
    P09["09 · Dashboard Power BI<br/>étoile, DAX, RLS"]
    P10["10 · Pipeline ELT<br/>dbt + Prefect"]
    P11["11 · Gouvernance<br/>dictionnaire + lignage"]
    P13["13 · Entrepôt BigQuery<br/>même étoile, cloud"]
    P14["14 · Filiation<br/>traçabilité interactive"]

    P07 --> P08 --> P09
    P07 --> P10 --> P09
    P10 --> P11
    P07 -.-> P11
    P07 --> P13
    P10 --> P14
    P11 -.-> P14

    class P07 ambre
    class P09,P13 petrol
    class P08,P10,P11,P14 neutre
Loading

Le même schéma dimensionnel tourne deux fois : une fois en local (Power BI ↔ PostgreSQL, Projet 09) et une fois dans le cloud (Power BI ↔ BigQuery, Projet 13) — la modélisation ne dépend pas de l'infrastructure qui la porte.

📐 Le motif qui revient dans presque tous les projets : l'architecture "medallion"

Même démarche à chaque fois, du système source jusqu'à la restitution — le terme technique en gras, ce qu'il veut dire en simple juste en dessous :

flowchart LR
    ERP[("🏭 ERP / système source<br/>AS/400, SQL Server...<br/><i>la vraie techno où naît la donnée</i>")] --> SRC[("🎭 Extraction<br/>API, CSV, base OLTP<br/><i>copie d'une 'base de production' simulée</i>")]
    SRC --> RAW[("📥 raw<br/>copie fidèle, non transformée<br/><i>rien n'est perdu, tout est rejouable</i>")]
    RAW --> STG[("🧹 staging<br/>nettoyage, typage, renommage<br/><i>ETL/ELT via dbt, en SQL testé</i>")]
    STG --> MARTS[("⭐ marts<br/>étoile : faits + dimensions<br/><i>l'entrepôt, une seule source de vérité</i>")]
    MARTS --> BI["📊 Power BI / Streamlit<br/>restitution<br/><i>chacun voit ce qu'il a le droit de voir</i>"]
Loading

Chaque couche a un seul rôle : raw garde une copie fidèle de la source (traçabilité, on peut toujours rejouer) ; staging nettoie et type sans changer le sens métier ; marts expose un modèle prêt pour l'analyse. Séparer ces couches évite qu'une transformation cassée corrompe la donnée source — utilisé dans les projets 04, 10, 11 et 13.


📂 Projets — classés par compétence dominante

📊 Data Analyst — de la donnée brute à la décision

⭐ 22 · Prix des logements de la métropole lilloise — 73 271 ventes notariées réelles (DVF), régression hédonique (déplié)

Problème : un prix au m² moyen par commune ne dit presque rien — à Lille il varie du simple au double d'un quartier à l'autre. Ce bien est-il au prix du marché, compte tenu de ce qu'il est et de là où il est ? Méthode : nettoyage DVF documenté (dont une résidence étudiante vendue lot par lot qui gonflait une médiane de 90 %), régression hédonique à effets fixes quartier et trimestre, validation sur ventes non vues, test statistique, note d'une page pour un décideur. Résultat : à bien égal, l'emplacement fait varier le prix de −30 % à +37 % ; baisse 2024/2022 de −3,9 % (appartements) et −7,1 % (maisons), p < 10⁻¹⁷ ; une cave ou un parking vaut +7,6 % ; erreur d'estimation 13,7 % contre 18,4 % pour la médiane communale.

Python statsmodels Open data · Repo · Note décideur · Démo live

01 · Analyse des ventes e-commerce (Olist) — données réelles Kaggle, ~100k commandes

Problème : une baisse de CA constatée — est-ce la qualité de service qui s'est dégradée, ou autre chose ? Méthode : nettoyage SQL, 7 requêtes KPI, dashboard Power BI (étoile, 15 mesures). Résultat : la baisse n'est pas liée à la qualité (délais raccourcis pendant la baisse) — le vrai problème est la rétention : 97 % des clients ne commandent qu'une fois.

SQL Power BI · Repo

02 · Nettoyage & qualité de données (NYC 311) — 50k lignes, API réelle

Problème : des données d'incidents municipaux avec des villes mal saisies, des catégories manquantes, des dates aberrantes. Méthode : module Pandas réutilisable + vue SQL, 8 règles de qualité testées. Résultat : 8/8 tests PASS — villes non standardisées 46 280 → 0, catégories manquantes 54 → 0.

Python Pandas · Repo

03 · Suivi de prix de jeux vidéo + web app — déployée en ligne

Problème : repérer les meilleures affaires jeux vidéo sans dataset propre existant. Méthode : collecte API CheapShark (choix éthique vs scraping fragile) → SQLite, app Flask avec filtres réactifs et graphique Chart.js. Résultat : app déployée sur Render, rafraîchissement automatique quotidien des prix via GitHub Actions.

Python Flask · Repo · Démo live

06 · Automatisation de reporting Excel — gain de temps chiffré

Problème : un rapport Excel mensuel refait à la main à chaque fois. Méthode : génération programmatique (openpyxl) — mise en forme, 4 feuilles, graphiques natifs — depuis la base du Projet 07 ; mini-app Streamlit pour le lancer sans coder. Résultat : ~38 h/an gagnées, documenté et chiffré.

Python Streamlit · Repo

08 · Bibliothèque SQL analytique — 16 requêtes métier commentées

Problème : démontrer une maîtrise SQL au-delà du SELECT simple. Méthode : fonctions fenêtres, cohortes de rétention, segmentation RFM, CTE récursive — chaque requête commentée avec sa logique métier. Résultat : bibliothèque réutilisable, note d'optimisation des performances incluse.

PostgreSQL · Repo

09 · Dashboard exécutif Power BI — modèle en étoile complet

Problème : donner une vue fiable et unique de la performance commerciale. Méthode : modèle en étoile propre, 17 mesures DAX (time intelligence YoY/YTD/MoM), sécurité au niveau des lignes (RLS). Résultat : dashboard 2 pages, drill-down, documentation in-situ du modèle.

Power BI DAX · Repo

💼 Contrôleur de gestion / Business Analyst — du chiffre à la décision

⭐ 15 · Reporting de gestion — écarts Budget/Réel, méthode Prix/Volume/Mix (déplié)

Problème : "CA réel 70,3 M€, Budget 71,6 M€" ne dit rien à un directeur commercial — a-t-on vendu moins, moins cher, ou pas les bonnes catégories ? Méthode : décomposition Prix/Volume/Mix (méthode standard de contrôle de gestion), identités algébriques vérifiées par assert (pas de chiffre publié sans preuve qu'il boucle), commentaires de clôture générés par département. Résultat : écart total -1,9 % expliqué département par département — deux départements compensent en partie les deux autres, invisible sur le seul total consolidé.

Python PostgreSQL Excel · Repo

⭐ 16 · Business case — investissement — NPV/IRR/sensibilité (déplié)

Problème : un fournisseur promet de réduire les annulations de commande — combien ça vaut vraiment, et à partir de quand ? Méthode : constat mesuré sur données réelles (7,18 % d'annulation), NPV/IRR (bissection, sans dépendance financière externe)/payback, grille de sensibilité 2 variables, mémo de décision écrit avec recommandation conditionnelle. Résultat : NPV +36 081 €, IRR 22,4 %, mais marge de sécurité étroite — la sensibilité identifie le point de bascule et motive un go conditionnel (test A/B avant déploiement complet) plutôt qu'un feu vert aveugle.

Python PostgreSQL Streamlit · Repo · Démo live

17 · Rentabilité produit/client — allocation ABC costing

Problème : un produit rentable en marge brute peut détruire de la valeur une fois les coûts indirects réellement alloués — invisible dans une répartition au prorata du CA. Méthode : 3 pools de coûts indirects (logistique, paiement, SAV), chacun sur son véritable inducteur (nb de lignes, montant réel par méthode de paiement, nb de commandes) ; réconciliations CA produit/client vérifiées par assert contre le total mesuré en base. Résultat : 9 produits sur 2000 à marge nette négative malgré une marge brute positive, seuil de rentabilité isolé (~12,80 €/ligne) ; signal client honnêtement rapporté comme absent sur ce jeu de données plutôt que forcé.

Python PostgreSQL · Repo

Voir aussi Data platform — contrôle de gestion : data platform de pilotage d'entreprise avec modèle Réel/Budget/Forecast complet, 4 tableaux de bord dont un "Pilotage CG" et un PDG/FinOps.

🏗️ Data Engineer — pipelines & infrastructure

07 · Base de données e-commerce (PostgreSQL) — la fondation du portfolio

Problème : construire un socle opérationnel réutilisable par tous les autres projets. Méthode : modélisation relationnelle 3NF, contraintes d'intégrité, index ciblés, conteneurisé Docker. Résultat : requêtes ~26× plus rapides (EXPLAIN ANALYZE avant/après), base réutilisée par 6 autres projets du portfolio.

PostgreSQL Docker · Repo

04 · Entrepôt de données multi-sources — DuckDB local

Problème : croiser 3 sources hétérogènes (base transactionnelle, calendrier, météo) sans infra cloud. Méthode : entrepôt DuckDB + dbt-duckdb, orchestration Prefect en une commande. Résultat : 10 modèles dbt, 11 tests PASS, dim_date fusionne calendrier et météo.

DuckDB dbt · Repo

10 · Pipeline ELT automatisé — architecture medallion

Problème : automatiser la chaîne complète source → entrepôt sans tout recharger à chaque fois. Méthode : extraction incrémentale par watermark (public → raw), dbt (staging → marts en étoile), orchestration Prefect. Résultat : 28 tests dbt PASS, validé sur données réelles (+928 lignes incrémentales, 0 doublon au 2ᵉ passage).

dbt Prefect · Repo

11 · Gouvernance & qualité des données — dictionnaire + lignage

Problème : sans gouvernance, personne ne sait ce que signifie une colonne ni qui est responsable d'une table. Méthode : dictionnaire raw/staging/marts, conventions de nommage, tests dbt, lignage généré automatiquement. Résultat : 28 tests qualité PASS, ownership et SLA documentés par table.

dbt Markdown · Repo

⭐ 14 · Filiation — documentation vivante et interactive de traçabilité

Problème : le lignage dbt (Projet 11) est exact mais lu par des data engineers — pas par quelqu'un qui demande juste "d'où vient ce chiffre ?". Méthode : page cliquable qui remonte un indicateur/colonne/table jusqu'à sa donnée brute ; jeu de données réel introspecté depuis le Projet 10 (manifest.json/catalog.json/run_results.json, rien d'inventé), script Python rejouable après chaque dbt run. Résultat : 13 nœuds (5 sources + 8 modèles), 28 tests dbt réels affichés avec leur statut, lecture seule + renvoi vers le système source (gouvernance, pas d'édition directe en base).

dbt JavaScript · Repo

12 · Dédoublonnage & golden record — entity resolution

Problème : deux sources clients avec doublons, fautes de frappe et variantes de noms — aucun identifiant fiable. Méthode : standardisation, fuzzy matching (rapidfuzz), union-find pour regrouper les doublons, règles de survivorship. Résultat : 1280 → 813 golden records, précision 97,2 % / rappel 95,9 % / F1 96,5 % — mesuré contre une vérité terrain connue.

Python rapidfuzz · Repo

⭐ 13 · Entrepôt central BigQuery — le même modèle, dans le cloud (déplié — la preuve cloud du portfolio)

Problème : est-ce que la modélisation dimensionnelle du Projet 09 tient la route hors d'un environnement local ? Méthode : extraction dlt (PostgreSQL → BigQuery raw), dbt-bigquery (staging → marts, même étoile que le Projet 09), IAM à privilège minimal, Power BI branché sur marts. Résultat : 12/12 tests dbt PASS, compte de service sans rôle Owner, modèle documenté in-situ.

BigQuery dbt Power BI · Repo

Voir aussi olist-analytics-dbt-snowflake (reproduction guidée d'une formation vidéo, pas un projet original — annoncé comme tel dans son propre README) : même stack ELT (S3 → Snowflake → dbt) sur le dataset réel Olist, poussée jusqu'au bout — 25/25 tests, snapshot SCD2, orchestration Prefect, CI GitHub Actions verte, doc de lignage publiée.

⭐ 18 · Monitoring Eco2mix — infra live en production (déplié — le seul projet du portfolio avec un flux vraiment temps réel)

Problème : tous les projets précédents partent d'un import one-shot — aucun ne prouve savoir exploiter une infra en prod (déploiement, secrets, uptime) sur un flux qui ne s'arrête jamais. Méthode : VPS + Coolify auto-hébergé (n8n + Metabase, HTTPS Let's Encrypt réel), ingestion automatisée toutes les 15 min (API RTE Eco2mix) vers Supabase avec RLS testée avec les vrais rôles (SET ROLE, 6/6 cas), marts dbt, dashboards Metabase + Power BI, lignage branché sur le Projet 14 avec refresh quotidien automatisé. Résultat : pipeline qui tourne tout seul depuis le déploiement, 7 phases du cadrage terminées et vérifiées en conditions réelles (pas supposées) — cadrage complet dans l'issue #1.

Python Supabase n8n dbt Power BI · Repo · Démo live

⭐ 19 · Plateforme data d'entreprise — le plus gros projet solo du portfolio (déplié — 3 domaines métier bout en bout)

Problème : aucun projet précédent ne fait cohabiter plusieurs domaines métier hétérogènes (technos et qualité de données différentes) dans un même entrepôt gouverné. Méthode : 3 bases "de production" simulées par usage réel sur plusieurs mois (AS/400 + Excel pour les Ventes, SQL Server + CSV + Factur-X pour la Finance, MySQL + JSON + mock API SaaS OAuth2/webhook/reverse-ETL pour le Marketing) → dbt vers un entrepôt en modèle constellation (dimensions partagées, plusieurs faits), RLS multi-rôles testée par SET ROLE, housekeeping index/bloat sur les 3 moteurs réels, lignage branché sur le Projet 14. Résultat : 51/51 tests dbt, réconciliation Factur-X 91 % structuré contre 44 % non structuré (argument chiffré pour la migration e-facturation), absence de corrélation marketing→ventes honnêtement rapportée avec sa cause racine plutôt qu'une conclusion forcée — 7 phases du cadrage terminées, cadrage complet dans l'issue #2.

Python dbt PostgreSQL SQL Server MySQL n8n Airflow · Repo

20 · Pilotage de projets d'ingénierie — Azure Databricks/PySpark, construit pour une candidature ciblée

Problème : prouver la stack exacte demandée par une offre précise (Data Engineer, Azure Databricks/PySpark/Azure DevOps + Power BI) plutôt qu'une compétence générique adjacente. Méthode : pipeline PySpark (ingestion → nettoyage → contrôles qualité → marts KPI) exécuté sur Azure Databricks Community Edition, requêtes SQL, pipeline Azure DevOps, dashboard Power BI (étoile, 16 mesures DAX) — mapping détaillé exigence de l'offre → preuve dans le repo. Résultat : 11/11 tests PASS, 10 contrôles qualité automatisés (doublons, bornes, intégrité référentielle) avant/après fiabilisation, dérive budgétaire de +11,9 % détectée sur le portefeuille synthétique.

PySpark Databricks Azure DevOps Power BI · Repo

21 · Intégrer Power BI dans un transporteur — entrepôt DuckDB + dbt et 23 rapports de pilotage

Problème : chez TransVal Logistique (transporteur citerne fictif), Power BI est branché en direct sur 6 systèmes de gestion et chaque rapport refait son propre nettoyage : mesures recopiées, TODAY() partout, deux rapports qui donnent deux chiffres pour les mêmes heures, aucune sécurité ni aucun test. Méthode : entrepôt DuckDB + dbt incrémental entre les sources et Power BI (imports CDC / fenêtres / snapshots, SCD2, 48 tests), modèle sémantique PBIP/TMDL généré (352 mesures, une définition chacune), 23 rapports de pilotage, un par sujet, sécurité par ligne, orchestration et alertes n8n, déploiement fabric-cicd. Résultat : mêmes chiffres prouvés KPI par KPI (Power BI de départ ↔ entrepôt 93/97 + 4 erreurs corrigées et documentées ; entrepôt ↔ nouveau modèle : 2 213 valeurs, 0 écart), pipeline complet en ≈ 2 minutes rejoué en CI.

DuckDB dbt Power BI n8n Python · Repo · Spécification fonctionnelle

🤖 IA / LLM

⭐ 05 · Assistant d'analyse financière (RAG/LLM) — la pièce maîtresse IA (déplié — le projet le plus démonstratif)

Problème : un LLM seul hallucine des chiffres financiers plausibles mais faux — inacceptable sur ce sujet. Méthode : récupération vectorielle locale (embeddings, sans clé API) + génération Claude, avec garde-fous (ancrage strict, citations obligatoires, refus explicite mesuré). Résultat : rappel de récupération 100 % (7/7) sur un jeu d'évaluation à vérité terrain connue, garde-fous documentés et testés.

Python Claude Streamlit · Repo


✅ Bonnes pratiques appliquées sur tout le portfolio

Pratique Comment elle est appliquée ici
Un repo = un projet 22 dépôts indépendants, chacun avec un README structuré (problème → méthode → résultats chiffrés → reproduction)
Tests systématiques, vérifiés par CI dbt tests (unicité, non-nullité, intégrité référentielle) sur les projets 04/10/11/13/18 ; tests qualité Python sur les projets 02/09/12/14 ; constats d'analyse rejoués sur les données réelles (Olist) sur le projet 01 ; asserts d'identité/réconciliation comptable sur les projets 15/16/17 ; RLS testée avec les vrais rôles sur les projets 18/19 ; tests PySpark sur le projet 20 ; parité KPI par KPI Power BI ↔ entrepôt sur le projet 21 ; 21 des 22 dépôts ont une CI GitHub Actions qui rejoue le pipeline à chaque push — badge cliquable dans chaque README concerné, pas juste une affirmation
Documentation vivante Journal de bord par projet, descriptions in-situ dans les modèles Power BI, dictionnaires de données générés (pas de doc qui se périme dans un coin)
Secrets jamais commités .gitignore systématique, clés de service hors repo, tout secret lu depuis l'environnement (ANTHROPIC_API_KEY, GOOGLE_APPLICATION_CREDENTIALS)
Moindre privilège Comptes de service à droits scopés (IAM BigQuery : dataEditor + jobUser, jamais Owner)
Reproductibilité Scripts rejouables (load_postgres_to_bq.py, fetch_deals.py, build_index()), environnements Docker/venv versionnés
Garde-fous coûts cloud Région unique, colonnes explicites dans les requêtes facturées (BigQuery), staging en vues / marts en tables matérialisées
Commits descriptifs Convention feat: / docs: / fix:, message = contexte + résultat chiffré, jamais juste "update"

📊 Activité GitHub

GitHub stats Top langages GitHub streak

🔗 Une structure commune, projet après projet

Chaque dépôt suit le même plan — problème métier → méthode → résultats chiffrés → comment rejouer — un dossier docs/, du code versionné, et une CI qui vérifie ce qu'il avance plutôt que de se contenter de l'affirmer. Retrouve le point de départ recommandé plus haut, dans « Par où commencer ».

🎨 Identité visuelle

Charte commune « Petrol & Ambre » appliquée à tous les dashboards et documents du portfolio : #137A8B (signature), #E4A93C (accent), déclinée en thème Power BI réutilisable — un détail qui compte autant que le code pour donner une impression de cohérence sur 22 projets.

Merci d'être passé·e voir. Discutons-en → Email

Pinned Loading

  1. projet-22-prix-immobilier-mel projet-22-prix-immobilier-mel Public

    Prix des logements de la métropole lilloise : 73 000 ventes réelles (DVF), régression hédonique, effet quartier, baisse post-taux testée, note décideur

    Jupyter Notebook

  2. projet-21-entrepot-transport projet-21-entrepot-transport Public

    Intégrer Power BI dans un transporteur (fictif) : entrepôt DuckDB + dbt incrémental, parité KPI par KPI, modèle PBIP/TMDL unique, 23 rapports de pilotage, RLS, n8n, fabric-cicd

    Python

  3. projet-19-plateforme-entreprise projet-19-plateforme-entreprise Public

    Plateforme data d'entreprise multi-domaines (Ventes/Finance/Marketing, entrepôt constellation, RLS multi-rôles, Hermès Agent) — cadrage validé et figé, implémentation pas commencée.

    Python

  4. projet-01-analyse-ventes-ecommerce projet-01-analyse-ventes-ecommerce Public

    Analyse de ventes e-commerce (Olist) orientee question metier : SQL + nettoyage + insights actionnables. Projet 01 du portfolio data.

    PLpgSQL

  5. projet-15-reporting-ecarts-cg projet-15-reporting-ecarts-cg Public

    Reporting de gestion mensuel : écarts Budget vs Réel décomposés en Prix/Volume/Mix. Projet 15 du portfolio data.

    Python

  6. projet-13-entrepot-central-bigquery projet-13-entrepot-central-bigquery Public

    Entrepot central BigQuery : ELT dlt + dbt sur la base PostgreSQL du portfolio, modele en etoile, 12 tests dbt PASS.

    HCL