HealthData
Un écosystème complet de données de santé — de l'ingestion multi-sources aux prédictions ML, du coaching personnalisé au workout poussé sur la montre. Construit seul, avec l'IA comme partenaire de développement.
Le problème
Mon bracelet Whoop me dit que ma récupération est à 62%. Mon Garmin affiche un Body Battery à 45 et un training status "Unproductive". Deux capteurs, deux algorithmes, deux réponses différentes à la même question : est-ce que mon corps est prêt à s'entraîner aujourd'hui ?
La réponse n'est dans aucune des deux apps. Elle est entre les deux.
La boucle complète
J'ai construit un système qui consolide toutes les sources, les modélise, et produit un résultat concret : un entraînement adapté chaque semaine, validé par simulation, poussé directement sur ma montre Garmin. Pas une app de plus — un écosystème complet, de l'ingestion au poignet.
10 endpoints, moins de 3 secondes
Garmin, Whoop, Withings, Foodvisor — chaque source a ses particularités. Garmin n'a pas d'API publique pour les données physiologiques. Whoop est bien documenté mais limité. La nutrition passe par HealthKit comme couche d'abstraction. Le pipeline unifie tout ça en parallèle, en moins de 3 secondes.
Qui croire ?
Ma fréquence cardiaque au repos : 5.53 bpm d'écart moyen entre Garmin et Whoop sur 3 ans. Pas un bug — une différence de méthode de mesure. Le genre de révélation qu'on n'obtient qu'en croisant ses sources sur la durée, dans un notebook BigQuery construit avec Claude.
Saisonnalité du sommeil, impact de la charge sur la récupération, détection d'anomalies multi-variées — les questions que les apps ne posent pas.
Deux cerveaux
5 modèles Random Forest prédisent la récupération, le sommeil, le strain, le poids et l'effort — avec intervalle de confiance et importance de chaque variable. Mais un modèle ML ne suffit pas. Il ne sait pas interpréter, négocier, ni comprendre que tu as une réunion à midi.
Claude orchestre 55 outils via le Model Context Protocol. Il interprète les prédictions, respecte les règles de coaching, et produit une recommandation contextualisée. Ni l'un ni l'autre ne suffit seul.
Du coaching, pas un chatbot
Le moteur de coaching ne se contente pas de recommander — il protège. Chaque suggestion passe par des garde-fous quantitatifs : le Training Stress Balance mesure la fatigue cumulée, l'Acute:Chronic Workload Ratio détecte les pics de charge risqués, et la dette de sommeil module l'intensité autorisée. Pas de deux HIIT consécutifs. Repos forcé si l'ACWR dépasse 1.5.
Avant d'être validé, chaque plan est simulé. Le Digital Twin rejoue la semaine jour par jour : chaque session simulée génère une charge qui modifie la récupération prédite du lendemain. Si la simulation détecte un risque de surcharge en fin de semaine, le plan est ajusté avant même d'être proposé.
"On fait quoi demain ?"
C'est ma question du soir. Pas dans Garmin. Pas dans Whoop. Dans Claude, sur mon téléphone. Claude appelle les outils dont il a besoin, croise mes données, et me répond. Si le workout est validé, il est sur ma montre avant que je parte.
Les interfaces
SvelteKit Dashboard — L'analyse en profondeur
Prédictions ML avec intervalle de confiance, journal d'activité en vue calendrier, corrélations entre métriques de santé — l'interface web pour creuser. 390 composants Svelte, 40+ pages.
App iOS — La consultation quotidienne
Charge d'entraînement, prescription du jour, facteurs de récupération — tout en un coup d'œil. Swift 6, SwiftUI natif, 476 fichiers.
BigQuery Notebooks — L'exploration sur la durée
Comparaison Garmin vs Whoop sur 3 ans, détection d'anomalies contextuelles, saisonnalité — les analyses que les apps ne posent pas. Co-construits avec Claude dans BigQuery.
Infrastructure
40+ Cloud Functions en Node.js et Python, Firestore temps réel, BigQuery pour l'analytique, une app iOS native, et un serveur MCP sur Cloud Run — le tout orchestré par un seul développeur.
Stack technique
Envie d'en savoir plus ?
La série technique complète arrive sur Substack — ou consultez mes services.