Stéphane ERARD
Software Architect — Platform & Developer Tooling
I turn ideas into products.
I turn recurring engineering rules into typed models, reusable tools and automated checks.
I'm a self-taught architect and hands-on developer with 20+ years of experience. I work across C#, .NET, TypeScript and PHP, connecting application development to the tools a team uses to build, test and deliver.
Creator of Requirement-as-code ~ PumpMe ~ QuietCli
Nice, France · French & English · Available for full-time remote work
The Problem I Work On
As projects, tool versions and environments multiply, the same decisions appear in scripts, configuration files and setup instructions. A change has to reach every place that depends on it.
I build shared models and tools that make those relationships explicit: a command has typed options, configuration has a reusable model, and a check states which behavior it verifies.
How I Work
Anything-as-Code turns recurring concepts into typed, versioned models, reducing the distance between intent, implementation and verification.
Model → Generate → Verify. I start with the simplest design that meets the need and introduce shared abstractions when recurring work justifies them.
AI proposes. Tooling checks. People decide.
New need: requirements → implementation → verification.
Existing system — experimental: code and tests → candidate requirements → human review → controlled change.
Selected Work
These professional projects show how I have turned recurring needs into shared tooling. They each have their own implementation and history.
Qwant · 2015–2017 · Developer infrastructure
Qwapp: a shared software factory
Problem. Repeated setup and configuration across projects and environments.
Contribution. Designed and built Qwapp around a common model, provisioning commands and shared engineering services.
Result. Reproducible development environments and reusable workflows for development, testing and delivery.
Vagrant · Docker Compose · Puppet · PowerDNS · GitLab · Jenkins
BIM&CO · 2020–2025 · Product and developer tooling
PfDev, generated clients and testable workflows
Contribution. Built PfDev for workstation and project lifecycle operations, generated C# and TypeScript clients, and reusable tools for testing application workflows.
Result. Faster indexing, around 800 existing tests restored to a runnable suite, and repeatable setup operations.
C# · .NET · PowerShell · OpenAPI · Workers · Testing
Schneider Electric · 2025 · Developer tooling
Versioned workstations and IDE tooling
Contribution. Delivered a scripted Windows workstation bootstrap, onboarding documentation and improvements to build tooling and an IEC 61499 IDE.
Result. Versioned setup steps and tooling maintained alongside the development workflow.
PowerShell · TypeScript · C# · IEC 61499 · Git
The System at a Glance
FrenchExDev is the ecosystem behind this approach. Requirements-as-Code applies it to software intent and verification. Diem extends it to applications and their environment, toward a HomeLab described and controlled from a C# project. Machines, services, configuration and operations become part of that description. The building blocks exist; their complete integration is still in development.
Open the component map and current implementation boundaries →
See BinaryWrapper in Practice
Versioned CLI description → generated C# API → argument array → verification.
BinaryWrapper turns collected CLI descriptions into command types. In the Dotnet wrapper, a test constructs a generated DotnetBuildCommand with directory with spaces/project.csproj as its project path. It compares the complete argument array and checks that the path reaches a simulated process as one argument.
The test specifies argument construction and forwarding. Running the underlying SDK is a separate integration check.
Volunteer Work
Independent projects, reusable tools and experiments I develop outside my professional roles.
FrenchExDev · Integration in development
Diem CMF .NET Lab
Problem. Infrastructure tools, configuration formats and project environments each need their own integration.
Contribution. Building reusable wrappers and Bundles, using C# as the language for describing machines, services and configuration.
Result. Typed APIs and configuration models, working toward a reproducible HomeLab described and controlled from a C# project.
C# · Roslyn · Packer · Vagrant · Docker Compose · Traefik
Requirements-as-Code · TypeScript used in this site
Connect intent to verification
Problem. Requirements, implementation and tests can drift apart.
Contribution. Built typed requirement models and explicit test bindings. Source analysis inspects traceability; test execution provides separate behavioral evidence.
I am also exploring the reverse workflow: AI-assisted recovery of candidate requirements and acceptance criteria from existing code and tests, followed by human review before the approved model guides refactoring or redesign.
Result. Requirements, acceptance criteria and tests become explicit, inspectable relationships.
Status. The TypeScript implementation is used by this site. C# provides declarations and registry generation; its coverage analyzer is still in development.
TypeScript · C# · Roslyn · Coverage · Mutation testing
serard.dev · Live project
A publishing system you can explore
Problem. Make a growing body of experience, projects and writing easy to navigate.
Contribution. Built a Markdown publishing pipeline, static rendering and browser interactions, supported by automated checks.
Result. The site you're using: searchable content, keyboard navigation, themes and explorable diagrams.
TypeScript · HTML/CSS · Markdown · Mermaid
Explore Further
- System and sources: FrenchExDev map, example and component catalogue.
- Documentation: a short reading path, then the technical series.
- Experience and skills: professional experience and platform, architecture and product engineering.
- This site: the TypeScript publishing system you are using.
Get in Touch

I'm looking for a full-time remote role where I can contribute to platform engineering, developer tooling and application architecture. I work in French and English, based in Nice, France.