Ingénieur Python / ML
P. R. · 6+ ans
- Python
- PyTorch
- FastAPI
- AWS
Backend · Embaucher des développeurs
Python est l’embauche la plus polyvalente en logiciel : le même langage propulse les produits Django chez Instagram, les pipelines de données, l’automatisation interne et la quasi-totalité du travail en apprentissage automatique. Cette étendue est aussi le piège de l’embauche. Un scientifique de données brillant peut écrire des services impossibles à maintenir, et un solide développeur Django peut n’avoir jamais touché à un modèle. turnkey.dev évalue les développeurs Python pour le type de travail précis dont vous avez besoin, pas pour le mot-clé du langage, et cette page vous montre comment cadrer la demande pour que le jumelage tienne la route.
Selon le rôle, une bonne embauche Python saura :
« Développeur Python » décrit au moins trois métiers différents, et l’erreur d’embauche la plus courante avec ce langage est d’afficher pour les trois à la fois. Un test rapide qui fonctionne : regardez ce que sera le livrable de la personne.
Les seniors solides couvrent souvent deux des trois, et ce chevauchement a de la valeur : un ingénieur web capable de bâtir un pipeline propre, ou un ingénieur de données capable d’exposer ses résultats par une API convenable. Ce que presque personne ne couvre bien, c’est les trois à une profondeur de production. Rédigez la demande autour du livrable principal et traitez la deuxième compétence comme un bonus, et la présélection s’améliore nettement.
Le Python de production moderne ne ressemble plus au Python de script que la plupart des gens ont appris. Trois choses marquent la différence, et nous évaluons les trois.
Le typage. Les annotations de type vérifiées avec mypy ou pyright sont maintenant la norme dans les bases de code sérieuses. Elles attrapent une grande classe de bogues avant l’exécution et rendent le code navigable pour la prochaine recrue. Un candidat qui type ses interfaces publiques par habitude, et non à contrecœur, a travaillé sur du code que d’autres maintiennent.
L’empaquetage et les environnements. L’histoire de l’empaquetage Python a des angles coupants, et un développeur incapable de produire une compilation reproductible finira par vous coûter un mauvais déploiement. Cherchez des flux de travail à fichier de verrouillage avec des outils comme uv ou Poetry, des dépendances épinglées, et une réponse nette à « comment ce projet se construit-il de la même façon en CI et sur un portable ».
La concurrence, honnêtement. Le verrou global de l’interpréteur Python fait que les fils d’exécution ne parallélisent pas le travail lié au CPU. Ça compte moins que ce qu’Internet laisse croire : les services liés aux entrées-sorties se portent bien avec asyncio ou de simples processus de travail, les portions gourmandes en CPU sont déléguées à des bibliothèques natives comme NumPy ou à des processus séparés, et l’interpréteur lui-même continue d’accélérer. Mais un senior doit pouvoir expliquer ce compromis de lui-même, y compris quand l’asynchrone est réellement utile et quand il ne fait que compliquer le code.
Choisissez Python quand votre produit implique des données, du ML ou beaucoup de travail d’intégration, ou quand vous voulez une pile web mature et prévisible dans le bon sens du terme : Django demeure l’un des chemins les plus rapides entre l’idée et un vrai produit, authentification et administration comprises, et il vieillit bien. Python est aussi le choix par défaut pour l’automatisation et l’outillage interne, où sa lisibilité garde les scripts maintenables après le départ de leur auteur.
Pour une concurrence extrême ou de la performance brute sur un seul service, Go convient souvent mieux. Pour une équipe très JavaScript, Node garde la pile uniforme. Python n’a pas d’histoire mobile sérieuse, et les charges lourdes en temps réel ne sont pas son terrain. Nous vous dirons honnêtement ce qui convient avant que vous vous engagiez dans une embauche.
Signaux d’une bonne recrue :
Signaux d’alarme :
Trois sondes d’entrevue qui fonctionnent : demandez comment il déploierait un service Django ou FastAPI à partir de zéro, et écoutez pour les migrations, les processus de travail et la gestion des paramètres. Demandez quand asyncio aide vraiment et quand il n’aide pas. Demandez comment il rendrait un pipeline nocturne capricieux sécuritaire à relancer. Les gens d’expérience répondent aux trois concrètement.
Chaque développeur passe un examen des fondamentaux (typage, asynchrone, structures de données et les particularités du cadriciel qu’il revendique), un exercice pratique reproduisant le vrai travail de sa spécialité (web, données ou ML) et une revue des projets livrés avec références. Nous refusons beaucoup plus de candidats que nous n’en acceptons. La présélection que vous recevez est composée de gens que nous mettrions sur nos propres mandats clients.
| Niveau | Idéal pour | Expérience typique |
|---|---|---|
| Intermédiaire | Fonctionnalités et intégrations dans une base de code existante | 3 à 5 ans |
| Senior | Prendre en charge un service ou un pipeline de bout en bout, conception de schémas et d’API | 5 à 9 ans |
| Lead / Architecte | Choix de plateforme, conception de systèmes ML, mentorat d’une équipe | 9 ans et plus |
Soyez précis dans votre demande sur le type de Python dont vous avez besoin : « développeur Python » seul ratisse trop large. Produit web, pipeline de données et service de modèles ML sont des ensembles de compétences différents, même si les seniors solides en couvrent souvent deux sur trois.
Le temps plein convient à un back-end de produit en développement actif ou à une plateforme de données en construction. Le temps partiel convient à la maintenance régulière de services stables, à un pipeline analytique récurrent ou à un senior fractionnaire qui guide une équipe plus petite. Le projet convient aux portées délimitées : bâtir une API selon un devis, monter un pipeline Airflow, ajouter du typage à une base de code existante, ou amener une fonctionnalité LLM du prototype à la production avec une évaluation en place. Le travail de données et d’automatisation se découpe exceptionnellement bien en projets, ce qui explique en partie pourquoi les mandats Python sont souvent plus petits et plus fréquents que les embauches back-end dans d’autres piles.
Les développeurs Python évalués facturent généralement dans la fourchette de 60 $ à 130 $ l’heure. Le travail back-end généraliste se situe près du bas; la spécialisation en ML de production et en ingénierie des données tire vers le haut, et le chiffre bouge aussi avec la séniorité et la portion de votre journée de travail que le développeur chevauche. Attendez-vous à une présélection en 2 à 5 jours, et la demander est gratuit.
Dites-nous ce que vous construisez, de quel type de travail Python il s’agit, la séniorité et votre échéancier. Nous revenons avec une courte liste de développeurs Python évalués qui conviennent, incluant le tarif et la disponibilité. Vous passez les entrevues, faites un essai payant si vous le souhaitez, et vous engagez seulement ensuite. Mauvais jumelage dans les deux premières semaines? Nous refaisons le jumelage sans frais.
Profils représentatifs du réseau vérifié. Demandez une liste restreinte et nous confirmons qui est réellement disponible.
Les développeurs Python évalués facturent généralement de 60 $ à 130 $ l'heure. Le travail back-end généraliste se situe dans le bas de la fourchette, tandis que la spécialisation en ML et en données tire vers le haut, et la fourchette bouge aussi avec la séniorité et la région. Le tarif est indiqué avant tout engagement, et demander une présélection est gratuit.
La plupart des clients reçoivent une présélection en 2 à 5 jours, et un essai peut habituellement commencer dans la semaine suivant la demande, puisque l'évaluation est déjà faite.
Oui. Les profils précisent quels cadriciels le développeur a exploités en production. Django domine pour les produits complets avec besoins d'administration, FastAPI pour les API modernes et le service de modèles ML, et Flask apparaît surtout dans les bases de code existantes.
Parfois. Le produit web, l'ingénierie des données et le ML sont des ensembles de compétences différents qui partagent seulement un langage, et les seniors solides en couvrent souvent deux sur trois. Si les deux charges de travail sont substantielles, une seule personne sera étirée trop mince, et nous préférons vous le dire à l'étape de la demande plutôt qu'après un mauvais trimestre.
Oui. Python est le langage par défaut du ML et des LLM, et plusieurs développeurs du réseau ont livré des fonctionnalités bâties sur des API de modèles ou sur PyTorch. Pour un travail de modèle en profondeur, demandez explicitement un ingénieur ML et nous jumelons en conséquence.
Vous pouvez remplacer tout développeur sans frais dans les deux premières semaines. Nous refaisons le jumelage plutôt que de vous laisser avec la mauvaise personne.
Quelques détails suffisent. Nous répondons avec une liste restreinte de développeurs vérifiés, généralement en quelques jours. Aucuns frais pour demander, aucune obligation d'embaucher.
✓
Merci. Nous examinons le réseau vérifié dès maintenant et vous enverrons une liste restreinte par courriel, généralement en quelques jours. Envie de parcourir en attendant?
Parcourir le réseau de talents