Une fiche de poste d'ingénieur test qui liste des outils NI au lieu du travail écarte la plupart des personnes qui pourraient faire le travail. Rédigée autour du travail (instruments, montages, limites, rendement, opérateurs, données), la même annonce puise dans tout le vivier Python, qui est plusieurs fois plus grand que le vivier LabVIEW et plus jeune. Ce guide vous donne un modèle complet, une réécriture ligne par ligne de l'annonce habituelle, et les fourchettes de salaire à y joindre.
Pourquoi l'annonce habituelle échoue
L'annonce typique se lit comme un inventaire de licences : LabVIEW, TestStand, CLD souhaité, 5 ans et plus dans l'écosystème NI. Elle décrit l'outil que le dernier ingénieur utilisait, pas le problème que le prochain doit résoudre.
Ce cadrage a deux coûts. Il réduit le vivier de candidats aux personnes qui détiennent déjà une qualification en déclin, et il dit à un bon ingénieur Python avec de l'expérience en instrumentation qu'il n'est pas le bienvenu. De moins en moins d'universités enseignent LabVIEW dans leur tronc commun et la plupart enseignent Python, donc le vivier que vous excluez est celui qui grandit.
Le remède est de décrire le travail. Chaque ligne sous « indispensable » devrait être une tâche que la personne accomplira au cours de son premier trimestre, pas le nom d'un produit qu'elle doit avoir utilisé.
Ce qu'est vraiment le travail
Retirez les outils et un ingénieur test en fabrication fait six choses.
| Domaine | À quoi ressemble le travail |
|---|---|
| Instruments | Dialoguer avec un DMM, une alimentation, un oscilloscope ou un DAQ en SCPI, série ou USB. Lire une fiche technique, envoyer une commande, analyser la réponse. |
| Montages | Comprendre les pogo pins, les matrices de relais, les lits à clous et le côté mécanique de la connexion d'un DUT. Déboguer un contact intermittent. |
| Limites | Transformer une spécification en une mesure avec une borne haute et une borne basse. Discuter avec le bureau d'études de ce que la borne devrait être. |
| Rendement | Surveiller le FPY par poste et par phase. Trouver la phase qui fait échouer de bonnes cartes et celle qui laisse passer de mauvaises cartes. |
| Opérateurs | Écrire la séquence pour qu'un opérateur puisse la lancer avec une douchette et un écran, et pour que le message d'échec dise quoi faire ensuite. |
| Données | Faire atterrir chaque run à un endroit visible par l'équipe, avec le numéro de série, les mesures et le résultat, pour qu'une question client sur une unité prenne une minute à traiter. |
Aucune de ces lignes ne dit LabVIEW. Toutes peuvent être faites en Python avec PyVISA pour les instruments, le TofuPilot Framework pour le séquenceur et l'interface opérateur, et TofuPilot pour les résultats. C'est la pile que décrit le modèle ci-dessous.
Le modèle
Copiez-le dans votre page carrières et modifiez les parties entre crochets. Il est écrit pour un recrutement intermédiaire ; la section sur les niveaux, plus bas, indique quoi changer pour un junior ou un senior.
job-description.md81 lines
# Ingénieur test, fabrication (Python)[Entreprise] conçoit [produit] pour [marché]. Chaque unité que nousexpédions passe par un test fonctionnel et un test de fin de ligne surdes postes que nous concevons et exploitons nous-mêmes. Ces postes serontles vôtres.## Ce que vous ferez- Construire et maintenir les postes de test de [ligne de produits] : la séquence, les pilotes d'instruments, les écrans opérateur et les limites.- Dialoguer avec les instruments en SCPI, série et USB depuis Python (PyVISA), et écrire le plug qui encapsule chacun d'eux pour que le reste de l'équipe puisse le réutiliser.- Transformer les spécifications produit en mesures avec limites, et relire les changements de limites avec le bureau d'études et la qualité dans une pull request.- Surveiller le rendement au premier passage par poste et par phase dans TofuPilot, trouver les phases qui font échouer de bonnes unités ou laissent passer de mauvaises unités, et les corriger.- Travailler avec le concepteur de montages sur les plans de pogo pins, les matrices de relais et le côté mécanique de la connexion d'un DUT.- Écrire les instructions opérateur dans la séquence pour qu'un nouvel opérateur puisse faire tourner un poste dès son premier jour.- Garder chaque poste dans Git sous forme de texte, pour que n'importe qui dans l'équipe puisse le lire, le relire et le reconstruire.## IndispensableVous devez savoir faire ceci dès le premier jour, dans n'importe quellangage :- Lire la fiche technique d'un instrument et en tirer une mesure en SCPI ou en série.- Écrire du Python qui gère un timeout matériel sans faire planter le run.- Expliquer ce qu'est une limite de contrôle, ce que signifie le Cpk, et pourquoi une limite trop serrée coûte du rendement.- Utiliser Git au quotidien : créer une branche, commiter, ouvrir une pull request, relire celle de quelqu'un d'autre.- Déboguer dans l'atelier avec un opérateur qui regarde.## Apprécié- Expérience d'un séquenceur de test, quel qu'il soit (TestStand, OpenHTF, à base de pytest, maison). Nous utilisons le TofuPilot Framework et nous vous l'apprendrons.- Expérience LabVIEW. Nos anciens postes sont en LabVIEW et nous les passons en Python ; vous y contribueriez.- Expérience en conception de montages, en mise en route de PCB ou en firmware.- Un environnement réglementé ([ISO 13485 / AS9100 / IATF 16949]).## La pile- Python 3, PyVISA pour les instruments- TofuPilot Framework : les postes sont un procedure.yaml plus des phases et des plugs en Python, le tout dans Git- TofuPilot pour les résultats : historique des runs par unité, FPY, Cpk, cartes de contrôle- [Liste des instruments : DMM Keysight, alimentations Rigol, DAQ NI, ...]- [Fournisseur de montages], [ERP / MES le cas échéant]## Vos 90 premiers jours- Semaine 1 : faire tourner chaque poste en tant qu'opérateur, lire chaque procedure.yaml, livrer un petit changement de limite via une pull request.- Mois 1 : être responsable d'un poste de bout en bout, écrans opérateur et rendement compris.- Mois 2 : construire un nouveau plug pour un instrument dont nous n'avons pas de pilote, et l'utiliser sur un poste.- Mois 3 : reconstruire un poste LabVIEW en Python et le faire tourner en parallèle de l'original pendant deux semaines.## En pratique- [Lieu / hybride / jours sur site], dans l'atelier de production [n] jours par semaine- Rattaché à [responsable test / responsable ingénierie]- [Fourchette de salaire], [avantages]- Entretien : un appel de 30 minutes, un court exercice Python à faire chez soi avec un instrument simulé, une conversation de 45 minutes à son sujetLa section « indispensable » est celle à protéger quand quelqu'un modifiera ce texte plus tard. Chaque ligne est une tâche avec un résultat visible. Si un candidat sait faire les cinq, il apprendra votre séquenceur en une semaine.
Ligne d'annonce typique et réécriture
La colonne de gauche est ce que disent la plupart des annonces. La colonne de droite dit la même chose en termes de travail.
| Ligne d'annonce LabVIEW typique | Réécriture |
|---|---|
| 5 ans et plus de développement LabVIEW | A construit et maintenu des postes de test en production, dans n'importe quel langage |
| Certification CLD ou CLA souhaitée | Sait expliquer un poste qu'il a construit à quelqu'un qui ne l'a jamais vu |
| Expert en développement de séquences NI TestStand | A écrit une séquence de test avec des phases, des limites et une logique de réussite/échec |
| Expérience du matériel NI DAQ et PXI | A pris des mesures sur des instruments en SCPI, en série ou via une API DAQ |
| Maîtrise de la journalisation TDMS | Fait atterrir chaque run à un endroit où l'équipe peut l'interroger par numéro de série |
| Développe des rapports personnalisés en LabVIEW | Lit le FPY et le Cpk par phase et agit en conséquence |
| Connaissance de NI Vision ou NI Motion | A intégré une caméra ou un axe motorisé dans un test, quel que soit le fournisseur |
| Solide connaissance de l'écosystème NI | Lit une fiche technique et fait parler l'instrument en un après-midi |
Remarquez que la colonne de droite est plus difficile à falsifier. « 5 ans et plus de LabVIEW » est une ligne sur un CV ; « a construit un poste » est quelque chose que l'exercice de entretien d'ingénieur test : un exercice Python à faire chez soi vérifie en une heure.
Où publier et quoi dire aux candidats LabVIEW
Publiez là où les ingénieurs Python lisent. Votre propre page carrières d'abord, puis les sites d'emploi généralistes en ingénierie, les forums des communautés Python et matériel, et les services carrières des écoles d'ingénieurs les plus proches de votre usine.
Les meetups locaux de matériel et de makers touchent des gens qui aiment déjà les instruments. Une prime de cooptation pour quiconque a fait de la mise en route de PCB rapporte plus qu'un cabinet de recrutement pour ce poste.
Dites explicitement que les candidats LabVIEW sont les bienvenus. Ajoutez une ligne du type : « Si votre expérience est en LabVIEW ou TestStand, postulez. Vous connaissez le travail, et Python est la moitié facile du changement. »
Ils se reconvertissent vite. La connaissance du domaine (limites, montages, rendement, opérateurs) est la partie difficile et ils l'ont déjà, et reconvertir un développeur LabVIEW à Python est le plan de leur premier mois.
Ne publiez pas la version LabVIEW du poste « au cas où » à côté de celle-ci. Cela signale que l'annonce Python est le second choix. Publiez une seule annonce.
Pour les compétences à évaluer, utilisez la liste de compétences Python pour ingénieurs test, et pour ce qui se passe après l'offre, prise en main d'un ingénieur test en une semaine.
Niveaux et fourchettes de salaire
Fourchettes typiques 2026 pour les États-Unis et l'Europe de l'Ouest, hors coûts chargés. Elles sont larges parce que le poste est valorisé très différemment selon les secteurs et les régions.
| Niveau | Ce dont il est responsable | États-Unis, base | Europe de l'Ouest, base |
|---|---|---|---|
| Junior (0 à 2 ans) | Un poste, avec relecture | 70 000 à 95 000 $ | EUR 50 000 à 68 000 |
| Intermédiaire (2 à 6 ans) | Une ligne, limites et rendement compris | 90 000 à 130 000 $ | EUR 65 000 à 92 000 |
| Senior (6 ans et plus) | Tous les postes, la feuille de route des montages, la migration | 120 000 à 165 000 $ | EUR 85 000 à 125 000 |
Ce qui déplace un candidat dans une fourchette : le secteur réglementé (le médical, l'aéronautique et l'automobile paient en haut), la région (les grandes métropoles américaines et la Suisse en haut), les astreintes ou les horaires postés, et l'expérience en montages ou en firmware en plus du travail de test.
Deux choses à savoir quand vous fixez le chiffre. Un développeur LabVIEW ou TestStand de séniorité égale coûte typiquement bien au-dessus de ces fourchettes, parce que le vivier est petit et plutôt senior. Et la fourchette Python vous achète quelqu'un que le reste de votre équipe d'ingénierie peut relire et par qui elle peut être relue, ce que la prime LabVIEW n'offre pas.
Pour un recrutement junior, réduisez la liste « indispensable » aux trois premiers éléments et déplacez Git vers « nous vous l'apprendrons ». Pour un recrutement senior, ajoutez « a migré une ligne d'un séquenceur à un autre » et « a recruté ou encadré un ingénieur test » aux responsabilités.
Commencez par un poste
L'annonce est plus forte quand les 90 premiers jours visent un vrai poste. Avant de publier, choisissez celui au plus gros volume ou celui qu'une seule personne peut ouvrir, reconstruisez-le en Python avec le TofuPilot Framework, et faites-le tourner en parallèle de la version LabVIEW sur les mêmes unités pendant deux semaines. Le jalon du mois 3 de la nouvelle recrue devient alors la répétition de quelque chose que votre équipe a déjà fait une fois.
# Installe le CLI, puis lance le poste en local (sans compte) ou avec upload.curl -fsSL https://www.tofupilot.app/install | shtofupilot run ./procedure.yamltofupilot run ./procedure.yaml --uploadLa reconstruction est dans comment migrer de LabVIEW vers Python pour les tests de fabrication avec TofuPilot, et le framework est sur tofupilot.com/products/framework. L'offre Lab est gratuite, et tofupilot run fonctionne sans compte.
