Head of Web Development — RCF Link to heading
Lyon | Since 2024
Technical lead of a 3-developer team, responsible for the architecture of a multi-channel media platform: public site (Nuxt), editorial back-office (Drupal), mobile app, API, AWS infrastructure.
Orders of magnitude: 65 local radio stations broadcast, 460,000 monthly sessions, 150 back-office journalists, around ten microservices. Production release every two weeks for four years.
My role spans every layer of the system: architecture diagnosis and trade-offs, performance optimization (database, API, front-end), integration design, data migration. I work on an existing production system: I understand it before I change it, and I measure the impact of every change. The work below details a few concrete cases — context, decision, result.
Role in the team. Two developers with pure-dev profiles apply the concepts and build; I own the architecture and the technical trade-offs. We work as a team on ~90% of projects — sprint planning, twice-weekly stand-up, code reviews, documentation. Cross-cutting or higher-risk pieces (serverless infrastructure, data migration) are taken on solo, deliberately: it frees the team for the projects tied directly to the organization’s business. Technical support — reviews, skill growth, shared architecture decisions — is part of the role as much as the code.
Database optimization — AWS RDS / MariaDB Link to heading
The database hit 100% CPU 3–4 times a week — unpredictable, 30 to 90-minute spikes — causing 500 and 504 errors on the back-office. The standard reflex would have been to scale the instance up. Measurement (RDS Performance Insights, CloudWatch) showed it was already oversized and that a Drupal cache rebuild was saturating it — scaling up would have cost more and solved nothing. Three weeks of targeted work: indexing, rewriting the costliest queries, fixing access patterns.
Result, measured one month before / one month after: CPU load down 54%, residual spikes at 50 average active sessions instead of 400, 504 errors sharply down. The lower load now makes a cost-reducing instance downsizing possible — sizing analysis in progress.
Serverless donation gateway — AWS Link to heading
Two external providers — a donation platform and a CRM — could not exchange data, for a flow representing over 50% of the station’s funding. Designed and built alone, in two months, a serverless gateway described entirely as AWS CDK (infrastructure as code) and engineered for failure rather than the happy path:
- API Gateway: entry point (webhook emitted on each donation).
- Lambda: data transformation between the two formats.
- DynamoDB: deduplication by transaction ID.
- SQS: decoupling and retry (3 attempts), dead-letter queue with e-mail alert for manual handling.
- Secrets Manager and dedicated IAM policies to isolate each provider’s tokens.
In production since early 2026: ~10,000 donations processed, zero incidents, zero duplicates, €4/month running cost.
Data migration — 2025 merger Link to heading
When the organization merged with another radio, its full editorial dataset had to move onto our platform — with no usable export on the source side and incompatible data models. Full extraction from their API (Python, pagination, retry), transformation into a JSON pivot format, loading through the existing Drupal Feeds module rather than a custom importer, batch migration with replayable steps validated with the business teams.
Result: 4,000 episodes, 1,500 articles and several hundred GB of media migrated, alone — no data loss, ahead of deadline, final cut-over with SEO redirects. Source platform decommissioned.
Mobile app rebuild — React Native Link to heading
The app was at end of life, a rebuild was needed, with no deep in-house mobile expertise. Rather than improvise it: an experienced React Native contractor to lay the foundations, the in-house team developing alongside them, and personal ownership of the API resources the app consumed. Shipped May 2026 on Android and iOS — 4/5 on Android.
Also during this period Link to heading
- Front-end migration Nuxt 2 → Nuxt 3 → Nuxt 4 and full TypeScript adoption — end of support, foundation realigned on maintained versions.
- Backend: up to 75% response-time reduction on the slowest API endpoints (SQL queries, caching strategy).
- Operations: DNS, TLS certificates and local nginx. The cloud infrastructure (Kubernetes on AWS, Redis, RDS, EC2) is run by a DevOps provider.
LLMs in the workflow Link to heading
LLMs are part of my daily work as accelerators, under a strict frame, with Claude Code in particular. Concrete uses: infrastructure reasoning, code optimization, test generation, problem investigation. The model analyzes, generates and critiques hypotheses, produces a plan broken into batches; solution validation and technical trade-offs stay human. This workflow was applied as-is to the RDS investigation above.
Fullstack Developer — RCF Link to heading
Lyon | 2022 – 2024
- Technical SEO overhaul with an SEO provider: +30% SEO visits in one year.
- Mobile app stabilization (React Native) under a store deadline (Android API level 35): ~50% fewer crashes (Crashlytics); set up a Cognito-based authentication service.
- CI/CD: built the pipeline behind the two-week release cadence still running four years later.
- Backend PHP architecture refactor: migrated procedural legacy code to entity classes, factored calls and standardized API responses — markedly better readability and maintainability for the team.