Le contexte
MATMAK était déjà en production à mon arrivée, et de vrais clients en dépendaient chaque jour. Il ne s'agit pas d'une réécriture, mais de faire évoluer en toute sécurité une application établie : ajouter des fonctionnalités, moderniser ce que voient les clients, et garder la plateforme rapide et stable.
Le produit réunit comptes utilisateurs, abonnements, facturation, tarification, crédits, un vaste catalogue de patterns véhicules, des opérations de découpe, un site destiné aux clients et un back-office d'administration.
Produit d'équipe. Je contribue à une plateforme existante aux côtés de l'équipe d'ingénierie. Le travail décrit ci-dessous est ma part, et je ne prétends pas avoir construit MATMAK seul.
Ce que je développe
- Je fais évoluer les API REST ASP.NET Core, les Razor Pages, les services et les workflows métier.
- Je travaille sur l'authentification, les abonnements, la facturation, la tarification, les crédits et les opérations de découpe.
- J'ai repensé les pages destinées aux clients et l'interface d'administration en une UI moderne et responsive, reliée aux services existants.
- J'ai intégré les paiements ponctuels Stripe, les abonnements récurrents, la facturation et les mises à jour de statut de paiement par webhooks.
- Je travaille directement avec la direction et l'équipe sur les besoins, les priorités et les mises en production.
Comment le système s'articule
La solution est une base de code .NET modulaire et multi-projets. Voici la partie de chaque couche sur laquelle je travaille :
| Couche | Ce que je fais | Outils |
|---|---|---|
| Interfaces | Pages client et back-office d'administration, repensés pour une expérience moderne et responsive. | Razor Pages · HTML · CSS · JS |
| Application | API, services et workflows pour les comptes, les abonnements, la facturation, la tarification, les crédits et la découpe. | C# · ASP.NET Core · Web API |
| Paiements | Paiements ponctuels et récurrents, factures, mises à jour de statut par webhooks. | Stripe |
| Données | Conception de schémas, optimisation des requêtes, bases de données de production et sauvegardes. | SQL · EF Core · LINQ |
| Exploitation | Serveurs, déploiements, préproduction, supervision et alertes. | Linux · AWS · Nginx · GitHub Actions · Grafana |
La base de code est découpée en projets API, Client, Admin, Models et Services, ce qui garde chaque responsabilité séparée et réutilisable.
Accélérer la couche de données
Certains chemins de lecture et d'écriture étaient plus lents que nécessaire. J'ai repensé une partie du schéma de base de données pour supprimer les tables redondantes et les jointures coûteuses, et j'ai optimisé les requêtes Entity Framework Core qui les sollicitaient.
Résultat : environ 40 % plus rapide sur les opérations de lecture et d'écriture concernées.
L'exploitation en production
Mon rôle va au-delà du code applicatif. J'assume la responsabilité de bout en bout de l'infrastructure de l'entreprise : comptes cloud, serveurs, bases de données de production, domaines, DNS, messagerie et services de paiement.
- Je provisionne et je durcis des serveurs Linux cloud et VPS : accès SSH, pare-feu, reverse proxy Nginx, TLS et environnements d'exécution applicatifs.
- J'administre AWS EC2, les bases de données de production, les sauvegardes automatisées et un environnement de préproduction séparé.
- J'automatise les builds et les déploiements avec GitHub Actions.
- J'ai mis en place la supervision avec Prometheus, Grafana, Loki et Promtail, avec des tableaux de bord et des alertes sur les serveurs, les API, Nginx et les logs applicatifs.
Les adresses internes, les données clients et les paramètres de sécurité sont volontairement absents de cette page.
Ce que cela montre
Ma façon de travailler au sein d'un produit établi : comprendre les contraintes, faire évoluer les workflows critiques pour l'activité sans les casser, relier les changements d'interface et de backend, et rester responsable jusqu'au déploiement et à la supervision.