
2023 → present · Paris, France (75% remote)
Edenred
Dev Lead .NET / Flutter
Global employee-benefits leader · 60M+ users · 45 countries
LinesBackend .NETLeadershipCloudAI
Highlights
- Joined Edenred+, the single app replacing Edenred’s country-specific mobile apps, and took the lead of the Cards feature team two weeks later: two Flutter developers, two .NET developers, a dedicated PO and QA, and himself as a full-stack developer.
- Saw his team’s scope grow over the years: cards first, then payments, transactions and, more recently, card delivery tracking.
- Owns the architecture choices (DDD, CQRS, microservices) and documents them (BPMN, data models, interface contracts) to help the PO get tickets ready, then validates every pull request that touches the team’s microservices.
- Built AI into how the team works: dedicated skills, GitHub Copilot approved at group level, and Claude agents plugged into Azure DevOps pull requests to improve review quality and speed.
- Takes turns as delivery manager for all four feature teams: shipping each release to production with QA, and monitoring production through the Datadog dashboards and Teams alerts he set up.
I joined Edenred on a project that changed how it builds mobile apps: replacing one app per country with a single app for all of them, Edenred+.
One app per country, a model at its limits
Historically, Edenred shipped a separate mobile app in each country. That meant as many apps to maintain as there were countries, and the model was no longer viable.
The company decided to try something else in-house: build one new app that could serve every country. A small team of a few people was set up for it, called Smarter. Within a few months, it had grown to around fifty people. Edenred+ is being rolled out gradually and has 2.5 million users today.
Leading the Cards feature team
I arrived at that point. Mobile app development was split into four feature teams, and I joined the one in charge of card management. Two weeks later, I was offered the lead of the team, and I accepted.
The team has two Flutter developers, two .NET developers, and a dedicated PO and QA. I am full stack myself, on .NET and Flutter, but I spend about 90% of my time on the C# backend.
I work closely with the PO and the QA every day. Whenever the PO has a question, I am their point of contact on the team. I also help the QA make sense of certain test results, load tests in particular.
The scope grew over the years. Payments were added to cards, then, several months later, transactions. More recently, the team also took over delivery, meaning the tracking of card shipments.
Architecture, documentation and code review
I own the team’s architecture choices. The backend runs on .NET microservices designed with DDD, CQRS, MediatR and Service Bus, on MongoDB and SQL Server. On mobile, the Flutter app relies on BLoC, use cases and Atomic Design.
I write the architecture documents: BPMN for processes, and database diagrams with Vertabelo. I also document new endpoints and interface contracts. The goal is to help my PO get our tickets ready, on the technical side as much as the functional one.
I also have to protect all the code that goes into our microservices. That is why I am the PR Validator: every pull request goes through me before it is merged.
AI in the team’s daily work
Over the past year, we have built AI into how the team works, with skills tailored to our needs. At group level, we use GitHub Copilot, the tool approved by Edenred.
Claude agents are also plugged into our pull requests in Azure DevOps. They improve the quality of code reviews and cut the time they take.
Delivery manager for the tribe
I also hold a rotating role across the tribe, for all four feature teams. Roughly every four sprints, I become delivery manager. I then own the current release and ship it to the different environments, working closely with QA, who give the go.
I monitor production for the SRE team, during each new release deployment and also day to day. I set up Datadog boards that show the state of production at a glance, with dashboards dedicated to my team. An alerting system automatically posts a message in a dedicated Teams channel whenever an event occurs, which keeps us proactive.
Working in English
I act as the link between the CTO, the PO and my team, running the shaping and refinement sessions.
Every morning, a tribe daily brings together the members of the User tribe, based in France and Romania, in English. My team is French-speaking, but most of my meetings are cross-team, with other teams, to discuss dependencies and high-level shaping. Those are held in English: about three quarters of my meetings overall.
Tech stack
- .NET 10
- C#
- DDD
- Clean Code
- CQRS
- MediatR
- Microservices
- Service Bus
- MongoDB
- SQL Server
- Flutter
- Dart
- BLoC
- Atomic Design
- Datadog
- SonarQube
- BPMN
- Azure
- Azure DevOps
- MuleSoft
- SAFe