{
  "version": 2,
  "locale": "fr-FR",
  "updatedAt": "2026-07-19",
  "profile": {
    "name": "Cédric Freret",
    "headline": "Lead Software Engineer hands-on · Founding Engineer",
    "summary": "Développeur produit et lead hands-on, je prends les sujets de bout en bout : besoin, feature, architecture, review et production. Je cherche à comprendre chaque système assez profondément pour en tirer le meilleur bénéfice utile, sans quitter le code.",
    "targetRoles": [
      "Lead Software Engineer",
      "Founding Engineer",
      "Tech Lead Full-Stack",
      "Staff Software Engineer hands-on"
    ],
    "preferredEnvironment": "Petite équipe produit, early stage ou 2-pizza team, où un Founding Engineer ou Lead hands-on construit les prochaines fonctionnalités et fait évoluer le produit en production ; le run soutient l’équipe sans accaparer le rôle.",
    "location": "Île-de-France",
    "workMode": "Hybride",
    "contacts": [
      {
        "type": "email",
        "label": "cv@hidemyhome.ovh",
        "href": "mailto:cv@hidemyhome.ovh"
      },
      {
        "type": "linkedin",
        "label": "linkedin.com/in/cedric-freret",
        "href": "https://www.linkedin.com/in/cedric-freret"
      }
    ]
  },
  "capabilityGroups": [
    {
      "id": "frame",
      "label": "Cadrer",
      "items": ["Besoin", "Roadmap", "Architecture", "Budget"]
    },
    {
      "id": "build",
      "label": "Construire",
      "items": ["React/Next", "TypeScript", "Node/Nest", "SQL"]
    },
    {
      "id": "reliability",
      "label": "Fiabiliser",
      "items": ["Tests", "Review", "IaC", "Cache", "Observabilité"]
    },
    {
      "id": "iterate",
      "label": "Itérer",
      "items": ["Mesurer en production", "Comparer", "Corriger"]
    }
  ],
  "experiences": [
    {
      "id": "fondation-du-patrimoine",
      "organization": "Fondation du patrimoine",
      "employmentType": "CDI",
      "location": "Neuilly-sur-Seine",
      "workMode": "Hybride",
      "roles": [
        {
          "title": "Lead Software Developer (hands-on & management)",
          "start": "2023-10",
          "end": null
        }
      ],
      "displayPeriod": "oct. 2023 → aujourd’hui",
      "a4MobileSummary": "Développement hands-on de features, roadmap et squad de 4. Environ 100 ms observés en production sur une page de référence. 2 500 → 5 500 visiteurs/jour avec un budget infra revenu au niveau de 2022.",
      "achievements": [
        {
          "id": "fdp-product",
          "statement": "Développement hands-on et livraison continue des fonctionnalités de la plateforme nationale, du besoin métier au suivi en production.",
          "a4Priority": 1
        },
        {
          "id": "fdp-leadership",
          "statement": "Roadmap 2025–2026 définie et budgétée ; coordination d’une équipe externe de quatre personnes, delivery hands-on et gestion des incidents critiques.",
          "a4Priority": 1
        },
        {
          "id": "fdp-performance",
          "statement": "Cache Redis adapté à la durée de vie des données : UptimeRobot observe environ 100 ms en moyenne en production sur une page de référence. Séparément, à 250 req/s en test de charge, toutes les requêtes sont restées sous 1,2 s.",
          "metrics": {
            "latencyBeforeMs": { "min": 2000, "max": 3000 },
            "latencyAverageAfterMs": 100,
            "latencyAverageSource": "UptimeRobot, production, une page de référence",
            "maxObservedLatencyAfterMs": 1200,
            "throughputRps": 250,
            "loadTestPercentile": 100
          },
          "a4Priority": 1
        },
        {
          "id": "fdp-growth-costs",
          "statement": "Une fréquentation passée de 2 500 à 5 500 visiteurs uniques par jour a été absorbée avec un budget d’infrastructure revenu au niveau de 2022 ; environ 500 € économisés chaque mois sur les services tiers.",
          "metrics": {
            "dailyUniqueVisitorsBefore": 2500,
            "dailyUniqueVisitorsAfter": 5500,
            "monthlyThirdPartySavingsEur": 500,
            "cardProcessingCostReductionPct": 90,
            "mappingServiceCostReductionPct": 70
          },
          "a4Priority": 1
        },
        {
          "id": "fdp-reliability",
          "statement": "Environ 1 h 30 d’indisponibilité cumulée depuis le 1er janvier 2026 : 45 min liées à une mise à jour Kubernetes/pods et 45 min correspondant au seul incident réel de la période, causé par un bug. Mesure arrêtée au 19 juillet 2026.",
          "metrics": {
            "downtimeMinutes": 90,
            "measurementStart": "2026-01-01",
            "measurementEnd": "2026-07-19",
            "observedAvailabilityPct": 99.9686,
            "incidents": [
              {
                "minutes": 45,
                "classification": "opération technique",
                "cause": "mise à jour Kubernetes et pods"
              },
              { "minutes": 45, "classification": "incident réel", "cause": "bug" }
            ]
          },
          "a4Priority": 3
        },
        {
          "id": "fdp-payments",
          "statement": "Changement de PSP mené en deux temps : dons récurrents d’abord, puis cartes — environ 70 % des dons — basculées en une fois pendant une période critique. Une transaction en erreur a été détectée, corrigée puis auditée en moins de 24 h avec l’appui du workflow assisté par IA.",
          "metrics": {
            "validationStep": "dons récurrents",
            "donationSharePct": 70,
            "failedTransactions": 1,
            "resolutionHoursMax": 24
          },
          "a4Priority": 2
        },
        {
          "id": "fdp-voting",
          "statement": "Un test de charge a validé 10 000 votes en cinq minutes, sans impact notable sur le parcours de don.",
          "metrics": { "votes": 10000, "minutes": 5 },
          "a4Priority": 3
        }
      ]
    },
    {
      "id": "examin",
      "organization": "Examin",
      "employmentType": "CDI",
      "location": "Paris",
      "workMode": "Hybride",
      "roles": [
        {
          "title": "Lead Full-Stack Engineer",
          "start": "2022-10",
          "end": "2023-10"
        },
        {
          "title": "Full-Stack Developer",
          "start": "2021-02",
          "end": "2022-10"
        }
      ],
      "displayTitle": "Full-Stack Developer → Lead Full-Stack Engineer",
      "displayPeriod": "févr. 2021 → oct. 2023",
      "a4MobileSummary": "Développement full-stack du produit, moteur d’audit RGPD et rapports PDF fidèles. Refonte UI menée seul en 6 mois. Après une attaque : infrastructure et données restaurées en moins de 2 h, contre plus d’une semaine.",
      "achievements": [
        {
          "id": "examin-recovery",
          "statement": "Après une attaque, nouveau serveur, infrastructure et données restaurés en moins de 2 h par une personne grâce à Ansible, contre plus d’une semaine auparavant.",
          "metrics": { "operators": 1, "recoveryHoursMax": 2, "legacyRecoveryDaysMin": 7 },
          "a4Priority": 1
        },
        {
          "id": "examin-redesign",
          "statement": "Refonte complète de l’interface menée seul et livrée en six mois, sans perte fonctionnelle ni impact métier négatif identifié.",
          "metrics": { "deliveryMonths": 6 },
          "a4Priority": 1
        },
        {
          "id": "examin-product",
          "statement": "Développement full-stack des fonctionnalités du produit, construction du moteur d’audit RGPD et d’un système de rapports PDF reproduisant fidèlement les tableaux et graphiques de l’application.",
          "a4Priority": 1
        },
        {
          "id": "examin-mentoring",
          "statement": "Mentorat d’un développeur junior et de deux stagiaires par la code review, le pair programming et l’accompagnement à la livraison.",
          "a4Priority": 3
        }
      ]
    },
    {
      "id": "ministere-interieur",
      "organization": "Ministère de l’Intérieur",
      "employmentType": "CDI",
      "location": "Paris",
      "workMode": "Sur site",
      "roles": [
        {
          "title": "Full-Stack Developer — automatisation",
          "start": "2017-12",
          "end": "2021-02"
        }
      ],
      "displayPeriod": "déc. 2017 → févr. 2021",
      "a4MobileSummary": "Production hebdomadaire : environ 30 h → une demi-journée. Intersaison : deux mois → quatre jours, avec plus de temps pour l’interprétation.",
      "achievements": [
        {
          "id": "mi-statistics",
          "statement": "Chaîne statistique nationale automatisée : environ 30 h → une demi-journée par semaine ; intersaison de deux mois → quatre jours, avec moins d’erreurs et plus de temps pour l’interprétation.",
          "metrics": {
            "weeklyWorkBeforeHours": 30,
            "weeklyWorkAfterDays": 0.5,
            "interseasonBeforeMonths": 2,
            "interseasonAfterDays": 4
          },
          "a4Priority": 1
        }
      ]
    }
  ],
  "aiAugmentedWorkflow": {
    "principle": "L’IA réduit le coût d’une première solution et des itérations suivantes. Cédric cadre, relit, valide et assume le résultat.",
    "proofs": [
      {
        "id": "strapi-v3-v5",
        "status": "réalisé en équipe",
        "statement": "Comparaison de comportements, audits répétés et corrections réexaminées lors d’une migration Strapi V3 vers V5.",
        "metrics": {
          "detectedRegressionsCorrectedPctMin": 60
        }
      },
      {
        "id": "cms-500-records",
        "status": "en cours de déploiement",
        "statement": "Un document Word déposé dans SharePoint doit alimenter une chaîne d’intégration, d’audit, de notification et de classement dans le CMS, avant validation humaine.",
        "goal": "Retirer la saisie sans valeur ajoutée sans automatiser le jugement.",
        "metrics": {
          "siteRecords": 500,
          "manualMinutesPerRecord": 30,
          "estimatedManualHours": 250
        }
      }
    ]
  },
  "projects": [
    {
      "id": "4a-lescale",
      "name": "4A L’Escale",
      "subtitle": "Halte-répit d’Étampes",
      "periodLabel": "2011–2018 · 2026 → aujourd’hui",
      "roles": ["Animateur", "Webmaster", "Développeur produit"],
      "statement": "Services numériques pour aider les aidants à retrouver activités, informations et contacts utiles sans multiplier les sources.",
      "url": "https://www.4a-lescale.fr",
      "a4Priority": 1
    },
    {
      "id": "residence-du-verger",
      "name": "Résidence du Verger",
      "roles": ["Vice-président du Conseil syndical", "Développeur unique"],
      "statement": "Interface web conçue et développée de zéro pour réduire la charge mentale et le stress du Conseil syndical.",
      "url": "https://www.residence-du-verger.fr",
      "a4Priority": 1
    },
    {
      "id": "pierres-en-lumieres",
      "name": "Pierres en Lumières",
      "roles": ["Développeur unique"],
      "statement": "Nouveau site du festival patrimonial pour améliorer la visibilité, l’attrait et la découverte des événements.",
      "url": null,
      "status": "Nouvelle version prévue entre T4 2026 et janvier 2027",
      "publicVersionNote": "La version actuellement en ligne n’est pas celle développée par Cédric.",
      "a4Priority": 2
    }
  ],
  "education": [
    {
      "id": "psychology",
      "title": "Licence de psychologie",
      "institution": "Université Paris Descartes",
      "start": "2009",
      "end": "2012"
    }
  ],
  "views": {
    "a4": {
      "experienceIds": ["fondation-du-patrimoine", "examin", "ministere-interieur"],
      "achievementIds": [
        "fdp-product",
        "fdp-leadership",
        "fdp-performance",
        "fdp-growth-costs",
        "fdp-payments",
        "examin-recovery",
        "examin-redesign",
        "examin-product",
        "examin-mentoring",
        "mi-statistics"
      ],
      "projectIds": ["4a-lescale", "residence-du-verger", "pierres-en-lumieres"],
      "capabilityGroupIds": ["frame", "build", "reliability", "iterate"]
    }
  }
}
