I build the unglamorous machinery that moves data: web scraping behind WAFs, structured extraction from PDFs and scanned reports, spreadsheet and CRM pipelines, and API integrations that run on a schedule without anyone watching them.
What I do, day to day:
- Web scraping & crawling — Python, requests / BeautifulSoup / Playwright, including sources that fight back
- Structured extraction — annual reports, invoices, catalogues → clean CSV / Google Sheets / Postgres
- Data cleaning & enrichment — pandas, dedupe, normalisation, company and contact list building
- Automation pipelines — n8n, Make, Zapier, GitHub Actions, cron; webhook-driven, with failure alerting
- API integrations — REST, Notion API, Stripe, LLM APIs (Claude, OpenAI, RAG)
- Full-stack MVPs when the data needs a face — Next.js / React / FastAPI / Supabase
What makes this different: I ship with AI coding agents in the loop, and I have open-sourced the infrastructure that keeps them honest in production — unattended scheduled runs with a distributed lock across machines, guardrail hooks that block dangerous commands and hardcoded secrets, and alerting that fires when a job silently returns nothing. github.com/yvoolab
That last part matters more than it sounds: most automation fails quietly. A scraper that returns zero rows looks exactly like a day with no data. Much of what I build exists to tell those two apart.
Based in Paris (CET). Asynchronous by default — I do not need meetings to make progress. English, French, Chinese.