Skip to content

📝 Blog

Bienvenue dans ce petit coin CALM.

Developer Advocate, c'est une bonne situation ça ?

Panda dans la fontaine de Jouvence

Alors que je roule dans un train en direction de Marseille, première étape du périple qui m'amènera à Riviera Dev, profitant pleinement d'une voiture pleine de familles et d'une colonie, une petite réflexion semble pointer le bout de son nez.

Ce genre de moment, ce genre de trajets, est l’un des marqueurs de la face visible de mon métier. Je suis Developer Advocate. Mais pourquoi ? Quelle idée ? C'est une bonne situation ça Developer Advocate ?

Tout a commencé il y a bien longtemps. Vraiment longtemps. A cette époque où il faut faire des choix d'orientation et que tu es tout jeune collégien et lycéen. Déjà, l'envie de partager et de communiquer autour de la connaissance était présente. À cette époque, pas d'internet, pas de conférences telles qu'on les connaît aujourd'hui. Mais il existait un métier qui faisait tout ça à mes yeux : enseignant.

Évidemment, de la même manière que tout me poussait vers l'informatique, cette passion qui semblait pleine d'avenir, ce choix potentiel ira rejoindre bien d'autres possibilités bien plus littéraires qui me plaisaient tout autant.

Ensuite, tout s'enchaine plus ou moins facilement, mais c'est une autre histoire. Donc, petit fast forward, nous voilà en plein COVID. J'ai alors occupé bien des postes, fait du développement, de l'architecture, de la gestion de CI/CD. En parallèle, j'ai un peu mis la main dans l'organisation de meetups avec les copains lyonnais et fondé MixTeen pour accompagner les enfants dans la découverte du monde numérique.

Mais finalement, rien qui me dirigerait vraiment vers l'univers des Developer Relations. J'avais publié quelques articles de blog, surtout du DIY avec tout ce que j'aime assembler avec du code et de l'électronique. Ma chaine YouTube suivait son bonhomme de chemin depuis 2009. Bien sur, tout ça était de l'énergie et du temps pris en dehors de mon travail.

Et c'est pendant le premier confinement que des éléments vont se déclencher et s'enchaîner. Pour m'occuper, je me retrouve entre autres à beaucoup échanger avec des gens que je connaissais de loin, souvent par le biais de rencontres pendant le meetup ou pendant MiXiT. Mais tout en essayant de se distraire, quelques parties mémorables de jeu en ligne, je me retrouve surtout à me dire que, moi aussi, je pourrais entrer dans ce monde des Developer Relations.

Bien entendu, comme la plupart des gens, je n'avais que la face visible en tête : ces gens que j'admirais étaient régulièrement devant une audience à présenter des talks. Sans le savoir, j'avais pourtant tous les autres aspects : de la veille technologique, du partage par blog et petites vidéos, des repositories de code au kilomètre...

C'est là que je reboucle sur mon trajet du jour pour Riviera DEV. En 2021, sortant tout juste de cette période difficile des confinements et autres mesures liées au COVID, Riviera DEV fait un pari fou pour essayer de relancer cette conférence : une journée autour du lac de l'Arena et sa base nautique. Les conférences se tiendront pour certaines au bord de l'eau, sans slides. Ce sera mon cas. C'est ainsi que je me retrouve, sous l'impulsion de Philippe Charrière et Louis Tournayre, à participer à « Rien de tel qu’un ApériKube les pieds dans l’eau avec des amis ». C'est ça, vous avez bien lu : debout sur un ponton, nous voilà à expliquer l'univers Kubernetes à une audience en pédalo et canoés. J'ai même fini par aller servir des verres en nageant vers elles et eux. 😜

Le virus était là, j'étais mordu de la plus belle des manières. J'enchaînai alors quelques interventions en meetup, en ligne et puis ce fut à nouveau un grand moment avec l'Apéro IoT en fin d'une journée de Volcamp. Comment joindre une forme de présentation vraiment spéciale à un contenu réel à partager ? Ce défi a définitivement enfoncé le clou. Comment faire plus fort ? Et bien en étant invité au Camping des Speakers, une conférence qui aura lieu en juin 2022 et réunira speakers et participant·es dans le cadre d'un camping. J'avais participé à l'organisation de MiXiT, mais là je me retrouve à donner un coup de main partout où il y en a besoin et surtout, je suis le chauffeur d'une des navettes qui ira récupérer, puis ramènera, les orateurices à la gare la plus proche. Ce fut l'occasion d'échanger encore plus précisément sur ce qu'iels vivaient et je commençais à me convaincre que toutes les facettes de ce métier me plaisaient vraiment. Et ça devait déjà bien se savoir, puisque c'est entre 2 navettes et une pause repas bien méritée que je me retrouvais... avec une proposition pour rejoindre OVHcloud.

Donc, à partir de septembre 2022, me voilà professionnellement dans ce milieu qui m'avait attiré peu à peu. Qu'est ce qui change alors ? Et bien, il est alors temps de découvrir toutes les autres facettes de ce métier.

Rapidement, un premier écueil apparaît : l'activité professionnelle est souvent adossée à des marqueurs, des indicateurs permettant de mesurer ce qui marche ou pas. Le souci c'est que l'activité de developer advocate est à la croisée de tellement de domaines, l'impact est très diffus et s'inscrit dans le temps. Qu'est ce qu'on peut mesurer dans ce cas ? Le nombre de vues d'un article de blog ? le nombre d'articles publiés ? Le nombre de personnes dans votre audience ? Tout cela est extrêmement difficile et cela vient rapidement s'ajouter au second souci que j'ai rencontré : devoir justifier l'existence de son équipe et de son activité.

Plutôt que de tenter un développement maladroit, je vous invite plutôt à lire un aricle de Salma Alam-Naylor. Aucun hasard, je suis tombé sur cet article grâce à un message Bluesky de Stéphane. Je sais que nous sommes nombreuses et nombreux à nous interroger, année après année, sur la pertinence de notre métier. Ce que Salma met bien en évidence, c'est cette complexité et cette dualité entre la prise de conscience des entreprises d'un besoin d'éducation autour des produits, de communication la plus directe et sans filtre, de gestion de communautés, et en face un besoin de contrôle assez fort et de remise en question trop régulière de notre profession.

Le seul point que je n'ai pas encore perçu, c'est le remplacement des formations par les IA. Je ne produit pas à ce jour de formation, et les contenus que je crée alimentent ensuite effectivement des outils agentiques. Cela signifie peut être que je vais aussi prendre ce mur dans les temps à venir. Mais pas pour le moment.

Du coup, que reste t'il sur la table au bout du compte ? Pour ma part, je continue de croire en l'action humaine qui améliore tellement les échanges autour de contenu, quelqu'il soit, article ou talk, vidéo ou documentation. Mais quelle forme professionnelle cela doit il prendre ? Est ce qu'un retour à des activités plus proches du développement d'un produit ou un service, en gardant des missions ponctuelles de blog ou de conférences, ne serait pas plus satisfaisant ? D'autres métiers pourraient ils me convenir plus précisément ? Est ce que je ne suis pas sur la bonne voie en insistant dans mon poste actuel ?

Je pense que j'aurai des débuts de réponses à la rentrée, et je communiquerai sur un projet dans lequel je vais me lancer. Se remettre en question, d'une nouvelle façon, c'est peut être ça qu'il me faut.

En attendant, profitant d'un contexte qui me convient bien chez Dataiku, je termine mon trajet pour Antibes. J'ai hâte de toutes et tous vous retrouver, papoter, échanger, se donner plein d'idées et d'énergie ! 💞

Qwen 3.5 : un Anthropic killer ?

Panda dans la fontaine de Jouvence

La dernière fois, je vous parlais de cure de jouvence. Mais qu'est ce que je faisais quand j'avais 20 ans en fait ? Et bien, outre mes débuts musicaux, si, si, je passais des heures à... compiler des distributions linux, des noyaux, des drivers.
Est ce que j'en avais besoin ? Définissez "besoin" ? Est ce que je passais de bons moments ? Hell yeah !

Je serais bien incapable de passer mon temps à ça maintenant, j'aime quand mes ordinateurs fonctionnent pour que je puisse ensuite en faire quelque chose.
Vraiment ? A qui est ce que tu mens Thierry (oui je me parle, on est plusieurs là dedans 🤪)

Qwen3.5

Mais quel rapport avec Qwen3.5 et surtout qu'est ce que c'est que ce titre d'article ? Pour le titre, c'est en référence à un message échangé aujourd'hui avec l'ami Gouz à qui j'ai dit que moi aussi je pouvais faire des titres sans queue ni tête juste pour provoquer 😉

Mais il y a bien un rapport avec Qwen3.5. Lorsque je me suis fait plaisir l'année dernière en achetant un Mac mini équipé d'un M4 Pro épaulé de 48 Go de mémoire, j'avais en tête de faire tourner localement des modèles d'IA.
Parmi les Stable Diffusion ou les Mistral, j'ai rapidement joué avec des Qwen2.5. Ils étaient disponibles dans des paramétrages raisonnables, des tailles qui ne faisaient pas exploser la machine et avec un peu de précautions, ils arrivaient à me rendre service.

Donc, quand j'ai vu que la série des modèles Qwen3.5 arrivaient, je savais que j'allais essayer d'en faire quelque chose. Par contre, je serais bien incapable de me rappeler pourquoi, tout à coup, j'ai voulu savoir s'il y avait une façon plus performante de les faire tourner. Probablement une discussion de trop avec Philippe ou Stéphane. Ayez des amis comme ça, je vous le conseille, ça donne la pêche et on a toujours une idée de plus à ajouter à ses soirées 🤣

Benchmarker

Bref, je me suis retrouvé à enchaîner les outils, les modèles et un outil de test était en train de voir le jour sur ma machine.
Au final, j'ai enchaîné des tests avec les combinaisons entre les outils pour servir les modèles : - Docker Model Runner - LMStudio - llama.cpp

et les modèles : - hf.co/unsloth/Qwen3.5-0.8B-GGUF:Q4_K_M - hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M - hf.co/unsloth/Qwen3.5-9B-GGUF:Q4_K_S

Pas de Ollama, je n'ai jamais réussi à faire tourner un Qwen3.5 avec. (si quelqu'un a une idée, je veux bien l'ajouter à mes tests).

Les modèles sont généralement des versions quantisées en essayant de trouver un modèle identique pour les 3 backend que j'utilise.

model-smallbenchmark

En parallèle des recherches et téléchargements nécessaires, j'ai assemblé peu à peu, de manière naïve, un outil pour tester 2 éléments : le nombre de token par secondes (tps) et la temps pour avoir le premier token (TTFT).
C'est en lisant quelques articles que je me suis dit que dans mon cas modeste, ces 2 mesures me donneraient déjà un point de départ de comparaison.

J'ai donc mis au point les étapes de ce que j'estimais être nécessaire pour avoir ce genre de mesures. Bien entendu, c'est là que l'emballement de ma cure de jouvence a donné son plein effet. D'une petite CLI, je me suis retrouvé avec un menu pour définir la configuration, une comparaison des différents backend, le tout dans une base sqlite... Bref, un projet que je me dois de vous partager.

Voici donc model-smallbenchmark le bancalement nommé 🎉

Alors, ça donne quoi ?

C'est vrai ça, ça donne quoi au final ? Parce que c'est bien gentil de montrer un outil et de dire avec quoi j'ai joué mais j'ai quand même quelques résultats à partager aussi.

Mon Mac mini me permet donc ce genre de résultats. Et le geek se retourne alors vers lui même et dit : "et alors ?"
Ben rien, il va falloir maintenant que j'utilise ces modèles pour savoir s'ils me sont utiles, si leurs comportements sont corrects et ainsi de suite.

Le passage des tests m'a quand même appris que le modèle 9B faisait tourner le ventilo, mais comme c'était une sollicitation en continu, je verrais si ça se confirme ou pas à l'usage concret.

Que faire maintenant ?

Comme je l'ai dit, il faut maintenant que je revienne au but premier qui était de commencer à utiliser ces modèles. J'ai aussi en tête de commencer à me frotter à un peu de fine tuning comme me l'a inspiré l'article de Philippe sur le fine-tuning de petits modèles.
Je pense aussi retoucher encore mon outil de tests. Si ça peut être utile à quelqu'un, même avec mon approche simple, j'en serais ravi. Et puis au point où j'en suis, pourquoi ne pas aller jusqu'à une belle TUI.

Dites moi ce que vous en pensez 💞

L'IA : ma cure de jouvence

Panda dans la fontaine de Jouvence

C'est bien beau de mettre à neuf un blog, mais souvent, une fois qu'on s'est bien amusé avec la tech, on oublie le but premier : publier et partager des trouvailles et des connaissances.

Je vais essayer de reprendre un meilleur rythme et ce pour plusieurs raisons. Tout d'abord, ça me fait du bien de structurer ma pensée sur des sujets et l'écriture a toujours été le bon médium pour moi. Ensuite, parce que j'ai tellement de choses que je voudrais partager.

Alors ne repoussons pas plus et en avant.

🤿 Le grand plongeon

Mais qu'est ce qui a bien pu se passer pour que je me retrouve coincé entre l'envie d'expérimenter et celle de partager ? C'est relativement simple : le monde de l'IA est en tel renouvellement perpétuel qu'il est difficile de choisir entre tester le nouvel outil, modèle, framework et se poser pour écrire sur un des sujets en cours.

J'ai eu une période d'hésitation sur le fait d'utiliser ou non l'IA dans mes activités de développeur. Un peu ce que décrit Stéphane Philippart dans ces récents articles : je suis tiraillé entre le fait de bosser dans l'IA et me demander ce que mon métier de développeur va devenir

Ce qui m'a enfin décidé ? J'ai l'immense chance d'avoir un live hebdomadaire sur Twitch qui a vu grandir une communauté autour des sujets que j'abordais. Alors que je tatonnais, en commençant à utiliser un peu Claude Code, en essayant Bmad... un membre de la communauté est tout à coup parti dans des expérimentations incroyables et sans se prendre la tête.

🤖 Le foisonnement de l'IA

BeBox, c'est son pseudo, s'est mis à lancer plein d'essais en partant de OpenClaw. Dans un premier temps, j'ai eu un peu peur pour lui parce que j'avais suivi l'arrivée de OpenClaw et vu combien c'était casse gueule, pas vraiment sécurisé... etc...

Mais face à son enthousiasme, je me suis dit qu'une expérimentation s'imposait. Et c'est là que tout c'est relié en enclenché. J'ai débord dédié un mini PC GMKtec G3. Mais une fois un OpenClaw mis en route, je me suis mis à suivre de plus près les nombreux essais de BeBox : de nouveaux modèles, de nouveaux outils, tout y passait.

⛲️ La fontaine de jouvence

J'ai donc commencé à jouer avec mon premier OpenClaw, lui donnant une personnalité, lançant des projets avec. Rapidement, je me suis heurté aux limites d'usage de mon abonnement Claude. J'ai alors commencé à explorer les modèles et providers que je voyais Bebox essayer.

En moins d'une semaine, j'en ai perdu une bonne partie de mon sommeil et installé des tas d'outils. En fait, je redevenais le geek de mes 20 ans, une vraie cure de jouvence 😜

Je dis 20 ans, mais tout ça a commencé bien avant. J'ai fait le lien avec ces nuits passées à installer une nouvelle distribution linux, à tester un nouveau langage, écrire mes premiers outils et sites webs. Tout était en mouvement dans mon monde technologique et je m'épanouissais comme jamais.

Du coup, merci BeBox pour m'avoir rendu mes 20 ans.

🚀 Vers l'infini et au delà

Bien entendu, mon corps, et un peu ma raison, m'ont vite fait comprendre que ce rythme n'était pas tenable 😂
Par contre, j'ai beau être un enthousiaste sur tous mes projets tech, je ressens à nouveau cette immense curiosité et cette envie d'avoir 200 projets à l'heure.

Avec ces "quelques" années de plus, j'ai fini par raisonner un petit peu tout ce que je découvrais. Je pense que je rate probablement des expériences, mais j'arrive peu à peu à cadrer les projets dans lesquels je me lance.

Aujourd'hui, j'ai remplacé Claude Code sur mes projets persos par un OpenClaw.
Je suis passé à une version conteneurisée avec Docker : ça m'apporte plus de souplesse et de puissance machine pour certaines tâches mais ça cadre les aspects de sécurisation.
Je ne l'utilise pas pour du pro, ça reste encore trop bouillonnant au détriment de la sécurité et la fiabilité parfois. La dernière faille découverte n'est pas des moindre. Je ne regrette donc pas d'avoir bien encadré mon OpenClaw, il est dans son conteneur, il est dans un sous réseau, possède ses propres comptes pour les outils externes...

J'ai également découvert la famille des modèles Kimi, ainsi que l'entreprise derrière, Moonshot.ai.
Je trouve la performance et la qualité largement comparable aux modèles Opus de Anthropic et je suis en train d'étudier la meilleure façon de le consommer. Je suis en mode API et le coût semble très inférieur à mon abonnement Claude. Je ferai un point quand j'aurai suffisamment de recul mais je suis actuellement ravi de ne plus me heurter aux limites de Claude en termes de consommation de tokens, le tout pour un coût très inférieur. Un article, au sujet de l'excellent nouveau Qwen3.5, a d'ailleurs un tableau de coûts que j'irai vérifier. On parle d'un rapport de 1 à 8 entre Claude et Kimi. A suivre...

🦀 Pourquoi OpenClaw ?

Alors, s'il y a des failles, si tout n'est pas toujours d'une stabilité parfaite, pourquoi continuer avec OpenClaw ?

Déjà, je parle dorénavant du couple OpenClaw / Kimi parce que c'est cette combinaison qui m'apporte l'usage qui me satisfait pour un cout très raisonnable. J'ai pour projet de mettre en comparaison un tandem Kimi Code / Kimi pour savoir si l'usage de ce modèle est vraiment différenciant.

Il n'en reste pas moins que, pour moi, OpenClaw est une sorte de laboratoire de ce qui arrive progressivement dans les Claude Code / Gemini CLI / Codex. L'intérêt de ces outils est d'aller au-delà du chatbot dédié au dev. Des outils, des sous agents, des SKILLS (encore merci Philippe Charrière pour ton methodical-dev extraordinaire) accompagnent les tâches de pure génération de code. Il se trouve que OpenClaw essaie énormément de choses, quitte à être bancal ou moins fiable, mais ce bouillonnement est ce qui me passionne.

🐼 Pour conclure

En attendant, j'ai un workflow qui commence à me satisfaire avec Shuri (oui, mon OpenClaw principal est une scientifique wakandaise 😎) et ça pourrait faire l'objet d'un prochain article, voire d'un petit live sur Twitch 😜

J'espère aussi que ce boost va continuer encore longtemps. Mais à voir ce que mes compères Stéphane Philippart et Philippe Charrière mijotent, je sais qu'on a pas fini de tenter des choses de plus en plus folles 💞

Une étape de plus

Welcome friends

Après bien trop de tergiversations, il est temps de lancer un site qui me permettra de rassembler plusieurs de mes activités, projets et idées.
J'aimerais un endroit qui accueille mes quelques posts en mode blog.

Ensuite, j'ai envie d'ajouter des éléments pour la communauté qui existe autour de mon stream sur Twitch : CALM.
Il y aura probablement une section dédiée aux tutoriels, et pas seulement les miens.

J'ai également commencé ce qui devrait permettre de lister et rechercher dans l'historique des émissions CALM (déjà plus de 200, merci à vous 💞)

Le premier point, qui est l'objet de cette première étape, est de supprimer le blog que j'hébergeais sur une droplet Ghost chez DigitalOcean.
Ce n'est pas un énorme chambardement, mais je ne publie pas suffisamment pour que cela nécessite de générer des frais que je peux éviter.
Et puisque j'ai envie que ça avance (même si ça me fait plaisir de tester 10 stacks techniques 😇), je suis parti que quelque chose qui m'a déjà permis de remplacer mon usage de noti.st J'ai en effet lancé un petit site listant les conférences que je donne, afin d'avoir un point central pour celles et ceux qui souhaitent les retrouver.
Ça permet d'avoir les slides et les éventuels liens de replay, je trouve ça pratique.

Du coup, comme j'avais utilisé MkDocs et plus précisément Material for MkDocs, je me suis lancé avec ça aussi.
Et on verra bien si j'ai besoin de plus, s'il me faut des éléments dynamiques à tout prix.
Si je ne me lance pas, rien ne bougera.

Du coup, n'hésitez pas à me contacter pour tout ce que vous pouvez trouver de cassé ici, ou qui manque.
Commencez par me dire que je n'ai pas de système de commentaire, c'est dans ma liste 😜
Il y a ensuite de petites choses comme l'absence d'icône dans la navigation à gauche pour l'entrée du blog. J'utilise le plugin intégré mais je ne sais pas s'il me permettra de modifier ça.
Il y a aussi la TOC à droite du blog qui ne comporte qu'une série de 5 articles affichés sans proposer de voir le reste.

J'ai plein d'idées : mais pour une fois, j'essaie de faire plutôt que de penser trop longtemps à vide 😎

Ah... si tu lis ça le jour de sa sortie, c'est que tu as récupéré le lien GitLab Pages sur le Discord.
Et ça veut dire qu'on se connaît un peu déjà et que je peux te remercier pour ta présence dans cette chouette communauté CALM 💞

Alors, soyons forts, et en avant !!

PS: oui, je vais aussi mettre un vrai nom de domaine, j'en ai déjà 2 mais je voulais quelque chose avec calm dedans et c'est soit déjà pris, soit très cher 🐼

Aidez le Maroc 🇲🇫💖🇲🇦

Comme vous l'avez malheureusement sûrement suivi, un séisme de magnitude 7 a frappé le Maroc.
L'épicentre était dans le Haut Atlas, au niveau de la ville de Amizmiz et en ce lundi 11 septembre on dénombre plus de 2000 morts.

Au delà de la peine que je peux éprouver pour ce pays et ce peuple qui a une place particulière dans mon coeur, j'aimerai que ce rapide article serve d'appel à l'aide.

Cette aide peut prendre bien des formes, l'urgence et la rapidité passe bien sûr par un don a des associations qui agissent sur place.

Je peux actuellement citer :
- la Fondation de France
- le Secours Populaire
- directement auprès d'une banque sous le contrôle des autorités marocaines.

Mais n'hésitez pas à m'indiquer d'autres organismes que j'ajouterai à cette liste au fur et à mesure.

Ensuite, parce que donner de votre temps est aussi important, il est possible d'aider le projet OpenStreetMap.
Une équipe est dédiée aux actions humanitaires et elle a décidé d'activer un projet d'urgence.

Si vous avez vent d'autres initiatives, je me ferai un devoir de les relayer ici bien évidemment.

N'oubliez pas non plus de communiquer autour de vous et d'apporter toutes les preuves d'affections à nos ami·es marocain·es.

Comme je le dis dans le titre, aidez le Maroc, mais bien plus aimez les marocain·es 🇲🇫💖🇲🇦