À propos
15 ans et plus à construire et enseigner .NET. #
Je suis Mohamed Mustapha, ingénieur fullstack et formateur. Après quinze ans et plus dans le métier, ma stack aujourd’hui est claire : .NET (Core et suite) côté back, Angular côté front. SharePoint et .NET Framework Web Forms ont fait partie de mes débuts, mais j’ai tourné cette page depuis un bon moment, et je livre du .NET moderne et de l’Angular depuis.
Là où j’ai construit #
Au fil des années, j’ai travaillé chez Microsoft France, et livré pour des clients comme Natixis, Banques Populaires, Rexel et Thales. Banque, distribution d’énergie, défense, IT d’entreprise : chacun de ces environnements t’apprend quelque chose de différent sur ce que “la prod” veut vraiment dire, sur la façon dont les décisions d’architecture survivent au contact du réel, et sur comment garder un codebase en bonne santé pendant que les équipes changent. Aujourd’hui, je travaille à la Direction Générale du Trésor (Ministère de l’Économie) sur la modernisation d’applications administratives, mais la partie la plus importante de mon parcours, ce n’est aucun titre en particulier, c’est l’accumulation de contextes.
Pourquoi j’écris #
J’ai vu .NET évoluer à travers chaque virage majeur : ASP.NET MVC, les middlewares OWIN, .NET Core, le software craftsmanship, le N-Couches, la Clean Architecture, CQRS, le Vertical Slicing, les microservices, les monolithes modulaires, les containers, Kubernetes, l’observabilité, .NET Aspire. J’ai dû comprendre chaque changement, pas parce que je collectionne les buzzwords, mais parce qu’un formateur ne peut pas tricher : quand tu expliques un pattern à une salle de devs mid-level, il faut que tu saches pourquoi il existe, quel problème il règle vraiment, et quel compromis il introduit en échange.
Ce blog, c’est cette connaissance mise à l’écrit. La même carte mentale que j’utilise quand je forme une équipe pendant une semaine d’atelier, accessible à quiconque veut passer du mid-level au senior à son rythme.
J’ai passé des années à faire ce que la plupart des tutoriels évitent : migrer de l’authentification legacy vers Keycloak sans réécrire l’application, câbler du tracing distribué sur de vraies infrastructures, concevoir des monolithes modulaires que les équipes peuvent réellement maintenir, et expliquer à des directions non-techniques pourquoi les décisions d’architecture ont des conséquences concrètes.
A qui s’adresse ce blog #
Tu es développeur .NET avec deux à cinq ans d’expérience. Tu livres des features. Tu connais C#. Mais tu as l’impression qu’il manque quelque chose entre où tu en es et comment opèrent les développeurs seniors.
Cet écart est rarement une question de syntaxe. Il s’agit de comprendre pourquoi une décision d’architecture est prise, pas seulement comment l’implémenter. Il s’agit de saisir les compromis avant de se retrouver au milieu d’un incident de production.
C’est précisément ce que ce blog adresse.
Ce que tu trouveras ici #
Chaque série est construite autour d’un thème concret qui distingue le niveau mid du niveau senior : structure de code, observabilité, authentification, déploiement, gestion des erreurs, performance et tests. Chaque article suit la même structure : le problème réel d’abord, un découpage technique clair, et des notes franches sur ce qui fonctionne, ce qui ne fonctionne pas, et ce qu’il ne faut jamais faire.
Tout le contenu est publié en français et en anglais. La version française n’est pas une traduction. Elle est rédigée dans la même tonalité que j’utilise quand je forme des équipes en interne.
Disponible pour des formations #
Je suis disponible pour des sessions de formation et des ateliers à destination des équipes .NET et Angular. Les thèmes couverts incluent tout ce qui est publié sur ce blog : Clean Architecture, Docker et Kubernetes, intégration Keycloak, observabilité avec OpenTelemetry, stratégies de tests, et bien plus.
Si ton équipe veut aller vers du .NET moderne et Angular, et a besoin d’un accompagnement structuré et concret par quelqu’un qui a livré ces patterns pour de vrais clients, contacte-moi.