Stéphane ERARD
Pragmatic Full-Stack Software Architect
I turn ideas into products.
I'm a self-taught architect and hands-on developer with 20+ years of experience building B2B and B2C products. I work across C#, .NET, TypeScript and PHP, from application architecture to the tools that help a team deliver.
Nice, France · French & English · Available for full-time remote work
Selected Work
BIM&CO · 2020–2025 · Product engineering
Faster indexing, testable systems
Problem. Slow indexing and a core feature that needed to evolve.
Contribution. Refactored the implementation, rebuilt it around asynchronous processing, and scaled it with workers and queues.
Result. Faster indexing and around 800 existing tests restored to a runnable suite.
C# · .NET · Workers · Kubernetes · Testing
Qwant · 2015–2017 · Developer infrastructure
Scalable Software Factory
Problem. Repeated setup and configuration across projects and environments.
Contribution. Designed and built Qwapp for VM provisioning and configuration, with Docker Compose orchestration of shared engineering services.
Result. Reproducible environments and shared tooling for development, testing and delivery.
Vagrant · Docker Compose · Puppet · PowerDNS · GitLab · Jenkins
FrenchExDev · Ecosystem 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 · Used in this site
Connect intent to verification
Problem. Requirements, implementation and tests can drift apart.
Contribution. Built typed models and tooling to inspect their links, execute verification and report the evidence.
I’m also experimenting with recovering candidate requirements from existing code and tests, using AI-assisted analysis and human review to clarify behavior, identify gaps and guide refactoring.
Result. A TypeScript implementation used here, alongside a C# implementation with its own documented scope.
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
How I Work
The thread running through my work is reducing the distance between what we intend, what we implement, and what we can verify.
- Understand the need. Clarify the problem, constraints and observable acceptance criteria; revise them as we learn.
- Build for change. Choose useful abstractions, clear boundaries and reusable modules. Automate recurring work when it earns its place.
- Verify the result. Use tests, coverage, mutation testing and review for the questions each can answer. Keep decisions and execution evidence alongside the code.
Anything-as-Code is the common thread: I turn recurring concepts and constraints into typed, versioned models that tools can inspect, compose and verify. Requirements-as-Code applies this to software intent. Diem extends the approach to applications and their development environment, working toward a reproducible HomeLab described and controlled from C#.
In AI-assisted work, AI proposes, tooling checks, people decide. Business intent and acceptance remain human decisions; generated code and tests receive the same review as other contributions.
Explore Further
- Experience and skills: professional experience and technical skills.
- Projects and tooling: implementations, architecture and experiments.
- Articles and research: technical writing and longer analyses.
Get in Touch

I'm looking for a full-time remote role where I can contribute hands-on to product development, architecture and the way a team delivers software. I work in French and English and am based in Nice, France.