Senior Software Engineer
Il y a 8 heures
Lyon, Auvergne-Rhône-Alpes, France
Hackuity
Temps plein
Gratuit avec email ou Google
Enregistrez cette offre et organisez votre recherche
Créez un compte gratuit pour enregistrer des offres d'emploi, créer des alertes et revenir à cette liste depuis votre tableau de bord.
Gratuit avec email ou Google
En continuant, vous acceptez nos Conditions d’utilisation & Politique de confidentialité.
À propos
du poste Vous rejoindrez l’équipe Intégrations : 3 ingénieurs et 1 tech lead sur un périmètre qui va du cadrage du besoin client jusqu’à la mise en production d’une pipeline qui doit ingérer des dizaines de millions de vulnérabilités par job de façon fiable et continue. Hackuity agrège, normalise et priorise les vulnérabilités provenant de tous les outils de sécurité utilisés par nos clients. Votre équipe construit et maintient les composants qui alimentent la plateforme : 100+ scanners et outils de sécurité, chacun avec son propre modèle de données, qu’il faut tous réconcilier dans un schéma commun unique. Nos pipelines traitent jusqu’à des dizaines de millions de findings par jour, avec une empreinte mémoire et un temps d’exécution qui doivent rester maîtrisés — aussi bien en SaaS qu’on-premise. Le périmètre de l’équipe couvre trois domaines : Hackuity Connectors (HyC) — l’application Python qui s’interface avec 100+ scanners et outils de sécurité et alimente la plateforme en données. La base de connaissances — les pipelines qui récupèrent la threat intelligence auprès de nos partenaires et de sources ouvertes, utilisée pour enrichir les assets et les vulnérabilités tout au long de leur cycle de vie. Les services orientés client — la gateway qui permet aux clients de connecter Hackuity SaaS à leur environnement interne. Responsabilités
• Contribuer au passage à l’exécution durable Nous migrons l’exécution de nos processus d’intégration vers un moteur d’exécution durable — pour améliorer la fiabilité, la qualité et la scalabilité, tout en restructurant l’enrichissement de la base de connaissances. La bascule est décidée dans son principe, mais pas dans ses détails.
• Piloter la mise en œuvre sur l’ensemble des connecteurs existants
• Prendre en charge l’évaluation du moteur et les arbitrages architecturaux
• Définir les patterns qui feront référence pour l’équipe : idempotence, reprise sur échec, versioning des workflows
• Concevoir et fiabiliser la chaîne d’intégration Le parc compte 100+ connecteurs, chacun adossé à un modèle de données distinct. C’est un travail de modélisation de domaine et de réconciliation, pas la répétition d’un même pattern d’implémentation.
• Concevoir de nouveaux connecteurs de bout en bout : lecture de la documentation API du fournisseur, spécification, implémentation, tests d’intégration
• Modéliser le domaine correctement : finding, asset, sévérité, logiciel vulnérable, chemin d’attaque…
• Faire évoluer et fiabiliser le parc existant
• Gérer des volumes élevés avec une empreinte mémoire maîtrisée : générateurs, parsing XML en streaming, multitâche coopératif
• Contribuer à l’observabilité : métriques Prometheus, logs JSON structurés, statistiques d’exécution
• Élever la qualité, élargir l’influence de l’équipe
• Écrire des tests d’intégration avec notre framework maison et pytest
• Faire respecter la chaîne qualité : ruff, mypy (strict sur les modules cœur), pylint, uv
• Élever le niveau de l’équipe : revues de code approfondies, patterns de référence, partage de connaissances via des tech talks internes et de la documentation
• Être le partenaire technique du Produit : challenger les besoins avec une véritable analyse de faisabilité, proposer les alternatives qui maximisent la valeur livrée, éclairer les arbitrages du cycle suivant
• Travailler avec le Support pour diagnostiquer des cas clients réels ; s’aligner avec le Backend sur le contrat d’interface
• Sortir occasionnellement de votre périmètre, vers le backend et le frontend de la plateforme Ce que nous recherchons
• Must-have
• Solide expérience Python en production (environ 5 ans et plus), sur du code maintenu dans la durée
• Réelle maîtrise du Python moderne : typage statique (mypy), dataclasses, générateurs et itérateurs, Pydantic 2.x, asyncio
• Forte expérience de l’intégration d’API tierces : REST, authentification (OAuth2, tokens, clés API), pagination, rate limiting, gestion des erreurs, et traitement de données incohérentes
• Des réflexes de fiabilité pour du travail long et distribué : idempotence, retries et backoff, reprise sur échec, gestion des échecs partiels. Que vous ayez construit cela vous-même sur des files et des schedulers ou utilisé un moteur dédié, vous savez pourquoi c’est difficile et vous vous y êtes déjà frotté
• Une véritable culture du test et de la qualité : pour vous, une intégration sans tests n’est pas terminée Le processus de recrutement
• Échange général avec Laure, notre Office Manager (30 min)
• Étude de cas en direct avec le Tech Lead Intégrations et le Delivery Manager (45 min d’analyse de cas + 60 min d’entretien technique)
• Entretien final avec Wilfrid, notre Head of Product & Engineering (30 min)