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.
See where the close is drifting before it becomes a delay.
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 rend l’isolation explicite, mais augmente le travail de migration à mesure que le nombre de clients croît. J’ai choisi un schéma partagé avec isolation au niveau des lignes pour centraliser les migrations. Ce compromis exige une vigilance continue sur les requêtes, les règles d’accès et la couverture de tests à mesure que le produit évolue.
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.