CV de Sacha Froment

Localisation : Marigné-Laillé, France
Âge : 27 ans
Nationalité : Français
Adresse électronique : sacha@sacha.house
Profil
Ingénieur logiciel et systèmes spécialisé dans la modernisation d'applications métier et de leurs chaînes de développement. Mon parcours couvre le développement .NET et web, l'outillage, la performance et l'exploitation Linux, avec une attention constante portée à la fiabilité et aux temps de cycle.
Expérience
- Catamania (Depuis avril 2025)
- Ingénieur logiciel (Mission OGF)
Mission sur plusieurs applications internes dédiées à la gestion des commandes et à l'exploitation. L'essentiel du travail porte sur le développement de fonctionnalités et la correction d'anomalies en ASP.NET Core, Angular et SQL Server. Les principales réalisations comprennent l'intégration de prestations externes, la refonte du changement d'agence et la conception partagée d'un système transverse de permissions. L'équipe travaille en Agile avec Azure DevOps.
Organisation
Le développement est réparti entre plusieurs équipes applicatives, avec des changements de périmètre au fil des priorités. L'ensemble réunit environ quinze développeurs et quatre à cinq interlocuteurs produit. La conception technique est portée au sein des équipes de développement ; en l'absence d'une équipe de test dédiée, la recette fonctionnelle revient aux représentants produit et les développeurs prennent en charge les tests automatisés nécessaires.
Intégration de prestations externes
Un système d'évaluation d'articles de commande a été intégré à partir d'API fournies par des prestataires externes. Le développement couvre l'application des règles de gestion, le suivi et l'affichage des statuts, la gestion des erreurs et la journalisation des échanges, afin de rendre le traitement compréhensible et exploitable dans les applications internes.
Changement d'agence
Le parcours a été repris pour remplacer un mécanisme ancien, limité à une recherche fragile par code de ville. La nouvelle recherche utilise Fuse.js pour appliquer un fuzzy matching sur les différentes dimensions d'une agence, notamment la ville et l'adresse, puis restitue des résultats utilisables dans le parcours métier.
Architecture applicative
La suite échange des données entre plusieurs applications au moyen d'API JSON sur HTTP, de flux interapplicatifs et d'un bus de services. L'architecture combine des opérations CRUD éprouvées avec l'introduction progressive de CQRS pour mieux séparer les responsabilités de lecture, d'écriture et de traitement métier.
Profils et permissions
Une contribution importante a porté sur la conception partagée d'un système transverse, désormais utilisé en production à la place de contrôles historiques dispersés et propres à chaque fonctionnalité. Le calcul des droits agrège des groupes issus d'Active Directory, des données liées à l'utilisateur en base et des informations de session. Ces composantes sont rapprochées de déclarations de profils hiérarchiques, de leurs permissions et de règles dynamiques complémentaires. Le résultat pilote à la fois l'affichage conditionnel dans Angular et les contrôles d'accès des API .NET.
Validation des droits
La validation du modèle repose sur de nombreux cas positifs et négatifs générés à partir des conditions d'accès. Des échanges réguliers avec les responsables produit ont permis de vérifier que la généralisation du système préservait les règles métier couvertes par l'ancien fonctionnement.
Modernisation du front-end
La migration d'Angular 17 vers Angular 21 a été menée de bout en bout, avec la création de codemods AST pour automatiser les transformations absentes des outils officiels. La suite de plus de 900 tests a été transférée de Jest vers Vitest et parallélisée ; son exécution est passée d'environ 20 minutes à 30 secondes.
Performance et intégration continue
Le même travail de mesure et d'optimisation a ramené le pipeline front de 30 minutes à 5 ou 6 minutes, et le pipeline back de 20 à 7 minutes dans le cadre d'un chantier partagé. Sur l'application, le profilage puis la suppression de cascades de chargement ont réduit l'affichage d'une page complexe d'environ cinq secondes à une seconde.
Socle .NET
Le socle a été consolidé par la centralisation des règles dans Directory.Build.props et le verrouillage des dépendances. Des travaux exploratoires autour de Nix et de .NET 10 ont permis d'évaluer les prochaines évolutions sans perturber les chemins de production.
- Ingénieur logiciel (Mission OGF)
- AViSTO (Janvier 2023 – mars 2025)
- Ingénieur logiciel (Mission Alstom)
Mission de deux ans chez Alstom sur des outils de configuration de systèmes ferroviaires embarqués. Maintenance d'applications WinForms en .NET Framework, conception autonome d'une CLI .NET 8 utilisée en production et préparation de la migration de plusieurs dizaines de projets de NAnt vers MSBuild.
CLI de production
À partir de spécifications techniques détaillant les formats binaires, la taille des champs et les règles d'échange, j'ai assuré seul la conception et l'implémentation de l'outil. La CLI produit des archives de données techniques destinées à certains systèmes du train, valide les documents XML selon des schémas spécialisés, contrôle la cohérence des données, puis chiffre et signe les fichiers. Les résultats typés, les diagnostics et les codes de sortie rendent chaque échec exploitable par les utilisateurs comme par les traitements automatisés.
Migration du système de build
Le système historique a été préparé pour une migration de NAnt vers MSBuild à l'échelle de plusieurs dizaines de projets C#. Le chantier ne se limitait pas à traduire les scripts : il a fallu analyser le graphe de dépendances, réduire les risques de cycles, revoir certains découpages et raccorder correctement les modules de génération de code au cycle de construction de Visual Studio.
Automatisation et reprise
Des outils ont automatisé les transformations répétitives tout en laissant un traitement explicite pour les particularités de chaque projet. L'intégration avec Visual Studio et GitLab CI, ainsi que la documentation de l'architecture cible, ont préparé la reprise du chantier par l'équipe.
Qualité
Les évolutions des outils de configuration et de comparaison ont été sécurisées par des tests NUnit, au niveau unitaire comme au niveau intégration, dans un environnement réunissant .NET Framework 4 et .NET 8.
- Ingénieur logiciel (Mission Alstom)
- AG2R La Mondiale (Septembre 2019 – juin 2022)
- Assistant systèmes d'information en alternance
Alternance au sein de l'équipe de cartographie du système d'information. Conception et maintenance d'un framework TypeScript déployé progressivement sur près de 50 000 pages, évolution des traitements C# et VBScript, puis participation à la migration de MEGA HOPEX V2R1 vers V5 jusqu'à sa mise en production.
Refonte du front-end
La modernisation a conduit à la conception d'un framework TypeScript de 25 modules et environ 4 900 lignes, chargé de refondre près de 50 000 pages générées par la plateforme. Son architecture apporte gestion d'état, hooks, montage sur un DOM existant et chargement dynamique, tout en conservant les échanges XML, JSON, SOAP et REST du système en place.
Déploiement et maintenance
Déployée progressivement au cours de l'alternance, cette couche a remplacé une interface ancienne et contrainte en largeur. Elle a restructuré la navigation et les vues consacrées aux données métier, aux applications et aux technologies, puis ajouté des liens contextuels entre des informations auparavant isolées. J'en ai assuré seul la maintenance et les évolutions jusqu'à mon départ.
Build et intégration
L'outillage associé a été construit autour de Webpack 5, Babel, TypeScript et Sass. Des scripts PowerShell ont ensuite uniformisé les builds et les déploiements entre les environnements. Les traitements d'extraction, d'import et d'API ont continué à évoluer en VBScript et C#.
Migration de MEGA HOPEX
La migration de V2R1 vers V5 a mobilisé les personnalisations, les dépendances, les scripts et l'infrastructure d'exploitation : IIS, SSO SAML2, sauvegardes et restauration SQL. Le travail associait réalisation technique, cadrage, préparation des opérations et documentation de reprise, jusqu'à la mise en production de la nouvelle version.
- Assistant systèmes d'information en alternance
- AG2R La Mondiale (Juin – octobre 2022)
- Product Owner
Rôle temporaire consacré à l'inventaire et à la cartographie des technologies, serveurs et logiciels du système d'information, dans la continuité du travail mené sur la plateforme HOPEX.
- Product Owner
- Italic (Avril – août 2019)
- Administrateur systèmes stagiaire
Administration de 5 à 10 VPS OVH sous Linux pour l'hébergement de sites clients. Automatisation en Bash de la configuration, des sauvegardes, des déploiements et de la supervision d'une infrastructure LAMP.
Automatisation et exploitation
Des scripts Bash ont automatisé la configuration des serveurs, les sauvegardes, les déploiements et la supervision. L'exploitation reposait sur Apache, PHP, MySQL ou MariaDB, SSH et rsync. Une étude complémentaire a exploré l'automatisation de relevés bancaires par EBICS avec Ruby.
- Administrateur systèmes stagiaire
Compétences
Développement applicatif
Je travaille principalement avec C#, .NET Framework, .NET 7/8, ASP.NET Core, WinForms, TypeScript, Angular et Go. Je conçois des applications métier web, des applications de bureau, des CLI et des outils d'intégration. Svelte 5 et SvelteKit complètent cette pratique dans mes projets personnels.
Tests et performance
J'utilise Vitest, Jest et NUnit pour les tests unitaires et d'intégration. Je profile les applications et les chaînes de build avant d'agir sur les temps d'exécution, les accès aux données ou la parallélisation.
Données, build et livraison
Je travaille avec SQL Server, SQLite, XML, JSON, SOAP, REST et GraphQL. Mes chaînes de livraison utilisent notamment Azure DevOps, GitLab CI, GitHub Actions, MSBuild, NAnt, Webpack 5, Babel, PowerShell, Nix, Docker et Azure App Service.
Systèmes
J'administre des systèmes Linux et NixOS avec systemd, des conteneurs, de la virtualisation, Apache, des sauvegardes et de la supervision. Bash, SSH et rsync servent à automatiser leur exploitation.
Pratiques professionnelles
Je travaille en équipe Agile avec des interlocuteurs produit, métier et techniques. Je rédige des spécifications, des documents d'architecture, des descriptions d'interfaces et des procédures d'exploitation. Mon parcours comprend aussi le cadrage, la conduite du changement et la présentation de sujets techniques.
Formation
- Conservatoire national des arts et métiers (2019 – 2022)
Diplôme d'ingénieur en informatique, spécialité systèmes d'information
Mon mémoire portait sur la gestion de l'obsolescence, le cadrage, la conduite du changement et la migration réelle vers MEGA HOPEX V5. J'intervenais comme co-chef de projet MOE.
- Conservatoire national des arts et métiers (2020 – 2021)
Étude de REST hypermédia et GraphQL
J'ai comparé les deux modèles d'API, puis réalisé seul un prototype Svelte en trois jours et demi afin d'évaluer leurs contraintes et leur impact sur le client web.
- Conservatoire national des arts et métiers (2019 – 2020)
Modernisation d'une plateforme de cartographie
Le premier rapport d'activité documentait la modernisation de la plateforme AG2R et les développements réalisés en C# avec Graphviz, JavaScript et VBScript.
- IUT Paris Descartes (2017 – 2019)
DUT Informatique
La formation couvrait le développement logiciel, le web, les données, les systèmes et les réseaux. J'ai participé à la Nuit de l'Info 2018.
Langues
- Français : langue maternelle
- Anglais : bilingue, usage professionnel et technique
Projets sélectionnés
sacha.house
Je développe mon site personnel et son moteur de publication en Go. Le serveur utilise templ pour les composants, Datastar pour la navigation progressive et WebAuthn pour authentifier l'accès à l'interface d'administration. Le build, les livraisons et le déploiement reposent sur Nix.
nixconfig
Je maintiens une infrastructure NixOS déclarative afin de rendre mes systèmes reproductibles et de limiter les écarts de configuration entre les machines. Les mêmes modules permettent de reconstruire quatre configurations, dont trois machines physiques et un environnement WSL. Le dépôt contient 123 modules flake-parts, 94 modules NixOS et 24 entrées de flake ; il configure 31 hôtes virtuels et 20 conteneurs.
albumator
J'ai développé cette application de dépôt, de classement et de consultation d'images avec Svelte 5 et SvelteKit.
clockin.sacha.house
Application personnelle de pointage conçue autour d'une interaction minimale : un bouton enregistre le temps et des statistiques restituent l'activité. L'identité ne requiert ni courriel ni mot de passe ; un identifiant court généré par le serveur suffit pour retrouver les données. L'application réunit une SPA Angular 22, une API Fastify, Drizzle et SQLite dans un service NixOS reproductible.
jav
CLI écrite en Rust pour apporter à l'écosystème Java une expérience cohérente proche de celle de la CLI .NET. Elle détecte les projets Maven, Gradle ou Java simples et unifie les commandes de création, build, test, exécution, nettoyage, diagnostic et mise à jour. Dix modèles couvrent les usages courants, de la console à Spring, avec un flake Nix généré par défaut pour fournir un environnement reproductible.
Catalogue de projets
Applications et sites
lanblaster.sacha.house · froment.software · chat.sacha.house · wthhyb.sacha.house · albumator · clockin.sacha.house · marketing.sacha.house · button.sacha.house · cool.sacha.house · react-training.sacha.house
Outils et systèmes
nixconfig · dotfiles · jav · dw · MEGA_CLI · subtitles-translater · one_piece_dl_scan · mrtg-autoinstall · epicmousemover · electrorustogram
Expérimentations
Achetétéper · htmx.sacha.house · Rust Testground · Win32 Trainer · Rudimentary File Explorer · JS Canvas Speed Experiment · odd_or_even · prime · Template Ts Gql Express · chaussures-api · pixels
Projets académiques
Portefeuille Ethereum Android en Kotlin · Musées du monde en RDF/SPARQL et Symfony · Prototype REST hypermédia contre GraphQL en Svelte · Bibliothèque JSP · services web dynamiques · simulation de propagation virale · emploi du temps web · algorithmes de sac à dos · messagerie Java · Sudoku C#
Thèmes, configurations et archives
Grind Brother Grind · hugo_theme_hjkl.it · sachahjkl.gitlab.io · kickstart.nvim · wofi-arc-dark · dwm · st · dotfiles_old · basex_chocolatey · kelio-rewrite · wackssenger
Publications
- Novembre 2025 · Design draft for chat.sacha.house
- Novembre 2025 · HTTP Benchmark of sacha.house
- Octobre 2025 · Homelab Architecture Diagram
- Mars 2023 · Make your Windows PowerShell experience feel like Linux