Des livres qui ont changé ma façon de concevoir des systèmes, d'apprendre ou de gérer ma carrière, avec l'essentiel à retenir et comment je le mets en pratique.
A Philosophy of Software Design
John Ousterhout
L'essentiel à retenir
La complexité d'un logiciel vient des dépendances et de l'obscurité, pas de sa taille. Un « module profond » (interface simple, implémentation riche) vaut mieux que dix modules superficiels qui exposent chaque détail. Sur-découper le code (« classitis ») déplace la complexité au lieu de la réduire.
Comment je le mets en pratique
Sur chaque port hexagonal (Hexray, archi3), appliquer le test du module profond : une interface d'une ou deux méthodes qui cache une vraie complexité d'implémentation, plutôt qu'une interface qui expose chaque détail technique sous-jacent.
Learning Domain-Driven Design
Vlad Khononov
L'essentiel à retenir
Tous les sous-domaines ne méritent pas le même effort de modélisation : distinguer core (l'avantage concurrentiel réel), supporting et generic évite d'appliquer DDD partout par réflexe. Un modèle riche n'est justifié que si la complexité métier réelle en vaut le coût.
Comment je le mets en pratique
Avant de démarrer un projet en DDD comme MissionMatch, classer d'abord chaque sous-domaine en core, supporting ou generic, et ne réserver la modélisation DDD complète (agrégats, langage ubiquitaire) qu'au sous-domaine core.
Fooled by Randomness
Nassim Nicholas Taleb
L'essentiel à retenir
On confond systématiquement chance et compétence après coup (biais du survivant, narrative fallacy). Ce qui compte n'est pas le résultat d'un seul essai, mais la distribution de résultats qu'un modèle ou une stratégie prédisait avant l'événement.
Comment je le mets en pratique
Sur le risque de contrepartie (VaR, SA-CCR), ne jamais juger un modèle de risque sur un seul scénario réalisé : évaluer sa qualité sur la distribution qu'il prédisait, avant de savoir ce qui s'est effectivement passé.
The Art of Learning
Josh Waitzkin
L'essentiel à retenir
Waitzkin, ancien champion d'échecs devenu théoricien de l'apprentissage, défend la méthode des « petits cercles » : maîtriser un principe restreint en profondeur avant de l'élargir, plutôt qu'accumuler des techniques en surface. Une défaite bien analysée enseigne plus qu'une victoire.
Comment je le mets en pratique
Sur « un nouvel écosystème par an » (Rust, Go), appliquer les petits cercles : maîtriser en profondeur un sous-ensemble minimal du langage avant d'élargir, plutôt que survoler l'ensemble de la documentation.
Company of One
Paul Jarvis
L'essentiel à retenir
La croissance n'est pas un objectif par défaut : rester volontairement petit peut être un choix stratégique rationnel, pas un manque d'ambition. Optimiser pour la résilience, l'autonomie et la qualité du travail livré plutôt que pour l'échelle.
Comment je le mets en pratique
Dans le choix des missions freelance, refuser explicitement la pression à « scaler » (embaucher, sous-traiter) quand rester seul sert mieux la qualité du travail livré, un principe qui rejoint directement ma note sur le passage freelance.
The Staff Engineer's Path
Tanya Reilly
L'essentiel à retenir
L'influence technique senior repose sur trois piliers : la vision technique partagée, l'exécution, et le « glue work », le travail de coordination invisible qui ne produit pas de ligne de code mais rend le reste possible. Grandir techniquement sans devenir manager est une trajectoire légitime.
Comment je le mets en pratique
En mission de tech lead freelance, investir explicitement dans le glue work (documentation, revues d'architecture, mentoring d'équipe) plutôt que uniquement le code, pour maximiser l'impact au-delà de sa propre contribution individuelle.