— 11 roles, newest first.
stack:
TypeScriptNode.jsJavaScriptReactVue.jsNext.jsNuxt.jsPHPSymfonyLaravelPostgreSQLMySQLRedisDDDVitestViteAWSVercelJSNADJSNSDMaintenance and hardening work on an existing production app:
fixing bugs, refactoring legacy code, and security hardening (SQL injection prevention, brute-force protection), rather than greenfield building.
Carrefour Bank (AI document verification) A more substantial build:
an AI-powered document verification pipeline where users upload identity/financial documents (ID, RIB, Passport, Permis, tax notices), and the system auto-verifies and extracts data using Gemini. Key pieces:
Dedicated, document-type-specific prompts to check validity and expiration dates
Redis caching keyed on a per-file hash to avoid reprocessing duplicate uploads (cutting cost and latency)
Built an AI document verification pipeline for Carrefour Bank using Gemini Users upload ID, RIB, Passport, Permis, tax notices Document-specific prompts per type to validate and extract fields (incl. expiration dates) Redis caching by file hash to skip reprocessing duplicate uploads — cut cost and latency
About FMC Production
FMC Production is a French company specializing in the live and on-demand broadcast of scientific content on the web, building training platforms for Learned Societies and Laboratories.
My Role — Tech Lead, Web Team
As Tech Lead for the web development team, I led the design and delivery of an e-learning solution ("Solution E-learning") with an integrated payment system for purchasing training/formations, working in close collaboration with a UX team based in France.
Core features delivered across the platform:
Live events & replays — broadcasting and on-demand playback of scientific/medical congresses
Watch-time tracking & KPIs — event tracking on live and replay sessions (connection time, watch duration, drop-off points, session completion) to generate per-company/per-client engagement KPIs and attendance reporting
Chat & notification system — real-time interaction and event alerts for attendees
Authentication — simple login plus SSO integration
Payment system — enabling purchase of formations/training content
Mailing — email campaign and notification infrastructure
Search management — content/event discovery across the platform
Dashboard — admin/user-facing management interface
Platforms shipped under this role:
Carrefour Links Project
Category Management Collaboration to provide 360° view on their category (performance + projects)
Provide access to useful & quality CRF performance data
Tarkett's e-commerce website https://tarketthome.com
Architecting TypeScript/Node services and Next.js + Nuxt frontends for product teams.
Own the boundary between design system and app code, push for DDD-flavored modules and high test coverage on anything that touches money or auth.
That a well-drawn module boundary saves more time in review than any lint rule — once the domain layer stopped importing framework code, onboarding new contractors got a lot faster.
Nespresso's e-commerce platform
• Front-End development (Typescript, VueJS)
• Work in agile setting (Scrum)
• Development of dynamic and reusable UI.
• Code refactoring.
• Unit Testing and E2E.
• SEO improvement.
• Accessibility.
• Analytics (Google Analytics)
Nespresso's e-commerce platform (Next).• Back side development (PHP, DRUPAL)• Work in agile setting
• SIAM Migration & Theming.
• Live video management.
• Social Network binding.
Technical Environment:
Built and scaled Symfony + Vue apps on Postgres & Redis for a dozen client products. Owned CI pipelines, caching layers and API design, and mentored two junior devs through their first production incidents.
Cache invalidation is a people problem before it is a code problem — most of the stale-data bugs traced back to two teams disagreeing on what a cache key should represent.
Shipped Laravel/MySQL backends and my first React frontends for an early-stage SaaS. Learned to move fast without breaking the important things, under a founder who reviewed every PR personally.
Ship the boring version first. The feature that took two days to "do right" almost always got redesigned within a month anyway once real users touched it.
Started out fixing bugs in a legacy PHP admin panel, then graduated to small features. Learned Git, code review etiquette, and how to read a stack trace without panicking.
Asking "why" about an existing pattern before changing it saved me from breaking things I didn't know were load-bearing more than once.