Retour

2023 - 2026 · Ingénieur fondateur

CuroWork

Ingénieur fondateur d'une plateforme B2B de pilotage de la charge de travail pour les équipes finance et back-office. Pendant trois ans, j'ai pris en charge l'architecture, le développement, les intégrations et les fonctionnalités d'IA de bout en bout.

14
contrats B2B simultanés
3 ans
responsable de l'architecture
2
systèmes de calendrier synchronisés

Contexte

CuroWork donne aux équipes finance et back-office une visibilité sur leur charge de travail : à quoi l'équipe consacre réellement son temps, qui arrive à saturation, comment le travail prévu se compare au travail accompli et quelle part de la semaine a été absorbée par des demandes imprévues. J'ai rejoint l'entreprise comme ingénieur fondateur et pris en charge la plateforme de bout en bout : architecture, réalisation, intégrations tierces et fonctionnalités LLM mises en production.

Ce que j'ai construit

  • Une architecture multi-tenant sur PostgreSQL et Supabase, avec isolation au niveau des lignes et configuration de chaque client modélisée sous forme de données
  • Une synchronisation bidirectionnelle avec Google Calendar et Microsoft Graph : lecture et écriture, OAuth par client et gestion complète des événements récurrents
  • Un moteur de planification des tâches récurrentes
  • Des fonctionnalités LLM en production : synthèses structurées du travail à partir des données d'activité et suggestions de tâches fondées sur des embeddings, grâce à une recherche sémantique dans l'historique propre à chaque client

La difficulté principale

Un schéma par client facilite la compréhension de l'isolation, mais le coût des migrations augmente linéairement avec le nombre de clients. Dans une petite équipe, le problème apparaît à trente clients, pas à cinq. L'isolation au niveau des lignes a déplacé la complexité vers la discipline des requêtes et la couverture de tests : un coût payé une seule fois, plutôt qu'à chaque déploiement.

Les intégrations de calendrier étaient également exigeantes. Google et Microsoft ne traitent pas de la même manière les règles de récurrence, les fuseaux horaires ni la modification d'une seule occurrence dans une série. Assurer une synchronisation bidirectionnelle avec les deux systèmes, pour chaque client, tout en gérant des jetons OAuth qui expirent toujours au mauvais moment, est nettement plus complexe qu'il n'y paraît.

Un workflow en situation réelle

Une équipe finance et comptabilité a modélisé dans CuroWork sa checklist de clôture mensuelle, attribué les responsables et estimé les heures, puis utilisé la vue du workflow pour repérer les retards invisibles. Au cours des trois mois couverts par cette démonstration, la durée de clôture est passée de 20 à 12 jours, avec moins de tension en fin de mois et davantage de capacité pour les travaux stratégiques.