Career

  • Backend Engineer at Affluences at Affluences (Sep 2025 - Present)
    Apprenticeship · On-site

    I'm an apprentice backend developer on the Internal Services team at Affluence, a French company that measures and forecasts real-time occupancy for cultural and public venues. The platform runs on proprietary IoT sensors feeding a microservice architecture in Node.js and NestJS, with MySQL, Kafka and Kubernetes underneath, and it serves around 1,800 sites. Most of my work sits at the boundary between the service layer and the data: query plans, indexing strategy, schema design, and the architectural decisions that follow from volume.

    Query optimisation in stats-service, which aggregates sensor history for customer dashboards. The getAttendanceStatsForAPeriod resolver filtered on site_id through JSON_EXTRACT, so MySQL could not use the composite primary key on (measuring_set_id, record_datetime_utc) and fell back to a full table scan over millions of rows. Thirty-day queries took over ninety seconds; a one-year query timed out entirely. I replaced the single query with a two-step lookup: resolve the site's measuring sets through sensors-service first, then run an index seek on the composite key. The extra network hop pays for itself many times over. Thirty days went from ninety seconds to forty milliseconds, and a full year now returns in 220 milliseconds instead of crashing. Shipped to production in October 2025.

    I'm completing an engineering degree at CNAM Paris (DICASI, Informatique et systèmes d'information) alongside the apprenticeship.

  • Backend Engineer at Crealo at Crealo (Mar 2025 - Jun 2025)
    Internship · On-site

    Back-end assistant on an Express/TypeScript, Docker, AWS, MySQL and Rust stack.

    Built OpenID, OAuth 2.0 and FTP middlewares easing third-party integrations (Bexio, Dilisco, Sage).

    Data scraping in Rust and TypeScript for the client team, plus R&D on AWS Textract.