Apprivoiser les systèmes complexes : leçons d’Uber à Google

2025-05-15
Apprivoiser les systèmes complexes : leçons d’Uber à Google

Cet article détaille les expériences de l’auteur en ingénierie logicielle chez un concurrent d’Uber et chez Google, en différenciant les problèmes complexes des systèmes complexes. Les problèmes complexes suivent des solutions structurées et répétables, tandis que les systèmes complexes exigent de l’adaptabilité et des approches innovantes. L’article approfondit cinq caractéristiques des systèmes complexes : le comportement émergent, les conséquences différées, le piège de l’optimisation locale, l’hystérésis et la non-linéarité. Des stratégies pour une exploitation efficace dans des environnements complexes sont partagées, notamment la priorisation des décisions réversibles, la définition des bonnes métriques, l’adoption de l’innovation, l’exploitation des meilleures pratiques (flags de fonctionnalités, lancements canary, déploiements progressifs, tests shadow) et l’accent sur l’observabilité, les tests de simulation et l’apprentissage automatique. Enfin, l’auteur souligne l’importance de la collaboration d’équipe dans les systèmes complexes.

Lire plus
Développement

D'un article de blog à un best-seller : le parcours d’un programmeur avec un livre sur Go

2025-04-10
D'un article de blog à un best-seller : le parcours d’un programmeur avec un livre sur Go

Cet article détaille le parcours de l’auteur dans l’écriture de son livre, « 100 erreurs Go et comment les éviter ». En commençant par une simple preuve de concept (POC) en Go en Suisse, l’auteur relate les défis rencontrés, notamment les changements d’emploi, les interactions avec l’éditeur, la gestion des commentaires des éditeurs et des relecteurs, et la publication et le lancement finaux. L’histoire met en lumière la croissance personnelle de l’auteur, la valeur des commentaires des lecteurs et l’amélioration de ses compétences en écriture. Le succès du livre, y compris les traductions, est discuté, ainsi que les réflexions sur le sens et les récompenses de l’écriture, et une perspective détachée sur l’argent et la gloire.

Lire plus
Développement

Comprendre les foncteurs, les applicatifs et les monades en Haskell

2025-03-30
Comprendre les foncteurs, les applicatifs et les monades en Haskell

Cet article fournit une explication claire et accessible des foncteurs, des applicatifs et des monades en programmation fonctionnelle Haskell, utilisant des analogies pour simplifier la compréhension de concepts complexes. L'auteur utilise la métaphore des boîtes pour illustrer comment ces types gèrent l'application de fonctions dans différents scénarios, en fournissant des exemples de code pour démontrer leur utilisation et leurs différences. L'article se conclut par une réflexion sur l'importance d'apprendre et de partager des connaissances, suite à une interaction avec la communauté Haskell.

Lire plus
Développement Monades