depuis la création du compte
Confiez votre projet à Emmanuel
Faites appel à l'expertise d’Emmanuel pour faire avancer votre projet, ou découvrez d'autres freelances pour trouver celui qui correspondra parfaitement à vos besoins.
Développeur et architecte logiciel avec plus de 15 ans d'expérience, dont plusieurs années en direction technique d'équipes d'ingénierie. J'interviens sur la conception, le développement et la mise en production d'applications web et d'APIs robustes, principalement sur la stack .NET / C# et React / TypeScript.
Mon parcours s'est construit dans des environnements exigeants — gestion d'actifs, fintech, plateformes de paiement et de royalties (AXA Investment Managers, Natixis, Younited, Believe) — où la fiabilité des données, la traçabilité et la tenue de charge ne sont pas négociables. J'ai notamment piloté la migration d'une plateforme de gestion de fonds vers une architecture CQRS / Event Sourcing, et encadré jusqu'à 18 ingénieurs répartis sur quatre équipes.
Ce que je peux prendre en charge :
Développement backend : ASP.NET Core Web API, Entity Framework Core, PostgreSQL / SQL Server
Applications full-stack : React, TypeScript, du modèle de données à l'interface
Architecture & conseil : microservices, event-driven, CQRS/ES, découpage de monolithe, revue d'architecture
DevOps & mise en production : Docker, GitHub Actions, Azure, VPS Linux, observabilité
Je travaille en échanges directs et réguliers, avec des livraisons incrémentales et un code testé, documenté et repris facilement par une équipe interne.
Emmanuel
Plateforme SaaS conçue et développée au sein de ma société EME Technologies. Elle donne aux équipes engineering, architecture et management une vue unifiée et maintenue à jour automatiquement de leur parc applicatif.
LE BESOIN
Dans une DSI de taille moyenne, personne ne sait répondre de façon fiable à : quelles applications avons-nous, qui les possède, sur quels dépôts et quelles technologies reposent-elles, où sont-elles déployées, et qu'est-ce qui casse si celle-ci tombe ? Les cartographies existent, sous forme de schémas périmés dès leur publication. Archplorer répond en construisant la carte à partir des systèmes réels, en continu.
CE QUE J'AI LIVRÉ
- Inventaire applicatif : catalogue centralisé (nom, description, équipe propriétaire, statut de cycle de vie, tags, criticité, stack, niveau de conformité), avec rattachement à un ou plusieurs dépôts et exécutables.
- Cartographie des dépôts : métadonnées, branches, activité de commits, langages, README — pour GitHub, GitLab et Azure DevOps.
- Catalogue des cibles de déploiement : environnement, région, plateforme d'hébergement, URL, runtime, règles de scaling — cloud (Azure, AWS, GCP), on-premise, Kubernetes.
- Gestion des exécutables : services, jobs, fonctions et CLI, avec extraction de l'arbre de dépendances (bibliothèques et versions) et détection des dépendances inter-applications (appels d'API, files de messages, accès base).
- Couche de visualisation : graphe interactif des applications et de leurs dépendances, topologies dépôts et déploiements, arbre de dépendances par exécutable, vues filtrées par environnement (INT / UAT / PROD).
- Modèle organisationnel : domaines, équipes, personnes, appartenances — pour répondre à « qui possède quoi » sans passer par un annuaire tiers.
CHOIX TECHNIQUES
J'ai retenu une architecture Hub & Spoke dictée par la sécurité : le Hub, la plateforme centrale, n'appelle jamais les systèmes du client. Ce sont des agents CLI légers, déployés dans l'infrastructure du client, qui scannent Git, les dépendances (NuGet, npm, Maven, pip, modules Go), les définitions de pipelines CI/CD et les ressources cloud, puis poussent leurs résultats vers une API d'ingestion. Deux modes d'exploitation : intégré au pipeline CI/CD (scan à chaque build, via GitHub Action, job GitLab CI ou tâche Azure Pipelines) ou agent planifié. Le Hub ne stocke aucun identifiant Git ou cloud — uniquement la clé d'API de l'agent. C'est ce qui rend le produit acceptable pour une DSI qui refuserait d'ouvrir ses systèmes à un SaaS externe.
Côté données, PostgreSQL est la source de vérité et Neo4j une projection graphe dérivée, synchronisée en asynchrone via Dapr pub/sub sur RabbitMQ. Le chemin d'écriture ne bloque donc jamais sur le graphe, et si Neo4j est indisponible les événements s'accumulent dans le broker et sont rejoués à la reprise. Ce découpage permet des requêtes de traversée coûteuses — plus court chemin entre deux applications, dépendants transitifs, détection de cycles — sans pénaliser le CRUD. J'ai aussi intégré un moteur d'inférence LLM exécuté localement (Ollama) pour proposer des liens de dépendance que les scanners ne détectent pas, avec un contrat de sortie strictement JSON : aucune donnée client n'est envoyée à une API externe.
Stack : .NET, C#, ASP.NET Core, Clean Architecture, CQRS, EF Core, PostgreSQL, Neo4j, Dapr (pub/sub + Workflow), RabbitMQ, Redis, YARP, Clerk, React / Vite, .NET Aspire, Serilog + Seq, OpenTelemetry, Ollama, Docker.
Produit SaaS que j'ai conçu, développé, déployé et que j'exploite aujourd'hui en production au sein de ma société EME Technologies. Il est utilisé par des coachs indépendants et des studios sportifs pour piloter toute leur activité.
LE BESOIN
Un studio doit gérer ses clients, ses coachs, ses salles, son planning et ses abonnements depuis un back-office ; ses adhérents doivent pouvoir réserver eux-mêmes leurs séances, 24h/24, depuis un navigateur ou un téléphone. Les solutions du marché sont soit trop chères, soit trop lourdes pour une structure de 5 à 500 clients actifs.
CE QUE J'AI LIVRÉ
- Gestion des clients : fiche complète (coordonnées, historique, abonnements), base centralisée, gestion multi-localisations pour les structures à plusieurs salles, import/export des données.
- Réservation : planning hebdomadaire interactif, création rapide de créneau, définition des horaires d'ouverture, blocage de plages (congés, formations, maintenance), réservation en ligne autonome côté adhérent.
- Abonnements : deux modèles gérés en parallèle — illimité mensuel et packs de séances prépayées — avec décompte automatique en temps réel, suspension/réactivation pour les pauses, et historique complet de tous les mouvements pour la traçabilité.
- Notifications email transactionnelles : confirmation à chaque création, modification et annulation, côté client comme côté admin ; rappel de séance la veille ; récapitulatif journalier pour le coach.
- 4 front-ends React / TypeScript / Vite : back-office admin, portail adhérent, site vitrine, et application mobile Expo / React Native.
CHOIX TECHNIQUES
API cœur en .NET 10, Clean Architecture et CQRS (MediatR), EF Core sur SQL Server. J'ai placé devant elle une architecture multi-BFF — un BFF web, un BFF mobile — pour que l'API ne soit jamais exposée directement : seuls les BFF, authentifiés en machine-to-machine, l'appellent, et chacun n'expose que ce dont son client a besoin. Authentification déléguée à Clerk (aucun mot de passe stocké), workflow d'inscription long orchestré avec Dapr, emails via Mailjet. Hébergement Azure décrit en infra-as-code Bicep (Static Web Apps + App Services), tests end-to-end Playwright, et un mode démo entièrement autonome — front seul, jeu de données en mémoire, ni backend ni compte — pour faire essayer le produit à un prospect en un lien.
RÉSULTAT
Plateforme en production, sauvegardes quotidiennes automatiques, conformité RGPD, données hébergées en France. Offre commerciale packagée par paliers de fonctionnalités, avec une roadmap publique : application iOS, paiement en ligne Stripe avec prélèvements SEPA récurrents, puis suivi personnalisé des adhérents.
Stack : .NET 10, C#, ASP.NET Core, EF Core, SQL Server, MediatR, Dapr, React, TypeScript, Vite, Expo / React Native, Clerk, Mailjet, Azure, Bicep, Playwright, Docker.