<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Florian Sola — Blog technique</title>
    <link>https://floriansola.fr/blog</link>
    <atom:link href="https://floriansola.fr/blog/rss.xml" rel="self" type="application/rss+xml" />
    <description>Articles techniques sur C#, .NET, architecture, WebGPU et systèmes distribués.</description>
    <language>fr-FR</language>
    <lastBuildDate>Sun, 24 May 2026 19:58:45 GMT</lastBuildDate>
    <item>
      <title>Coder à 3× la vitesse avec des agents IA — sans devenir un dev qui copie-colle</title>
      <link>https://floriansola.fr/blog/dev-avec-agents-ai-claude-code</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/dev-avec-agents-ai-claude-code</guid>
      <description>J&apos;ai mis 6 mois à comprendre que &apos;demander à ChatGPT&apos; n&apos;était pas la bonne façon de coder avec une IA. Voici le workflow que j&apos;utilise aujourd&apos;hui avec Claude Code — agents spécialisés, prompts contextuels, audit obligatoire — et ce qui sépare un dev qui code 3× plus vite d&apos;un dev qui produit du code que personne ne maintient.</description>
      <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
      <category>IA</category>
      <category>Claude Code</category>
      <category>Productivité</category>
      <category>Workflow</category>
      <category>Senior</category>
    </item>
    <item>
      <title>J&apos;ai construit Vouch en .NET 10 — la preuve que GenAI native sans sidecar Python, ça marche</title>
      <link>https://floriansola.fr/blog/vouch-genai-native-dotnet</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/vouch-genai-native-dotnet</guid>
      <description>Vouch — moteur de réponse automatique aux questionnaires SOC 2 / ISO 27001 — full .NET 10, MEAI, pgvector. Pourquoi j&apos;ai refusé le sidecar Python, comment l&apos;invariant cité-ou-rien est codé dans le domaine, et ce que j&apos;en retire pour positionner un profil .NET face à des architectures hybrides.</description>
      <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
      <category>C#</category>
      <category>.NET</category>
      <category>GenAI</category>
      <category>DDD</category>
      <category>RAG</category>
      <category>Architecture</category>
      <category>pgvector</category>
    </item>
    <item>
      <title>Loop — automatiser 80 % du Tier-1 support d&apos;un SaaS B2B sans jamais auto-répondre à un client Enterprise</title>
      <link>https://floriansola.fr/blog/loop-ai-support-triage-dotnet</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/loop-ai-support-triage-dotnet</guid>
      <description>Mission de 4 semaines : remplacer le workflow copier-coller depuis Notion par un worker GenAI .NET 10. Pourquoi l&apos;invariant auto-send DOIT vivre sur l&apos;agrégat, pourquoi un classifier heuristique à 78 % bat ML.NET sans corpus, et pourquoi le port IEmailReceiver change la testabilité.</description>
      <pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate>
      <category>C#</category>
      <category>.NET</category>
      <category>GenAI</category>
      <category>MEAI</category>
      <category>Worker</category>
      <category>Architecture</category>
      <category>Mission freelance</category>
      <category>SaaS</category>
    </item>
    <item>
      <title>Tally — refondre la facturation usage-based d&apos;un éditeur SaaS sans perdre 18 % de marge en frais Stripe</title>
      <link>https://floriansola.fr/blog/tally-usage-based-billing-dotnet</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/tally-usage-based-billing-dotnet</guid>
      <description>Mission de 6 semaines : remplacer un pipeline de facturation qui envoyait un appel Stripe par événement métering. Pourquoi l&apos;idempotence DOIT vivre sur un index unique Postgres, pourquoi un z-score glissant bat ML.NET pour la détection d&apos;anomalies de consommation, et pourquoi le pricing gradué change tout.</description>
      <pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate>
      <category>C#</category>
      <category>.NET</category>
      <category>EF Core</category>
      <category>Stripe</category>
      <category>Architecture</category>
      <category>Mission freelance</category>
      <category>Fintech</category>
    </item>
    <item>
      <title>Poisson Engine — Bilan : ce que ça donne quand on prend l&apos;audit au sérieux</title>
      <link>https://floriansola.fr/blog/poisson-engine-bilan-architecture</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/poisson-engine-bilan-architecture</guid>
      <description>Six mois après le premier commit, Poisson est passé du POC qui crashe à un moteur de simulation auditable : 859 tests verts, zéro vulnérabilité XSS, lint qui enforce l&apos;architecture, et deux plongées techniques publiées. Tour d&apos;horizon — avec tous les liens pour creuser.</description>
      <pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate>
      <category>WebGPU</category>
      <category>Architecture</category>
      <category>Performance</category>
      <category>Open Source</category>
      <category>JavaScript</category>
    </item>
    <item>
      <title>9 produits livrés en 11 mois en solo — voici exactement comment</title>
      <link>https://floriansola.fr/blog/9-produits-11-mois-en-solo</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/9-produits-11-mois-en-solo</guid>
      <description>OneRP, SaleCast, PromptVault, MyRoadTrip, Poisson Engine, aiSelector, GeopolAI, Racine, Portfolio Engineering. Neuf produits, 11 mois, un seul développeur. Pas de surhumain — un système. Voici ce qu&apos;il faut accepter de ne plus faire, et ce qu&apos;il faut payer une fois pour livrer dix fois.</description>
      <pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate>
      <category>Productivité</category>
      <category>Architecture</category>
      <category>Solo founder</category>
      <category>Senior</category>
      <category>Métier</category>
    </item>
    <item>
      <title>3 décisions d&apos;architecture qui ont sauvé mes projets (et celle qui en a tué un)</title>
      <link>https://floriansola.fr/blog/3-decisions-archi-qui-ont-sauve-mes-projets</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/3-decisions-archi-qui-ont-sauve-mes-projets</guid>
      <description>Faire un choix d&apos;archi en 2 minutes pendant un café peut éviter 6 mois de refacto — ou les déclencher. Quatre vraies décisions, prises sur mes projets en production, avec le coût et le résultat. Sans bullshit, sans &apos;best practices&apos;, juste ce qui marche et ce qui ne marche pas.</description>
      <pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <category>Décisions</category>
      <category>Senior</category>
      <category>Métier</category>
      <category>Retour d&apos;expérience</category>
    </item>
    <item>
      <title>Pourquoi j&apos;investis 3 semaines pour gagner 6 mois (le secret des devs qui livrent 10x)</title>
      <link>https://floriansola.fr/blog/portfolio-libs-8-libs-3-semaines-1-an</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/portfolio-libs-8-libs-3-semaines-1-an</guid>
      <description>J&apos;ai 8 bibliothèques personnelles que je publie en privé sur npm. Aucune n&apos;a été &apos;planifiée&apos;. Chacune est née d&apos;un projet client où j&apos;ai dit &apos;tiens, c&apos;est la troisième fois que j&apos;écris ce code&apos;. Voici la stratégie d&apos;extraction qui a transformé ma productivité — et les pièges qui m&apos;ont coûté du temps avant que je la comprenne.</description>
      <pubDate>Fri, 05 Dec 2025 00:00:00 GMT</pubDate>
      <category>Productivité</category>
      <category>Architecture</category>
      <category>Monorepo</category>
      <category>Senior</category>
      <category>Réutilisation</category>
    </item>
    <item>
      <title>Pourquoi votre healthcheck LLM ment depuis le premier jour</title>
      <link>https://floriansola.fr/blog/aiselector-double-healthcheck-canary</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/aiselector-double-healthcheck-canary</guid>
      <description>Tout le monde teste si l&apos;API du LLM répond. Personne ne teste si le modèle est encore intelligent. Et le jour où Claude perd 20 % de qualité après une mise à jour, vous le découvrez dans votre prod, pas dans vos métriques. Voici la solution que j&apos;ai codée dans aiSelector — 30 lignes de C# qui changent la donne.</description>
      <pubDate>Tue, 18 Nov 2025 00:00:00 GMT</pubDate>
      <category>LLM</category>
      <category>Observability</category>
      <category>Healthcheck</category>
      <category>C#</category>
      <category>.NET</category>
    </item>
    <item>
      <title>Black Box Conflict — Quand 3 IA décident de la paix ou de la guerre</title>
      <link>https://floriansola.fr/blog/blackbox-biais-ia</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/blackbox-biais-ia</guid>
      <description>Comment j&apos;ai construit un observatoire d&apos;audit algorithmique qui soumet des crises géopolitiques à GPT-5.2, Claude Opus et Gemini 3.1 en parallèle — et quantifie leurs biais de décision.</description>
      <pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate>
      <category>IA</category>
      <category>LLM</category>
      <category>Biais</category>
      <category>React</category>
      <category>C#</category>
      <category>Audit</category>
    </item>
    <item>
      <title>GeopolAI — Comment je mesure si une IA est plus belliqueuse qu&apos;une autre</title>
      <link>https://floriansola.fr/blog/geopolai-mesurer-biais-ia</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/geopolai-mesurer-biais-ia</guid>
      <description>GPT-4 conseille la désescalade. Gemini suggère un déploiement militaire. Claude propose un cadre diplomatique. Les trois répondent à la même crise. Sont-ils d&apos;accord ? Non. Lequel a raison ? Aucun ne le sait. Mais on peut au moins **mesurer leur divergence** — et c&apos;est ce que fait GeopolAI.</description>
      <pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate>
      <category>IA</category>
      <category>Éthique</category>
      <category>Biais</category>
      <category>LLM</category>
      <category>Comparaison</category>
    </item>
    <item>
      <title>Le ChatGPT &apos;pro&apos; qu&apos;on devrait tous avoir : pourquoi les prompts doivent être versionnés comme du code</title>
      <link>https://floriansola.fr/blog/promptvault-marketplace-prompts</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/promptvault-marketplace-prompts</guid>
      <description>Chez mes clients, j&apos;ai vu la même chose 5 fois : des prompts perdus dans Slack, des hacks copiés à la main, des résultats incohérents entre collègues. PromptVault est ce que j&apos;ai construit pour traiter les prompts comme on traite du code source — versionnés, partagés, audités, mesurés.</description>
      <pubDate>Sun, 28 Sep 2025 00:00:00 GMT</pubDate>
      <category>LLM</category>
      <category>Productivité</category>
      <category>Knowledge Management</category>
      <category>Entreprise</category>
    </item>
    <item>
      <title>PromptVault — Comment masquer 13 types de PII dans ChatGPT sans casser la conversation</title>
      <link>https://floriansola.fr/blog/promptvault-shield-pii-reversible</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/promptvault-shield-pii-reversible</guid>
      <description>Anonymiser un prompt avant qu&apos;il quitte le navigateur, recevoir une réponse ChatGPT mentionnant [NAME_1] et [IBAN_1], puis rendre Marie Dupont et FR76 3000... visibles à l&apos;utilisateur — en temps réel, dans le DOM React de ChatGPT. Le pipeline complet en 80 lignes de TypeScript.</description>
      <pubDate>Wed, 10 Sep 2025 00:00:00 GMT</pubDate>
      <category>Privacy</category>
      <category>RGPD</category>
      <category>Chrome Extension</category>
      <category>TypeScript</category>
      <category>DOM</category>
      <category>LLM</category>
    </item>
    <item>
      <title>MyRoadTrip — Une app web et iOS/Android avec le même code, sans React Native</title>
      <link>https://floriansola.fr/blog/myroadtrip-capacitor-web-mobile-meme-code</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/myroadtrip-capacitor-web-mobile-meme-code</guid>
      <description>Deux décisions ont fait que MyRoadTrip tourne sur web, App Store et Play Store depuis le même repo Vue 3 — sans Flutter, sans React Native, sans Expo. Voici comment Capacitor + une discipline sur les APIs natives m&apos;a évité 6 mois de double-codage.</description>
      <pubDate>Fri, 22 Aug 2025 00:00:00 GMT</pubDate>
      <category>Mobile</category>
      <category>Capacitor</category>
      <category>Vue.js</category>
      <category>Cross-platform</category>
      <category>iOS</category>
      <category>Android</category>
    </item>
    <item>
      <title>MyRoadTrip — Synchronisation offline avec CRDT et Yjs en Vue.js</title>
      <link>https://floriansola.fr/blog/myroadtrip-crdt-offline</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/myroadtrip-crdt-offline</guid>
      <description>Comment j&apos;ai construit un planificateur de road trips collaboratif en offline-first avec Yjs, un monorepo Vue.js/TypeScript, Firebase, Mapbox, et Capacitor pour le mobile.</description>
      <pubDate>Tue, 05 Aug 2025 00:00:00 GMT</pubDate>
      <category>Offline-first</category>
      <category>CRDT</category>
      <category>Vue.js</category>
      <category>TypeScript</category>
      <category>Yjs</category>
      <category>Monorepo</category>
    </item>
    <item>
      <title>Quand mon IA prédit 47 ventes, je peux te dire EXACTEMENT pourquoi</title>
      <link>https://floriansola.fr/blog/salecast-treeshap-explicabilite-ml</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/salecast-treeshap-explicabilite-ml</guid>
      <description>L&apos;IA dit &apos;je prédis 47 ventes la semaine prochaine&apos;. Le client demande &apos;pourquoi 47 et pas 30 ?&apos;. Sans explainabilité, c&apos;est de la magie noire. Avec TreeShap codé en C# pur dans SaleCast, c&apos;est une réponse chiffrée à 5 lignes : &apos;parce que +12 pour la saison, +8 pour la promo, -3 pour la météo, +6 pour l&apos;historique, +24 base&apos;. Voici comment.</description>
      <pubDate>Tue, 15 Jul 2025 00:00:00 GMT</pubDate>
      <category>ML</category>
      <category>Explainability</category>
      <category>SHAP</category>
      <category>ML.NET</category>
      <category>Senior</category>
    </item>
    <item>
      <title>Feature engineering pour le forecasting — 90 % du résultat tient dans ces 19 fichiers</title>
      <link>https://floriansola.fr/blog/salecast-feature-engineering-19-extractors</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/salecast-feature-engineering-19-extractors</guid>
      <description>Tout le monde parle d&apos;algorithmes. Personne ne parle de feature engineering. C&apos;est pourtant 90 % de la qualité d&apos;un modèle ML en production. Voici les 19 extracteurs que SaleCast utilise pour transformer une série temporelle brute en signal exploitable — et pourquoi &apos;utiliser un meilleur algorithme&apos; ne sera jamais aussi rentable.</description>
      <pubDate>Mon, 30 Jun 2025 00:00:00 GMT</pubDate>
      <category>ML</category>
      <category>Feature engineering</category>
      <category>Forecasting</category>
      <category>Senior</category>
      <category>C#</category>
    </item>
    <item>
      <title>Le jour où mon modèle de prédiction s&apos;est mis à mentir — et comment je m&apos;en suis aperçu</title>
      <link>https://floriansola.fr/blog/salecast-drift-detection-modele-ment</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/salecast-drift-detection-modele-ment</guid>
      <description>Un modèle de forecasting ne crash pas quand il devient mauvais. Il continue à répondre. Les chiffres ont l&apos;air normaux. Et un mois plus tard, ton client a 40 % de stock en trop. Voici comment SaleCast détecte la dérive — en temps réel, sans humain dans la boucle, avec deux algorithmes des années 50 et 2000.</description>
      <pubDate>Thu, 12 Jun 2025 00:00:00 GMT</pubDate>
      <category>ML</category>
      <category>Observability</category>
      <category>Drift detection</category>
      <category>Production</category>
      <category>Senior</category>
    </item>
    <item>
      <title>De combien puis-je augmenter mon prix avant de tuer mes ventes ?</title>
      <link>https://floriansola.fr/blog/salecast-elasticite-prix-augmenter-sans-tuer-ventes</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/salecast-elasticite-prix-augmenter-sans-tuer-ventes</guid>
      <description>Mon client veut augmenter le prix de sa Box Cadeau de 30€ à 35€. Bonne idée ou pas ? La réponse n&apos;est pas dans sa tête — elle est dans son historique de ventes. Une régression linéaire de 4 lignes répond. Voici le code, le pourquoi, et la phrase à ne JAMAIS lui dire.</description>
      <pubDate>Wed, 28 May 2025 00:00:00 GMT</pubDate>
      <category>ML</category>
      <category>E-commerce</category>
      <category>Pricing</category>
      <category>Économétrie</category>
      <category>Senior</category>
    </item>
    <item>
      <title>Comment je prédis les ventes d&apos;un produit qui n&apos;a JAMAIS été vendu</title>
      <link>https://floriansola.fr/blog/salecast-cold-start-predire-sans-historique</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/salecast-cold-start-predire-sans-historique</guid>
      <description>Lundi matin. Un client ajoute 47 nouveaux produits à sa boutique. Pas une seule vente. Aucun historique. Et il veut savoir combien commander chez le fournisseur. Voici comment SaleCast répond — sans IA magique, juste de l&apos;agrégation intelligente sur les bons voisins.</description>
      <pubDate>Thu, 08 May 2025 00:00:00 GMT</pubDate>
      <category>ML</category>
      <category>Forecasting</category>
      <category>E-commerce</category>
      <category>Cold start</category>
      <category>Senior</category>
    </item>
    <item>
      <title>SaleCast — Faire concourir 9 algorithmes de forecasting (et 2 foundation models) en C# pur</title>
      <link>https://floriansola.fr/blog/salecast-algorithm-competition-foundation-models</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/salecast-algorithm-competition-foundation-models</guid>
      <description>Comment SaleCast choisit, par produit et chaque nuit, le meilleur algorithme parmi 9 modèles statistiques classiques (Naive, Croston, Holt-Winters, MSTL…), LightGBM via ML.NET, et 2 foundation models zero-shot (TiRex 35M params, Chronos d&apos;Amazon) — sans jamais quitter le runtime .NET.</description>
      <pubDate>Sun, 20 Apr 2025 00:00:00 GMT</pubDate>
      <category>ML.NET</category>
      <category>Forecasting</category>
      <category>.NET 10</category>
      <category>Time Series</category>
      <category>ONNX</category>
      <category>Foundation Models</category>
    </item>
    <item>
      <title>Le jour où j&apos;ai laissé 3 200 € de monnaie virtuelle s&apos;évaporer en prod</title>
      <link>https://floriansola.fr/blog/onerp-double-spend-3200-euros</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/onerp-double-spend-3200-euros</guid>
      <description>OneRP — ma plateforme multijoueur — tournait avec 247 joueurs connectés. Un matin, on découvre 3 200 € de monnaie créée par bug. Pas volée. Créée. Voici l&apos;incident, la nuit blanche, et la décision qui a changé ma façon de bâtir des produits seniors.</description>
      <pubDate>Wed, 02 Apr 2025 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <category>Production</category>
      <category>Lessons learned</category>
      <category>Concurrency</category>
      <category>Senior</category>
    </item>
    <item>
      <title>OneRP — Zéro endpoint REST et 9 couches de sécurité anti-décompilation</title>
      <link>https://floriansola.fr/blog/onerp-securite-temps-reel</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/onerp-securite-temps-reel</guid>
      <description>Comment j&apos;ai conçu une architecture SaaS gaming sur FiveM avec synchronisation temps réel via ActualLab Fusion, 9 couches de sécurité anti-triche, et 39 interfaces React in-game.</description>
      <pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <category>C#</category>
      <category>.NET</category>
      <category>ActualLab Fusion</category>
      <category>Sécurité</category>
      <category>FiveM</category>
    </item>
    <item>
      <title>REST est mort sur mes SaaS. Voici ce qui l&apos;a remplacé.</title>
      <link>https://floriansola.fr/blog/pourquoi-actuallab-fusion-vs-rest</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/pourquoi-actuallab-fusion-vs-rest</guid>
      <description>J&apos;ai supprimé tous les endpoints REST de 3 de mes SaaS. Le résultat : sub-milliseconde end-to-end, zéro ligne de code pour le cache client, zéro invalidation manuelle. Voici ActualLab Fusion, et pourquoi c&apos;est la techno qui a le plus transformé ma productivité ces 3 dernières années.</description>
      <pubDate>Wed, 26 Feb 2025 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <category>.NET</category>
      <category>ActualLab Fusion</category>
      <category>Real-time</category>
      <category>SaaS</category>
    </item>
    <item>
      <title>Comment j&apos;ai architecturé une plateforme SaaS avec ActualLab Fusion</title>
      <link>https://floriansola.fr/blog/fusion-architecture-saas</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/fusion-architecture-saas</guid>
      <description>Retour d&apos;expérience sur l&apos;utilisation d&apos;ActualLab Fusion pour éliminer REST et construire une architecture 100% réactive avec cache automatique et invalidation en cascade.</description>
      <pubDate>Sun, 09 Feb 2025 00:00:00 GMT</pubDate>
      <category>C#</category>
      <category>.NET</category>
      <category>ActualLab Fusion</category>
      <category>Architecture</category>
      <category>SaaS</category>
    </item>
    <item>
      <title>La dette technique n&apos;existe pas. Ce qui existe, c&apos;est la dette de décision.</title>
      <link>https://floriansola.fr/blog/dette-technique-vs-business</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/dette-technique-vs-business</guid>
      <description>Tu entends ça toutes les semaines : &apos;on a beaucoup de dette technique&apos;. Moi aussi je le disais. Jusqu&apos;au jour où un client m&apos;a demandé : &apos;c&apos;est combien, en euros, votre dette technique ?&apos;. Je n&apos;ai pas su répondre. Voici ce que j&apos;ai compris depuis.</description>
      <pubDate>Wed, 22 Jan 2025 00:00:00 GMT</pubDate>
      <category>Senior</category>
      <category>Architecture</category>
      <category>Métier</category>
      <category>Business</category>
    </item>
    <item>
      <title>Poisson Engine — Comment je rends 100 000 poissons en 5 niveaux de détail simultanés</title>
      <link>https://floriansola.fr/blog/poisson-engine-lod-5-niveaux</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/poisson-engine-lod-5-niveaux</guid>
      <description>Afficher 100 000 entités à 60 FPS dans un navigateur n&apos;est pas qu&apos;une question de WebGPU. C&apos;est aussi de savoir que 99 d&apos;entre elles n&apos;ont pas besoin d&apos;être rendues comme la centième. Le système LOD qui fait que Poisson tourne sur un MacBook M1 sans souffler.</description>
      <pubDate>Wed, 08 Jan 2025 00:00:00 GMT</pubDate>
      <category>WebGPU</category>
      <category>GPU</category>
      <category>Performance</category>
      <category>LOD</category>
      <category>Rendering</category>
    </item>
    <item>
      <title>Poisson Engine — Quand les algorithmes CPU deviennent les pires sur GPU</title>
      <link>https://floriansola.fr/blog/poisson-gpu-vs-cpu</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/poisson-gpu-vs-cpu</guid>
      <description>Comment j&apos;ai porté un algorithme de partitionnement spatial en compute shader WebGPU — et pourquoi tout ce qui est optimal sur CPU est catastrophique sur GPU.</description>
      <pubDate>Sun, 15 Dec 2024 00:00:00 GMT</pubDate>
      <category>WebGPU</category>
      <category>GPU</category>
      <category>Performance</category>
      <category>WGSL</category>
      <category>JavaScript</category>
    </item>
    <item>
      <title>100K entités à 60 FPS : WebGPU compute shaders en JavaScript</title>
      <link>https://floriansola.fr/blog/webgpu-100k-entites</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/webgpu-100k-entites</guid>
      <description>Comment j&apos;ai simulé 100 000 entités autonomes à 60 FPS dans un navigateur grâce aux compute shaders WebGPU, au spatial hashing GPU, et à une architecture Structure-of-Arrays zero-GC.</description>
      <pubDate>Thu, 28 Nov 2024 00:00:00 GMT</pubDate>
      <category>WebGPU</category>
      <category>JavaScript</category>
      <category>Performance</category>
      <category>Simulation</category>
      <category>GPU</category>
    </item>
    <item>
      <title>À 22 ans, j&apos;ai dirigé 15 personnes — sans diplôme, sans expérience, sans légitimité</title>
      <link>https://floriansola.fr/blog/vmulti-15-personnes-sans-diplome</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/vmulti-15-personnes-sans-diplome</guid>
      <description>V-Multi avait grossi sans crier gare. 30 000 comptes, 250 connexions concurrentes, et soudain je devais gérer 15 personnes — dont des gens plus âgés que moi, plus diplômés que moi, et techniquement meilleurs que moi. Voici ce que personne ne t&apos;apprend à l&apos;école sur diriger des gens.</description>
      <pubDate>Tue, 05 Nov 2024 00:00:00 GMT</pubDate>
      <category>Leadership</category>
      <category>Parcours</category>
      <category>Senior</category>
      <category>Gestion d&apos;équipe</category>
    </item>
    <item>
      <title>De SA-MP à Rockstar Games — L&apos;histoire des réseaux multijoueur GTA alternatifs</title>
      <link>https://floriansola.fr/blog/histoire-gta-networks</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/histoire-gta-networks</guid>
      <description>De SA-MP sur San Andreas à l&apos;acquisition de FiveM par Rockstar en 2023 — et comment mon framework V-Multi, né de la frustration, a fusionné avec GTA Network et influencé toute la scène.</description>
      <pubDate>Tue, 08 Oct 2024 00:00:00 GMT</pubDate>
      <category>Game Dev</category>
      <category>Histoire</category>
      <category>GTA</category>
      <category>C#</category>
      <category>Networking</category>
    </item>
    <item>
      <title>Du modding GTA V à l&apos;acquisition par Rockstar Games</title>
      <link>https://floriansola.fr/blog/rockstar-acquisition</link>
      <guid isPermaLink="true">https://floriansola.fr/blog/rockstar-acquisition</guid>
      <description>L&apos;histoire de V-Multi, un framework multijoueur GTA V créé à 16 ans, fusionné puis acquis par Rockstar Games — et ce que j&apos;en ai appris.</description>
      <pubDate>Thu, 12 Sep 2024 00:00:00 GMT</pubDate>
      <category>Parcours</category>
      <category>Game Dev</category>
      <category>C#</category>
      <category>Leadership</category>
    </item>
  </channel>
</rss>