Skills
I build software products and the tools that help teams develop, test and operate them. My work combines C#/.NET and TypeScript, a substantial PHP/Symfony background, and a sustained focus on architecture, automation and quality.
Self-taught, with 20+ years of hands-on experience. The pages below connect these skills to professional work, open-source contributions and ongoing projects.
Product Engineering
Turn a business need into an application, connect its components and improve existing systems through manageable changes.
| Area | What I work on |
|---|---|
| C# and .NET | ASP.NET Core APIs, asynchronous workers, concurrency, Entity Framework Core, Blazor and generated clients. |
| TypeScript and Frontend | Node.js tooling, typed API integration, HTML/CSS interfaces, static publishing and browser interactions. |
| PHP and Symfony | Symfony, Doctrine, data-driven applications, CMS/CMF development, plugins and maintenance of existing systems. |
In practice: BIM&CO for asynchronous processing, APIs and incremental modernization; Diem Project for CMF contributions; this website for TypeScript and browser development.
Platform Engineering and Automation
I treat the developer environment as software to design and maintain. Recurring operations become reusable modules, with typed APIs, explicit configuration and IDE completion.
| Area | What I work on |
|---|---|
| Developer Tooling & Automation | VM and container workflows, reproducible environments, Docker Compose, GitLab/Jenkins CI, PowerShell and workstation automation. |
| Design-Time Engineering | CLI help parsing, versioned schema downloads and transformation pipelines that feed Roslyn generators, typed wrappers and configuration Bundles. |
In practice: Qwant's Software Factory connects VMs, PowerDNS and shared engineering services. Diem CMF .NET Lab develops the C# ecosystem of wrappers and serializable Bundles toward a Lab described and controlled from a C# project.
Anything-as-code. You better make it a module.
Architecture and Quality
Design useful boundaries, make behavior testable and keep requirements connected to implementation. Quality includes the clarity of an API, maintainability, useful feedback and the experience of the person using the result.
| Area | What I work on |
|---|---|
| Design Patterns & Architecture | SOLID, ports and adapters, DDD, builders, explicit result types, state machines and composable modules. |
| Architecture & Methodology | Requirements modeling, DSLs, acceptance criteria, iterative delivery and AI-assisted engineering with human review and tool-based verification. |
| Testing & Quality | TDD, unit and integration tests, property tests, static analysis, coverage, mutation testing, visual regression and accessibility checks. |
In practice: Requirements-as-Code connects typed declarations, analysis and verification evidence. At BIM&CO, I restored around 800 existing tests and built tooling to make application workflows easier to test.
Collaboration and Delivery
Problem solving and communication support the technical work: understand the need, explain tradeoffs, document decisions, help colleagues get started and improve through short feedback loops. I work in French and English, with developers, product managers, architects and test engineers.
At Schneider Electric, this included developer onboarding tools, IDE improvements and collaboration within a multidisciplinary delivery team.
View selected work · Explore projects · Professional experience