---
title: "OutOfRange Consulting — Geoffrey Marc, architecte .NET indépendant"
description: "Tech lead et architecte .NET indépendant : plateformes critiques, migrations sans interruption, systèmes distribués et outillage IA des équipes."
url: "https://www.outofrange-consulting.com/"
lang: fr
---

Geoffrey Marc · Tech lead & architecte .NET · Indépendant depuis 2019

# Faire évoluer une plateforme critique sans arrêter la production.

J'interviens sur des systèmes .NET distribués qui tournent déjà et qu'on ne peut pas mettre à l'arrêt : découpage des services, cohérence des données, migrations réversibles, contrats d'API qui tiennent dans le temps. Et, depuis deux ans, l'outillage qui fait entrer l'IA dans le travail quotidien des équipes de développement.

[Décrivez-moi votre contexte →](https://www.outofrange-consulting.com/contact) [Dossier de compétences](https://www.outofrange-consulting.com/dossier)

## Situation

**Disponible sous un mois** pour une mission en régie. Actuellement chez **Edenred**, à temps plein, sur une plateforme de services B2B déployée dans plusieurs pays européens — et ouvert en parallèle à **un projet court** pour une PME.

## Interventions

*Par ordre de fréquence réelle, pas par symétrie.*

### Architecture et développement .NET

C'est le cœur du métier et l'essentiel de mes missions. Concevoir et écrire des services back-end : découpage en domaines, communication asynchrone, cohérence des données entre services, contrats d'API et stratégie de versioning. J'écris le code autant que je dessine les schémas — les deux se corrigent mutuellement, et un schéma que personne n'a essayé de coder ment souvent.

Ce que j'apporte n'est pas une préférence d'architecture, c'est une façon de choisir : poser deux ou trois options, dire ce que chacune coûte à écrire et à faire vivre, et laisser la décision à l'équipe qui la maintiendra.

DDDCQRSEvent-driven Multi-tenantOpenAPI-firstPostgreSQL

### Migrations à risque maîtrisé

Changer de socle pendant que la production tourne, par étapes réversibles : l'ancien chemin reste en place jusqu'à preuve du nouveau, la bascule se fait client par client, et le retour arrière est possible à chaque palier. Le déroulé d'un cas réel est dans les [réalisations](https://www.outofrange-consulting.com/parcours#realisations).

Double écritureFeature flags Bascule par tenantRetour arrière

### IA appliquée à l'ingénierie

Faire entrer les modèles dans le cycle de développement demande plus qu'un abonnement : du contexte versionné dans le dépôt, de l'outillage exposé aux assistants, une passerelle mesurée et une revue humaine sur le chemin critique. Le détail est [plus bas sur cette page](#ia).

MCPAgentsPasserelle LLMGarde-fous

### Conduite technique d'équipe

Poser un cadre que l'équipe s'approprie : décisions écrites et discutables, conventions outillées plutôt que rappelées à l'oral, revues qui expliquent au lieu de sanctionner. Je préfère laisser une équipe autonome qu'une équipe dépendante — c'est aussi la seule façon qu'une mission serve encore à quelque chose un an après mon départ.

ADRRevue de codeAnalyseursMentorat

## Formats

### Mission en régie, sur la durée

Format principal

C'est ainsi que je travaille depuis 2019, et ce que je cherche : m'intégrer à une équipe et rester assez longtemps pour vivre avec mes propres décisions d'architecture. Mes deux dernières missions durent respectivement plus de deux ans et un an et huit mois.

Temps plein, en télétravail depuis la région lyonnaise, avec des déplacements ponctuels pour les moments qui le méritent : démarrage, cadrage d'architecture, ateliers d'équipe.

### Projet court pour une PME

En parallèle, ponctuellement

Une PME qui a besoin d'un service back-end bien construit, d'une reprise d'application ou d'un avis d'architecte sur un choix structurant : je peux prendre ce type de projet en parallèle d'une mission longue, sur un périmètre défini à l'avance.

Le périmètre et le rythme se décident au premier échange — je préfère refuser que promettre une disponibilité que je n'aurais pas.

## Démarche

*Ce que valent les premières semaines.*

La valeur d'un intervenant extérieur se joue dans son premier mois : sa capacité à absorber un système qu'il n'a pas écrit, à en saisir les contraintes non dites, et à parler juste avec ceux qui le maintiennent.

Je commence par lire — le code, l'historique Git, les tickets, les comptes rendus d'incident. L'historique dit souvent ce que la documentation tait : quelles zones ont été reprises trois fois, quel module personne n'ose toucher, quelle décision a été prise un vendredi soir et jamais rediscutée. À la fin de cette phase, je sais où sont les endroits fragiles, et je peux le dire à l'équipe sans la vexer.

Ensuite seulement viennent les propositions. Un besoin métier devient un petit nombre d'options techniques, chacune avec son coût et son risque ; je recommande, et la décision reste collective. Ce qui est décidé est écrit — pas pour la cérémonie, mais pour que l'équipe suivante comprenne le pourquoi et pas seulement le comment.

La livraison se fait par étapes courtes, testées, réversibles. Aucune mise en production ne devrait demander de retenir son souffle. Et la montée en compétence se fait au fil de l'eau, en binôme et en revue, plutôt qu'en session de formation à la fin — de sorte que la passation n'ait rien à révéler.

IA appliquée

## Un outil d'ingénierie, traité comme tel.

L'IA générative change la façon de produire du logiciel, à condition de la traiter comme n'importe quel composant de production : avec du pilotage, des quotas, de la traçabilité et des garde-fous. C'est le travail que je mène en mission, sur une plateforme réelle, installé progressivement.

- **Un dépôt lisible par un agent.** Conventions, contexte et procédures décrits dans le dépôt, pour que l'assistant produise du code conforme dès le premier jet.
- **L'outillage interne exposé aux modèles.** Des serveurs MCP donnant accès au dépôt, aux tickets et aux environnements : l'assistant travaille sur vos données, pas sur des suppositions.
- **Une passerelle maîtrisée.** Point d'entrée unique, clés par usage, suivi de la consommation, bascule entre fournisseurs.
- **La revue humaine sur le chemin critique.** Toujours, et sans exception négociable.

Wolverine.Http/ApiVersioning/ApiVersionResolver.cs [PR #2633 ↗](https://github.com/JasperFx/wolverine/pull/2633)

```
+internal static class ApiVersionResolver+{+    public static ApiVersionResolution? Resolve(MethodInfo method)+    {+        var methodAttrs = method.GetCustomAttributes<ApiVersionAttribute>(inherit: false).ToList();+        List<ApiVersionAttribute> winningAttrs;++        if (methodAttrs.Count > 0)+        {+            winningAttrs = methodAttrs;+        }+        else+        {+            var classAttrs = method.DeclaringType?.GetCustomAttributes<ApiVersionAttribute>(inherit: false).ToList();+            if (classAttrs is null || classAttrs.Count == 0)+            {+                return null;+            }
```

**La décision tient en six lignes :** l'attribut posé sur la méthode l'emporte, celui de la classe ne sert que de repli. Sans cette règle, deux versions déclarées à deux endroits donnent un comportement qui dépend de l'ordre de découverte — le genre de défaut qu'on ne diagnostique qu'en production.

## Repères

17 années de développement depuis la sortie d'école, dont l'essentiel sur l'écosystème .NET et sept en indépendant.

100 développeurs environ dans le périmètre de ma mission actuelle, sur un ensemble de 250 personnes.

13 contributions fusionnées dans Wolverine, le framework .NET utilisé en mission — dont la fonctionnalité de versioning d'API ci-dessus.

0 interruption de service demandée au métier sur les migrations de socle que j'ai menées.

## Recommandations

*Publiées sur LinkedIn, par des gens avec qui j'ai travaillé au quotidien.*

> « Plus d'un an et demi de collaboration, c'est passé si vite… Ce fut un réel plaisir de travailler avec Geoffrey qui a toujours été moteur pour faire progresser les choses et pas seulement dans son domaine de compétence pour lequel il excelle. Oui Geoffrey est un très bon tech lead .NET c'est indiscutable, mais il a aussi de l'expérience sur les organisations et n'hésitera pas à être force de proposition pour améliorer des problèmes d'orga en équipe, il sait transmettre, il sait vulgariser… et surtout il sait écouter et se remettre en question. Un vrai couteau Suisse qui a été un atout majeur dans le projet de refonte de Leetchi. Je le recommande sans aucune hésitation. »

**Sébastien Pousse** — Lead Manager QA, Leetchi

> « J'ai eu le plaisir de travailler avec Geoffrey pendant plus d'un an et demi chez Leetchi. Geoffrey a été d'une aide inestimable de par sa grande expertise technique sur le développement, sa vision 360 du projet, son efficacité et sa proactivité. Mon seul regret, notre collaboration a été trop courte. J'ai hâte de pouvoir retravailler avec lui un jour. »

**Grégory Blaire** — Directeur BU Software Engineering, Leetchi

> « Il a une grande connaissance technique en .Net, qu'il saura transmettre à des plus juniors, et une rapidité d'exécution très impressionnante. Il est un atout indispensable par sa capacité à comprendre rapidement un besoin et à proposer un design technique adapté. Il a été un développeur indispensable sur notre projet chez Leetchi.com. Je le conseille les yeux fermés. »

**Rudy Wahl** — Tech lead, Leetchi

Les recommandations sont consultables sur [mon profil LinkedIn](https://www.linkedin.com/in/oor-gmc/).

## Un système à faire évoluer ?

Décrivez-moi le contexte en quelques lignes. Je réponds sous 24 h ouvrées, avec une première lecture — et je vous le dis si je ne suis pas la bonne personne.

[Prendre contact →](https://www.outofrange-consulting.com/contact) [Parcours & réalisations](https://www.outofrange-consulting.com/parcours)
