Comment un ex-salarié de Google est devenu rémunéré en tant que mainteneur open source à temps plein.
Il espère populariser son modèle de travail, estimant que cela aidera d'autres professionnels

Filippo Valsorda, un ancien développeur de Google, a tenté l'aventure de l'open source qui lui a plutôt réussi. Il a décidé de partager des détails sur son parcours en tant que mainteneur open source dans l'optique de populariser ce modèle et éventuellement aider d'autres responsables à l'adopter, « bien que je ne sois pas tout à fait prêt à recommander à quiconque de tout laisser tomber pour essayer cela pour l'instant ». Le terme « mainteneur » désigne les contributeurs qui dirigent un projet open source. Leur travail quotidien peut varier, mais peut consister à examiner les Pull Request et d’autres contributions, à publier de nouvelles versions du logiciel, à trier et à traiter les correctifs de sécurité, ainsi qu’à gérer et modérer la communauté.

Tout a commencé par un constat que Filippo Valsorda a fait : malgré le fait que l'entreprise dans laquelle il travaillait est critique pour le fonctionnement d'Internet (et, par extension, pour l'économie), le rôle de mainteneur de l'open source n'avait pas encore trouvé de manifestation durable. Pratiquement tous les mainteneurs sont soit des bénévoles, soit des employés à temps plein de grandes entreprises. En moyenne, les fondations ne paient pas les mainteneurs. Quelques projets parviennent à collecter des fonds en vendant des contrats de support ou en obtenant des parrainages de fonctionnalités.

Selon Filippo, tous ces modèles ne parviennent pas à aligner les incitations sur celles du projet. Le volontariat n'est évidemment pas durable, car les conditions de vie des gens changent. L'emploi à temps plein dans les entreprises évolue mal dans le temps et surtout lorsque le projet réussit. Les contrats d'assistance prennent beaucoup de temps par rapport aux travaux de maintenance proprement dits. Les parrainages de fonctionnalités récompensent l'augmentation de la charge de maintenance future sans la financer.

Même s'il n'indique pas les sources sur lesquelles il s'appuie pour étayer son argumentation, certaines études semblent aller dans ce sens. Par exemple, des recherches dans ce domaine, dont l’enquête 2020 sur les contributeurs de logiciels libres du Laboratory for Innovation Science de Harvard (LISH) et l’enquête 2022 sur les mainteneurs de logiciels libres de Tidelift, ainsi que l'enquête 2023 postée sur le blog de la Foundation Linux se sont concentrées sur les besoins des mainteneurs open source.

Les enquêtes ont révélé que l’écrasante majorité (près de trois quarts) des répondants ont un emploi à temps plein. Cependant, elles révèlent une disparité : alors qu’un peu plus de la moitié des répondants sont payés pour leurs contributions au logiciel libre (que ce soit par leur employeur ou par d’autres sources de financement), l’autre moitié n’est pas payée pour ses contributions au logiciel libre.

L’aspect financier n’est pas la principale des motivations des mainteneurs. Les enquêtes montrent que les personnes interrogées placent systématiquement les motivations non monétaires, telles que l’impact sur le monde, le plaisir d’apprendre ou le travail créatif, au-dessus de la rémunération. Pourtant, l’épuisement professionnel est aussi un vrai problème, surtout si l’on considère le temps et les efforts nécessaires pour maintenir un projet largement utilisé.

Nom : fillipo.png
Affichages : 12390
Taille : 32,9 Ko

Les clients et la rémunération de Filippo Valsorda

En mai dernier, j'ai quitté mon travail dans l'équipe Go de Google pour expérimenter des voies plus durables pour les mainteneurs open source. J'ai conservé mes différentes casquettes de mainteneur (Go cryptography, transparence tooling, age, mkcert, yubikey-agent…), itéré sur le modèle depuis septembre, et je suis heureux d'annoncer que je suis maintenant un mainteneur open-source indépendant à temps plein. Cela signifie que je consacre la majeure partie de mon temps à la maintenance et que j'offre des acomptes aux entreprises qui bénéficient de mon travail et de l'accès à ma planification et à mon expertise. J'ai maintenant six clients incroyables et je gagne une somme d'argent équivalente à mon package de rémunération totale de Google, ce qui prouve la thèse selon laquelle il est possible d'être un responsable professionnel en gagnant des taux compétitifs avec le marché adjacent pour les ingénieurs logiciels seniors.

Pour cette première cohorte de clients, je me suis concentré sur des entreprises qui comprennent déjà l'open source, qui travaillent dans des domaines adjacents au mien et que je pouvais atteindre via mon réseau. Mon premier client, qui a cru au projet avant même d'avoir un prospectus ou des niveaux de contrat, est Glasklar Teknik AB, une nouvelle société sœur de Mullvad VPN. Glasklar finance le développement de Sigsum, un journal de transparence public open source conçu pour produire des preuves vérifiables hors ligne, issu de la recherche sur la transparence du système par Mullvad. J'ai travaillé sur Sigsum et sur un framework et un écosystème d'outils de transparence open source compatibles et alignés, et la collaboration a été excellente. Dans l'ordre où ils ont rejoint, sont venus ensuite : Protocol Labs, qui maintient IPFS et Filecoin, et dont l'équipe de R&D produit d'excellentes recherches sur les zero knowledge proofs [ndlr. une preuve à divulgation nulle de connaissance (Zero-knowledge proof) est une brique de base utilisée en cryptologie dans le cadre de l'authentification et de l'identification] et la cryptographie ; Latacora, une équipe de sécurité retenue pour les startups, qui met entre autres des ressources comme moi à la disposition de leurs clients ; la Fondation Interchain, elle-même responsable du développement du SDK open-source Cosmos, un grand projet critique de cryptographie Go+ ; Smallstep, qui fournit des outils PKI et Zero Trust faciles à utiliser (en grande partie écrits en Go !) pour gérer les identités humaines et machine ; et Tailscale, un VPN maillé qui ressemble à de la magie, avec une passion pour JSON, SQLite et Go.

Nom : equipe.png
Affichages : 2953
Taille : 74,4 Ko

Comment travaille Filippo Valsorda

Ce que je fais est différent [ndlr. des différents modèles dans l'open source], et j'espère que ce sera plus durable, ainsi que reproductible pour les autres. Je suis un mainteneur open-source indépendant professionnel à plein temps. Je suis financé par des accords de mandat avec un certain nombre de clients et je me concentre principalement sur les travaux de maintenance.

Je ne vends pas d'heures d'assistance ni de livrables de projet difficiles. Au lieu de cela, mes clients obtiennent de la valeur de trois manières :
  • ils atténuent le risque commercial d'un projet dont ils dépendent qui ne sont pas maintenus, avec ses implications en matière de sécurité et de vitesse de développement ;
  • nous établissons un canal d'accès réciproque, garantissant de meilleurs résultats pour eux et pour le projet ; et
  • aux niveaux contractuels les plus élevés, je suis disponible pour des conseils sur tous les sujets dans lesquels je suis expert, au-delà du strict cadre du projet open source.

La proposition d'atténuation des risques commerciaux est ce que chaque parrainage offre, donc ce n'est pas du tout innovant, mais c'est important pour les entreprises tournées vers l'avenir.

J'ai déjà écrit sur la valeur de l'accès réciproque, mais cela se résume à ceci : j'entre, je rencontre les ingénieurs et j'apprends quelles parties de mes projets ils utilisent et comment ; ensuite, je garde ces cas d'utilisation à l'esprit dans ma propre planification et je les contacte et les implique pour obtenir des commentaires lorsqu'il y a des changements pertinents sur la feuille de route. Cela améliore les résultats pour tout le monde : je veux que mes projets fonctionnent bien pour les utilisateurs (qu'ils me paient ou non) et personne ne veut découvrir que quelque chose ne va pas après la publication. Les entreprises pourraient obtenir cela « gratuitement » en surveillant elles-mêmes de près le suivi des problèmes et en étant actives dans les discussions de développement, mais dédier un ingénieur à cette tâche serait probablement plus cher que mon tarif !

Le service de conseiller expert au niveau supérieur du contrat est une évolution récente du modèle, basée sur des conversations avec Kaylyn Gibilterra, Kelsey Hightower et d'autres. Je suis à la disposition de ces clients pour les conseiller sur tous les sujets sur lesquels je suis devenu expert au fil de mes années de maintenance open-source : cryptographie, protocoles, leurs implémentations, Go, sécurité de la supply chain logicielle, open source, logs de transparence, PKIs… La principale préoccupation que j'avais en attachant cela à l'offre était sa reproductibilité : je sais que je peux moi-même gagner ma vie en tant que conseiller, mais est-ce quelque chose que les mainteneurs de l'open source peuvent faire de manière reproductible pour maintenir financièrement l'accent principal sur le travail du projet ? Mon hypothèse est que c'est un excellent match pour les mainteneurs en général : les mainteneurs sont des experts très lisibles et reconnaissables dans leur domaine, car ils maintiennent des logiciels open source. Si une entreprise utilise déjà mon logiciel de cryptographie, c'est probablement la raison pour laquelle elle pense que je suis un expert en cryptographie et qu'elle pourrait faire appel à un conseiller en cryptographie. Tout cela est bien corrélé et s'appliquerait à tout mainteneur d'un logiciel open source critique : les responsables de Kubernetes sont des experts en orchestration et en plate-forme, les responsables de ffmpeg sont des experts A/V, les responsables de serveur Web sont des experts HTTP. Cela aligne aussi bien les incitations sur celles de mes projets : je suis un expert parce que je suis un mainteneur, donc c'est à la fois dans l'intérêt de mes clients et dans mon propre intérêt que je continue à faire des travaux de maintenance.

J'ai utilisé un mot clef ci-dessus : critique. Le modèle que j'expérimente est destiné aux mainteneurs de projets open source critiques. Dans la métaphore de la bande dessinée XKCD, vous avez probablement tous vu qu'elle était destinée à fonctionner pour les projets en bas de la pile, peut-être pas pour ceux tout en haut. Cependant, ce qui est essentiel dépend du point de vue du client, et de nombreux projets sont essentiels pour au moins certaines entreprises. Voici comment je le formule : si l'effort requis pour remplacer ou forker une dépendance si elle n'était pas maintenue est mesuré en mois-ingénieur, il s'agit d'une dépendance critique et conserver ses mainteneurs est probablement une bonne décision commerciale.

Concrètement, je propose exclusivement des mandats permanents, sans facturation horaire ni fonctionnalités spécifiques comme livrables. Il existe trois niveaux de contrat : argent, or et platine. L'or comprend des réunions d'introduction et des réunions trimestrielles en face à face. Platinum inclut les services de conseil au-delà du strict périmètre de mes projets open-source. Tous les niveaux sont dans la fourchette à cinq chiffres (USD, annuel). C'est nettement moins cher qu'un employé, mais suffisamment significatif pour contribuer à un total compétitif par rapport au marché américain des ingénieurs logiciels seniors. Chaque engagement est très tactile et ressemble généralement à une relation avec un fournisseur, et non à un don de sponsors GitHub : j'envoie un prospectus, je travaille avec un contact sur une période de plusieurs semaines pour présenter aux décideurs et conclure l'affaire, nous signons un accord, et je fournis des factures mensuelles à payer par virement. Comme le dirait Patrick McKenzie, cela ressemble à des ventes d'entreprise. J'ai embauché une formidable assistante à temps partiel qui m'aide à rester au courant de tout.

Ce n'est que le début, et je suis ravi d'explorer comment le modèle se développe. Les incitations sont bien alignées sur le succès des projets open source, car plus les projets sont populaires, plus les entreprises seront intéressées par les acomptes, fournissant plus de ressources pour répondre à la charge de maintenance croissante. La charge de travail évolue également de manière sous-linéaire avec le nombre de clients : pour chaque relation client supplémentaire, je dois suivre un nouvel ensemble de domaines d'intérêt et de préoccupations pertinents, mais la gestion de plusieurs parties prenantes est déjà une compétence essentielle des mainteneurs open source, et la tâche principale reste le travail d'entretien quotidien qui est partagé entre tous les clients. Les clients Platinum ont également un coût marginal en termes de conseil dédié, mais encore une fois, l'essentiel du travail consiste à rester un expert, et cela ne nécessite pas d'effort supplémentaire pour chaque nouveau client. Bien sûr, une grande partie de cela est nouveau et il n'y a pas beaucoup de précédents à tirer, donc je suis conscient que je suis probablement erroné dans certaines de mes estimations et je procède avec prudence. Après avoir passé les quatre derniers mois à recruter des clients, je ralentis maintenant ces efforts pour en savoir plus sur la capacité, la bande passante et le coût marginal des clients supplémentaires. Je suis toujours en train de parler à quelques prospects avec qui j'aimerais travailler et je leur réserve de la place dans la planification des capacités.

À long terme, je souhaite que ce modèle grandisse au-delà de moi et devienne un parcours professionnel reconnu. Cette expérience est à la fois plus facile et plus difficile pour moi qu'elle ne le sera pour mes successeurs : plus facile, car j'ai un réseau personnel étendu et les moyens financiers pour prendre des risques en toute sécurité ; plus difficile parce que c'est un territoire inexploré pour moi et les clients et parce qu'il y a un manque d'outils juridiques, administratifs et marketing. J'espère qu'au fur et à mesure que les choses avanceront, les barrières tomberont, rendant le modèle accessible à de plus en plus de gens.

Le « oui, mais » des internautes

Quelques réactions suite à sa publication.

Citation Envoyé par Internaute 1
Son expérience est totalement unique. S'il vous plaît, ne laissez pas cela vous faire croire que vous pouvez quitter votre emploi et gagner le même salaire que dans votre emploi FANG bien rémunéré. Il est une valeur aberrante dans l'industrie. Je n'étais personne quand j'ai quitté mon emploi pour travailler à plein temps sur l'open source. Il a fallu un an avant que je trouve une entreprise sponsor et c'était uniquement parce que mon ami travaillait là-bas et qu'il comprenait la valeur de ce sur quoi je travaillais. Patreon était risible en termes de retour. Soyez simplement pleinement conscient lorsque vous lisez ceci. Avec la marque existante et la suite, vous pouvez faire ce qu'il a fait, sans cela, vous aurez énormément de mal comme moi.
Citation Envoyé par Internaute 2
J'ai quitté mon emploi il y a quelques années et j'ai obtenu plusieurs petits contrats en quelques semaines en utilisant mon réseau. Mon employeur de l'époque a généreusement accepté d'être mon premier client pour faciliter la transition.

Aujourd'hui, je gère 8 clients actifs et des contrats d'audit réguliers d'une à deux semaines, tout en travaillant rarement plus de 40 heures par semaine. Pratiquement tout le code que j'écris est open source, ou sur le point de l'être. De plus, je ne travaille qu'avec des clients qui sont d'accord avec cela.

Je gagne le triple de mon salaire précédent et j'intègre en fait de nouveaux membres de l'équipe en tant que "niveau 1" pour m'aider à répondre à la demande sans me surmener.

Je suis un ingénieur en sécurité full stack avec 20 ans d'expérience, et la plupart des entreprises ne peuvent pas avoir accès à des ingénieurs en sécurité seniors sans payer de l'argent GAFAM dans la gamme de 600 000 $ + total de rémunération, ce qu'elles ne peuvent tout simplement pas se permettre.

Au lieu de cela, je propose à la plupart des entreprises d'avoir un contrat avec mon équipe et moi, disons pour 10 heures par mois et nous pouvons être là quand elles ont besoin d'aide pour l'architecture de sécurité, les révisions de code importantes, les évaluations des risques, la conduite d'entretiens ou simplement pour aider à débloquer les gens en général.

Ce modèle est une victoire pour les entreprises qui ne peuvent pas encore se permettre d'embaucher des ingénieurs de sécurité expérimentés à temps plein en interne, et c'est une victoire pour moi qui peut contrôler mon temps et ma vie avec un revenu plus élevé, et n'avoir qu'à me concentrer sur le plus problèmes intéressants de nombreuses entreprises différentes avec une exposition minimale à la politique interne.

Je ne peux pas exprimer à quel point je suis plus heureux. Le meilleur choix de carrière que j'ai jamais fait.
Citation Envoyé par Internaute 3
Je dirige une entreprise SaaS autofinancée. Je paie régulièrement (parrainer) les développeurs de bibliothèques dont dépend mon logiciel. Ce ne sont pas de grandes quantités, mais elles augmentent lentement avec le temps. De plus, certaines bibliothèques (Semantic-UI par exemple) sont essentielles pour moi, mais n'ont pas été maintenues depuis un certain temps, et je serais heureux de payer beaucoup plus, régulièrement, pour les faire maintenir.

Je suis sûr que je ne suis pas le seul. L'argent est là. Le problème est de rassembler la masse critique : à la fois pour un seul développeur, pour gagner sa vie, et pour l'ensemble du mouvement, pour que l'on passe d'une culture du « GRATUIT GRATUIT TOUT EST GRATUIT » à une culture plus responsable et durable du « c'est gratuit, mais si vous en dépendez, vous feriez mieux de verser de l'argent tous les mois ».
Sources : Filippo Valsorda, Mainteneurs open source : ce dont ils ont besoin et comment les soutenir (Linux Foundation)

Et vous ?

Avez-vous déjà fait une contribution open source ?
Selon vous, de quoi ont besoin les mainteneurs open source et comment les soutenir ?
Que pensez-vous du modèle de travail de Filippo Valsorda ?
Gagnerait-il a être popularisé ? Dans quelle mesure ?
Recommanderiez-vous à un professionnel de l'informatique de sauter le pas pour se lancer dans l'open source ? À temps partiel ou à temps plein ? S'il fallait se lancer à temps plein, à quel moment recommanderiez-vous cette alternative (carnet d'adresse bien rempli, travail reconnu par les pairs / les clients, outils proposés en open source utilisés par d'autres entreprises qui ont besoin d'assistance, etc.) ?
Une préférence pour des plates-formes particulières pour contribuer ?