Principal Engineer
- Ingénierie
- Montréal, Canada
- Temps plein
- Télétravail possible
L’ingénieur principal sur PDF to Order, l’app Shopify qui lit les bons de commande que les clients d’un grossiste envoient par courriel et crée des commandes provisoires Shopify qu’une personne approuve. Vous porteriez la précision de l’extraction et du rapprochement, la fiabilité de la chaîne derrière, et les écritures vers Shopify, Katana MRP, Odoo et QuickBooks. Petite équipe, donc un poste très concret avec une vraie autorité d’architecture, pas un poste qui relit le code des autres.
Ce qui est difficile : la précision est le produit. Notre taux d’erreur mesuré est de 0,5 % contre environ 3 % en saisie manuelle, soit 6 fois moins, avec une personne qui approuve chaque commande, et défendre ce chiffre veut dire absorber des documents que personne n’avait prévus, à la fin du mois d’un client, devant la personne à qui on avait promis du temps gagné. Aucune suite de tests ne couvre la paperasse des autres. Le travail consiste à bâtir des systèmes qui échouent de façon vérifiable, et à assumer l’indice de confiance plutôt que de faire une supposition silencieuse. Notre programme d’ingénierie actuel est publié sur la page feuille de route, donc vous pouvez juger le travail avant de postuler plutôt qu’après.
Ce que vous feriez
- Porter la précision de l’extraction et du rapprochement de bout en bout, mesurée sur de vrais documents clients et non sur un jeu de référence
- Concevoir la couche de rapprochement : codes de pièces de l’acheteur, références de catalogue désuètes et descriptions en texte libre résolues contre un catalogue Shopify avec un indice de confiance, sur Postgres avec recherche vectorielle
- Garder la chaîne honnête : des files de traitement qui réessaient vraiment, des écritures idempotentes, les limites d’appel de l’API Admin de Shopify, et une surveillance qui nous avertit avant le marchand
- Bâtir et maintenir les écritures vers Shopify, Katana MRP, Odoo et QuickBooks, ainsi que les flux n8n qui tiennent les jointures les plus ingrates
- Livrer ce qui est en cours : des instructions d’extraction par compte en langage courant, les tableaux de lignes qui se brisent à la fin d’une page, les notes tapées dans le corps du courriel à côté de la pièce jointe, et un second modèle d’analyse évalué face au modèle actuel
- Fixer la frontière de la révision humaine, décider ce que le système peut faire en silence et ce qui doit s’arrêter pour une personne, puis rendre cet arrêt utile
- S’asseoir avec les marchands sur les documents qui ont échoué, et changer la conception après cette conversation plutôt que de la défendre
- Élever le niveau du reste du travail d’ingénierie par la revue, la spécification et le travail en binôme, pas par une couche de gestion
Ce qu'il nous faut
- Assez d’expérience en production pour avoir porté un système de bout en bout, garde incluse, plutôt que des composants d’un système
- TypeScript et Next.js, puisque l’app et ce site tournent tous les deux dessus
- Modélisation de données relationnelles dans Postgres, et de l’aise avec les files, les reprises, les rattrapages et les tâches de fond
- Du travail concret avec les LLM : des prompts sous gestion de version, une évaluation sur de vrais intrants, la gestion des mauvaises sorties, et le jugement de savoir quand une règle déterministe bat un modèle
- De l’intégration contre des API que vous ne contrôlez pas, y compris les parties non documentées et celles qui changent sans préavis
- Une préférence pour retirer une étape plutôt que de l’instrumenter, et aucune allergie à parler avec la personne qui fait la saisie
Un atout
- Le développement d’apps Shopify, surtout les objets B2B : entreprises, catalogues, listes de prix et conditions de paiement
- De l’expérience ERP ou MRP avec Katana, Odoo, NetSuite, Business Central ou l’équivalent
- L’extraction documentaire à l’échelle : qualité de numérisation, structure de tableaux, documents multipages, conversions caisse et paquet
- Du travail de sécurité et de conformité, puisque l’attestation SOC 2 Type II est en cours
- L’anglais, parce qu’une partie des marchands et beaucoup de leurs documents sont en anglais