I build the backend and the integrations behind e-commerce.
Symfony and Laravel backends, Node.js services, Shopify integrations, feed and inventory pipelines, middleware to ERP, PIM and logistics. Around them: GitLab CI/CD, monitoring, n8n automations and OpenAI API integrations. Freelance or permanent, for agencies, e-commerce companies and product teams.
Freelance, Tunis. Backend and integration work for agencies, e-commerce companies and product teams.
Selected work
01
italist
luxury fashion marketplace
2026
25+
partner catalogs
A Shopify connector for 25+ partner catalogs
Problem
Partner brands and boutiques each ran their own Shopify store. The marketplace needed their products, stock and prices live on its own catalog without manual work, and without the usual sync bugs: phantom out-of-stock, recycled SKUs, price drift.
What I built
The multi-tenant Shopify app and ingestion pipeline that pulls products, inventory and locations from each partner store, normalizes them (size systems, currencies, duplicate SKUs) into the marketplace catalog model, and keeps stock and pricing in sync through webhooks. Metafield schemas for size systems and pricing data, per-partner token and scope management, recovery from API errors, and a daily audit job that flags anomalies before customers see them.
Stack
Node.js, TypeScript, PostgreSQL, RabbitMQ, Shopify Admin API (REST and GraphQL), webhooks, cron
Outcome
25+ partner catalogs and 150,000+ products integrated; the marketplace catalog went from about 50,000 to 200,000 SKUs and order volume rose with it. A new partner is onboarded by installing the app, without custom development.
italist.com, the arrivals rail: partner products live on the marketplace, stock and prices kept in sync by the connector. Captured November 2026.
How the connector works
hover a node for what it does, click for one example itemtap a node for one example item
Every partner catalog arrives in a different shape. The job is making them one catalog without lying about stock or price.
02
CosaVostra
digital agency, Paris
2023 to 2026
Lead Full Stack Developer
Shopify middleware for two French DTC brands
Problem
Desjoyaux, a French pool-equipment manufacturer, and Rouje, a Paris fashion label, both sold on Shopify but ran the rest of the business elsewhere: an ERP for orders and stock, a PIM for product data, logistics for fulfillment, point-of-sale systems for in-store sales. Nothing talked to anything.
What I built
Middleware services between Shopify and those systems. Orders out to the ERP, stock and prices back into Shopify, product data and media from the PIM into the catalog, fulfillment sync with the logistics side, stock sync with the point of sale. Retries, idempotency, alerting and a reconciliation report so the client could trust the numbers. Led the agency's backend team, reviewed their code, owned the architecture and the GitLab CI/CD pipelines.
Stack
PHP (Symfony), MySQL, Shopify Admin API and webhooks, SAP, Salesforce, Extrabat, DMDLog
Outcome
Zero manual re-keying on the client side: orders, stock, product data and shipments move between Shopify and the business systems without anyone copying them.
Shopify to ERP, PIM, 3PL and POS through the middleware. Desjoyaux: SAP (ERP), Salesforce (CRM), Extrabat, DMDLog. Rouje: PIM, 3PL, point of sale.
03
Ritz Paris
luxury hotel, Paris
2025, with CosaVostra
5,950
cards created
Personalised video greeting cards for the Ritz Paris
Problem
For the 2025 new year the hotel wanted a greeting card its guests could compose online and share: a surrealist character assembled from elements drawn by the illustrator Jonathan Burton, a personal message, a prize draw, all reachable from a newsletter and a dedicated page. A static visual would not do; a video generated for each visitor would, if it stayed fast and looked right every time.
What I built
The generation pipeline and the front end. Each card is rendered on request: the visitor's choices (face, bust, legs, arms, accessories, then a title and a message) are composed by FFmpeg into an animated GIF video, synchronously, behind a PHP 8.3 and Twig application. The three-step flow in Alpine.js (personalise, enter the draw, share), with the Web Share API on mobile so the video goes straight into WhatsApp, Messages or Instagram, next to email, download and link. Entries fed the newsletter through the provider's API. I also owned hosting, deployment, CI and the performance work for the launch.
Stack
PHP 8.3, Twig, Alpine.js, FFmpeg, Web Share API, GitLab CI/CD
Outcome
5,950 cards created and 41,000 emails sent, twice the initial target, with no paid amplification. Best Brand Editorial Innovation, Trophées Content' Innovations 2025 by All for Content.
The customisation step, from the award submission video · Trophées Content' Innovations 2025, Meilleure innovation éditoriale de marque
2025 · EDI M3, publisher of La Semaine (Metz, Nancy, Thionville) · TypeScript, React Native, WordPress backend
Live news feed, the weekly edition with offline PDF reading behind a subscription, browsing by city, native sharing. Published on the App Store and Google Play.
Working with me
Engagements
Project builds (integrations, APIs, Shopify apps), fixes and maintenance, or embedded in your team for backend work, code review and architecture.
Availability
Freelance, part time or full time. Open to a permanent position. Available now.
Stack
PHP 8 (Symfony, API Platform, Laravel), Node.js, TypeScript, PostgreSQL, MySQL, RabbitMQ, Shopify Admin API and webhooks, GitLab CI/CD, SonarQube, Sentry, n8n, OpenAI API.
Where
Remote from Tunis, CET.
Languages
French and English, both C1, written and spoken.
Invoicing
Through my own company, Trey Labs, in EUR.
Response
Within a day.
Worked with CosaVostra (Paris), Atelier Blend (France), italist (luxury marketplace), and through CosaVostra with Ritz Paris, Desjoyaux and Rouje.