Sacha Froment

Sacha Froment

Marigné-Laillé, France sacha@sacha.house 27 years old French

Education

CNAM · Engineering degree in computer science, information systems
  • Thesis: obsolescence management, scoping, change management, and migration to MEGA HOPEX V5, as joint technical project lead.
  • Activity report (2019 – 2020): modernization of the AG2R information-system mapping platform, built with C#, Graphviz, JavaScript, and VBScript.
  • Study (2020 – 2021): comparison of hypermedia REST and GraphQL, with a Svelte prototype built alone in three and a half days to assess the impact on the web client.
IUT Paris Descartes · Two-year university degree in computer science
  • Curriculum: software development, web, data, systems, and networks; took part in Nuit de l'Info 2018.

Experience

Catamania Assignment with France's leading funeral services group
Software engineer

Modernization, performance, and reliability of a suite of order-management business applications (ASP.NET Core, Angular, SQL Server) in an organization of about fifteen developers. Beyond planned feature work, I took on, alone and on my own initiative, the foundational work that determines delivery reliability: front-end modernization, test and CI performance, visual-layer restructuring, and the design system.

Front-end modernization

On my own initiative, I led the Angular 17 to Angular 21 migration alone, from analysis to production. For transformations not covered by official tooling, I wrote AST codemods that automated the code rewrite. I then migrated the 900+ test suite from Jest to Vitest and parallelized it, reducing runtime from about 20 minutes to 30 seconds.

Continuous integration

I measured and optimized the front-end pipeline on my own, bringing it from 30 minutes down to 5 or 6. With about five runs per day and up to nineteen on peak days, this saves nearly two hours of waiting every day and nearly eight hours on busy days. I also helped reduce the back-end pipeline from 20 to 7 minutes as part of a shared effort (about nine runs per day).

Automatic changelog

I set up a delivery log generated by the CI/CD pipeline from Azure DevOps work items. It is append-only: the pipeline takes the changelog.json artifact of the previous version and adds the work items delivered since the last tagged version. The file is built into the application, so deliveries can be followed from the interface.

Application performance

I profiled a complex page, identified sequential loading cascades, and removed them, reducing its load time from about five seconds to one second.

Theme and design system

On my own initiative, I took over a chaotic visual layer: unstable or hard-to-integrate components and inconsistent colors from one screen to the next. I restructured it into a coherent theme built on shared variables. On that foundation, I extended and hardened the design-system components, each with a demo page, which speeds up development and keeps teams consistent.

Real-time feedback

I moved several submissions to real time, especially inter-application exchanges. Users now see the outcome immediately without refreshing the page. I also enriched error states so failures are understandable without going through support.

Agency search

I redesigned the agency-change workflow, which relied on an unreliable city-code search. I replaced it with instant fuzzy search (Fuse.js) across city, address, and other agency attributes.

Profiles and permissions

I co-designed a cross-cutting permission system, now in production in place of checks scattered across individual features. Permission calculation combines Active Directory groups, user data from the database, and session information, then matches them against hierarchical profiles and dynamic rules. The same result drives rendering in Angular and access control in the .NET APIs. The model is validated through numerous generated positive and negative cases and reviewed with product owners. I also helped standardize the authentication mechanisms.

External service integration

I integrated an order-item evaluation system through external providers' APIs: business rules, status tracking and display, error handling, and exchange logging.

.NET platform

On my own initiative, I centralized build rules in Directory.Build.props and locked dependencies. I also evaluated .NET 10 and Nix to prepare future changes without disrupting production.

Context

The suite exchanges data through JSON APIs, inter-application flows, and a service bus, with CQRS being introduced progressively. Several teams develop it, about fifteen developers and four to five product representatives, working in Agile with Azure DevOps. Without a dedicated QA team, developers own automated testing.

Stack : C#, .NET 7/8, ASP.NET Core, Angular 17–21, TypeScript, SQL Server, Azure App Service, Azure DevOps, Active Directory, Fuse.js, Jest, Vitest

AViSTO Alstom assignment
Software engineer

Two-year assignment on configuration tools for embedded railway systems. I designed and implemented a production .NET 8 CLI on my own, prepared several dozen projects for migration from NAnt to MSBuild, and evolved WinForms applications on .NET Framework.

Production CLI

Working from technical specifications that defined binary layouts, field sizes, and exchange rules, I designed and implemented the tool on my own. 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. I designed typed results, diagnostics, and exit codes that make failures actionable for both users and automated processing.

Build-system migration

I prepared the legacy system for migration from NAnt to MSBuild across several dozen C# projects. Beyond translating scripts, I analyzed the dependency graph, eliminated cycle risks, revised some project boundaries, and wired code-generation modules into the Visual Studio build lifecycle.

Automation and handover

I wrote tools that automate repetitive transformations while handling project-specific behavior explicitly. I integrated the result with Visual Studio and GitLab CI, then documented the target architecture so the team could continue the migration.

Quality

I secured changes to configuration and comparison tools with NUnit unit and integration tests in an environment combining .NET Framework 4 and .NET 8.

Stack : C#, .NET Framework 4, .NET 8, WinForms, NUnit, XML Schema, encryption, signing, NAnt, MSBuild, Visual Studio, GitLab CI

AG2R La Mondiale
Information systems assistant, apprenticeship

Three-year apprenticeship in the information-system mapping team. I designed and solely maintained a TypeScript framework deployed across almost 50,000 pages, then led the MEGA HOPEX V2R1-to-V5 migration through production as joint technical project lead.

Front-end redesign

I designed a 25-module, 4,900-line TypeScript framework to redesign almost 50,000 pages generated by the platform. Its architecture adds state management, hooks, mounting on an existing DOM, and dynamic loading while preserving the existing XML, JSON, SOAP, and REST exchanges.

Deployment and maintenance

I rolled this layer out progressively to replace an old fixed-width interface. I 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

I built the toolchain around Webpack 5, Babel, TypeScript, and Sass, and standardized builds and deployments across environments with PowerShell scripts. I also evolved extraction, import, and API processing in VBScript and C#.

MEGA HOPEX migration

As joint technical project lead, I drove the V2R1 to V5 migration: customizations, dependencies, scripts, and operational infrastructure (IIS, SAML2 SSO, backups, and SQL restoration). I handled implementation, scoping, operational preparation, and handover documentation through production deployment.

Stack : TypeScript, Webpack 5, Babel, Sass, PowerShell, C#, VBScript, XML, JSON, SOAP, REST, MEGA HOPEX, IIS, SAML2, SQL Server

AG2R La Mondiale
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.

Italic
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.

Stack : Linux, Bash, Apache, PHP, MySQL/MariaDB, SSH, rsync, OVH, Ruby, EBICS

Selected projects

wren Odin, WebAssembly, Wasmtime, Direct3D 11, Web IDL
  • Web browser written in Odin where WebAssembly is the only execution engine. Page scripts run in a JavaScript engine written in Odin, compiled to Wasm and run by Wasmtime, one instance per page with a memory cap and a deadline. Pages can also call Wasm modules directly; the web APIs are described once in Web IDL, and a generator produces the host bindings, the guest SDK, the documentation, and the conformance tests. Everything else is a real engine: HTML (Lexbor), modern CSS, shadow DOM, block, inline, flex, grid, and table layout, Direct3D 11 GPU rendering, and DirectWrite text.
sacha.house Go, templ, Datastar, Tailwind CSS, WebAuthn, Nix
  • 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 Nix, NixOS, flake-parts, systemd, containers
  • 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 Svelte 5, SvelteKit, Tailwind CSS
  • I developed this image upload, organization, and browsing application with Svelte 5 and SvelteKit.
clockin.sacha.house Angular 22, Fastify, TypeScript, Drizzle ORM, SQLite, NixOS
  • 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, Java, Maven, Gradle, Nix, GitHub Actions
  • 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.

https://sacha.house/projects

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 · mrtg-autoinstall · electrorustogram

Experiments : htmx.sacha.house · Rust Testground · Win32 Trainer · Rudimentary File Explorer

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

Publications

Wren: a browser where WebAssembly runs everything
Design draft for chat.sacha.house
HTTP Benchmark of sacha.house
Homelab Architecture Diagram
Make your Windows PowerShell experience feel like Linux

Languages

French: native · English: bilingual professional and technical proficiency