CV of Sacha Froment

Location: Marigné-Laillé, France
Age: 27 years old
Nationality: French
Email: sacha@sacha.house
Profile
Software and systems engineer specializing in the modernization of business applications and their development pipelines. My work spans .NET and web development, tooling, performance, and Linux operations, with a consistent focus on reliability and cycle time.
Experience
- Catamania (Since April 2025)
- Software engineer (OGF assignment)
Assignment across several internal applications supporting order management and operations. Most work consists of feature development and defect correction with ASP.NET Core, Angular, and SQL Server. Key contributions include external service integration, agency-change redesign, and shared design of a cross-cutting permission system. The team works in Agile with Azure DevOps.
Organization
Development is distributed across several application teams, with scope changing as priorities evolve. The organization includes about fifteen developers and four to five product representatives. Technical design remains within the development teams; without a dedicated QA team, product representatives perform functional acceptance while developers own the required automated tests.
External service integration
An order-item evaluation system was integrated through APIs supplied by external service providers. The implementation covers business rules, status tracking and display, error handling, and exchange logging, so processing remains understandable and actionable within the internal applications.
Agency change
The workflow replaced a legacy mechanism limited to an unreliable city-code search. The new search uses Fuse.js to apply fuzzy matching across agency attributes, including city and address, and returns results suited to the business workflow.
Application architecture
The suite exchanges data across applications through JSON-over-HTTP APIs, inter-application flows, and a service bus. Its architecture combines established CRUD operations with the progressive introduction of CQRS to separate read, write, and business processing responsibilities more clearly.
Profiles and permissions
A major contribution involved the shared design of a cross-cutting system, now used in production instead of historical checks scattered across individual features. Permission calculation combines groups from Active Directory, database attributes tied to the user, and session information. These inputs are matched against hierarchical profile declarations, their permissions, and complementary dynamic rules. The result drives both conditional rendering in Angular and access control in the .NET APIs.
Permission validation
The model is validated through numerous generated positive and negative cases derived from access conditions. Regular review with product owners ensured that the generalized system preserved the business rules covered by the previous implementation.
Front-end modernization
The Angular 17 to Angular 21 migration was delivered end to end, including AST codemods for transformations missing from official tooling. More than 900 tests were moved from Jest to Vitest and parallelized, reducing runtime from about 20 minutes to 30 seconds.
Performance and continuous integration
The same measurement-driven work reduced the front-end pipeline from 30 minutes to 5 or 6 minutes, and the back-end pipeline from 20 minutes to 7 minutes as part of a shared effort. Application profiling and removal of loading cascades reduced a complex page load from about five seconds to one second.
.NET platform
The platform was consolidated through shared Directory.Build.props rules and dependency locking. Exploratory work with Nix and .NET 10 assessed future changes without disrupting production paths.
- Software engineer (OGF assignment)
- AViSTO (January 2023 – March 2025)
- Software engineer (Alstom assignment)
Two-year Alstom assignment on tools for embedded railway system configuration. Work included maintenance of WinForms applications on .NET Framework, independent design of a production .NET 8 CLI, and preparation of several dozen projects for migration from NAnt to MSBuild.
Production CLI
Working from technical specifications that defined binary layouts, field sizes, and exchange rules, I independently designed and implemented the tool. It produces technical-data archives for selected train systems, validates XML documents against specialized schemas, checks data consistency, then encrypts and signs the resulting files. Typed results, diagnostics, and exit codes make failures actionable for both users and automated processing.
Build-system migration
The legacy system was prepared for migration from NAnt to MSBuild across several dozen C# projects. The work went beyond script translation: it required analysis of the dependency graph, mitigation of cycle risks, revision of some project boundaries, and correct integration of code-generation modules into the Visual Studio build lifecycle.
Automation and handover
Tools automated repetitive transformations while preserving explicit handling for project-specific behavior. Visual Studio and GitLab CI integration, together with target-architecture documentation, prepared the team to continue the migration.
Quality
Changes to configuration and comparison tools were secured with NUnit unit and integration tests in an environment combining .NET Framework 4 and .NET 8.
- Software engineer (Alstom assignment)
- AG2R La Mondiale (September 2019 – June 2022)
- Information systems assistant, apprenticeship
Apprenticeship within the information-system mapping team. Designed and maintained a TypeScript framework progressively deployed across almost 50,000 pages, evolved C# and VBScript processing, and contributed to the MEGA HOPEX V2R1-to-V5 migration through production deployment.
Front-end redesign
Modernization led to a 25-module, 4,900-line TypeScript framework that redesigned almost 50,000 pages generated by the platform. Its architecture added state management, hooks, mounting on an existing DOM, and dynamic loading while preserving the existing XML, JSON, SOAP, and REST exchanges.
Deployment and maintenance
Rolled out progressively during the apprenticeship, this layer replaced an old fixed-width interface. It restructured navigation and the views for business data, applications, and technologies, then added contextual links between previously isolated information. I remained its sole maintainer until leaving the company.
Build and integration
The supporting toolchain used Webpack 5, Babel, TypeScript, and Sass. PowerShell scripts then standardized builds and deployments across environments. Extraction, import, and API processing continued to evolve in VBScript and C#.
MEGA HOPEX migration
The V2R1 to V5 migration covered customizations, dependencies, scripts, and operational infrastructure including IIS, SAML2 SSO, backups, and SQL restoration. The work combined implementation, scoping, operational preparation, and handover documentation through production deployment of the new version.
- Information systems assistant, apprenticeship
- AG2R La Mondiale (June – October 2022)
- Product Owner
Temporary role focused on the inventory and mapping of information-system technologies, servers, and software, extending the work performed on the HOPEX platform.
- Product Owner
- Italic (April – August 2019)
- Systems administration intern
Administered 5 to 10 Linux VPS instances hosting customer websites. Bash automation covered configuration, backups, deployments, and monitoring for the LAMP infrastructure.
Automation and operations
Bash scripts automated server configuration, backups, deployments, and monitoring. Operations relied on Apache, PHP, MySQL or MariaDB, SSH, and rsync. Additional research explored Ruby-based automation of EBICS banking statements.
- Systems administration intern
Skills
Application development
I work primarily with C#, .NET Framework, .NET 7/8, ASP.NET Core, WinForms, TypeScript, Angular, and Go. I design business web applications, desktop applications, CLIs, and integration tools. Svelte 5 and SvelteKit complement this work in personal projects.
Testing and performance
I use Vitest, Jest, and NUnit for unit and integration testing. I profile applications and build chains before changing execution times, data access, or parallelism.
Data, build, and delivery
I work with SQL Server, SQLite, XML, JSON, SOAP, REST, and GraphQL. My delivery chains use Azure DevOps, GitLab CI, GitHub Actions, MSBuild, NAnt, Webpack 5, Babel, PowerShell, Nix, Docker, and Azure App Service.
Systems
I administer Linux and NixOS systems with systemd, containers, virtualization, Apache, backups, and monitoring. Bash, SSH, and rsync support their operation.
Professional practices
I work in Agile teams with product, business, and technical stakeholders. I write specifications, architecture documents, interface descriptions, and operating procedures. My experience also includes project scoping, change management, and technical presentations.
Education
- Conservatoire national des arts et métiers (2019 – 2022)
Engineering degree in computer science, information systems
My thesis covered obsolescence management, project scoping, change management, and the production migration to MEGA HOPEX V5. I acted as joint technical project lead.
- Conservatoire national des arts et métiers (2020 – 2021)
REST hypermedia and GraphQL study
I compared both API models and independently built a Svelte prototype in three and a half days to assess their constraints and impact on the web client.
- Conservatoire national des arts et métiers (2019 – 2020)
Information-system mapping platform modernization
The first activity report documented the AG2R platform modernization and development work in C# with Graphviz, JavaScript, and VBScript.
- IUT Paris Descartes (2017 – 2019)
Two-year university degree in computer science
The course covered software, web, data, systems, and networks. I participated in Nuit de l'Info 2018.
Languages
- French: native
- English: bilingual professional and technical proficiency
Selected projects
sacha.house
I develop my personal website and publishing engine in Go. The server uses templ for components, Datastar for progressive navigation, and WebAuthn to authenticate access to the administration interface. Nix handles builds, releases, and deployment.
nixconfig
I maintain declarative NixOS infrastructure to make my systems reproducible and limit configuration drift between machines. Shared modules rebuild four configurations, including three physical computers and one WSL environment. The repository contains 123 flake-parts modules, 94 NixOS modules, and 24 flake inputs; it configures 31 virtual hosts and 20 containers.
albumator
I developed this image upload, organization, and browsing application with Svelte 5 and SvelteKit.
clockin.sacha.house
Personal clock-in application designed around minimal interaction: one button records time and statistics summarize activity. Identity requires neither email nor password; a short server-generated identifier is enough to retrieve the data. The application packages an Angular 22 SPA, a Fastify API, Drizzle, and SQLite as a reproducible NixOS service.
jav
Rust CLI that brings a consistent, .NET-like command-line experience to Java development. It detects Maven, Gradle, and plain Java projects and unifies project creation, build, test, run, clean, diagnostics, and upgrades. Ten templates cover common use cases from console applications to Spring, with a Nix flake generated by default for a reproducible environment.
Project catalog
Applications and websites
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
Tools and systems
nixconfig · dotfiles · jav · dw · MEGA_CLI · subtitles-translater · one_piece_dl_scan · mrtg-autoinstall · epicmousemover · electrorustogram
Experiments
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
Academic projects
Read-only Ethereum wallet for Android in Kotlin · World museums with RDF/SPARQL and Symfony · REST hypermedia versus GraphQL prototype in Svelte · JSP library · dynamic web services · virus propagation simulation · web timetable · knapsack algorithms · Java messaging application · C# Sudoku
Themes, configurations, and 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
- November 2025 · Design draft for chat.sacha.house
- November 2025 · HTTP Benchmark of sacha.house
- October 2025 · Homelab Architecture Diagram
- March 2023 · Make your Windows PowerShell experience feel like Linux