MANTECH
PDT Partners
Ingénieur Performance
À propos du poste
Ingénieur Performance
Nous recherchons un Ingénieur Performance exceptionnel pour rejoindre notre organisation technologique en pleine croissance. Les entretiens chez PDT sont intentionnellement axés sur la recherche de personnes formidables qui peuvent construire des carrières longues et percutantes avec nous.
Les Ingénieurs Performance chez PDT sont responsables de la compréhension approfondie et de l'optimisation des systèmes qui permettent nos stratégies de trading à grande échelle. Vous travaillerez à l'intersection du logiciel, des systèmes et du matériel pour analyser les performances, améliorer l'efficacité de l'infrastructure et libérer une capacité de calcul critique. Votre travail amplifie directement la vélocité des chercheurs et met à l'échelle nos modèles principaux, créant un impact massif grâce à la fois aux économies de coûts et à l'accélération de l'innovation. Vous réussirez chez PDT si vous aimez les problèmes ouverts, plonger dans l'optimisation GPU et l'optimisation/conception de systèmes, et êtes impatient de mener vos découvertes jusqu'à la production à grande échelle.
Il s'agit d'un poste hybride qui nécessitera que la personne travaille depuis notre bureau de New York au minimum 3 jours par semaine.
La fourchette de salaire pour ce poste est comprise entre $195,000 et $225,000. Cette fourchette n'inclut pas les éventuels bonus. Les facteurs qui peuvent impacter le salaire convenu dans la fourchette pour un candidat particulier incluent les années d'expérience, le niveau d'études obtenu, l'ensemble des compétences et d'autres facteurs externes.
DÉCLARATION DE CONFIDENTIALITÉ : Pour plus d'informations sur la manière dont PDT peut collecter, utiliser et traiter vos informations personnelles, veuillez consulter les avis de confidentialité de PDT pdtpartners.com/legal-notices.
Pourquoi nous rejoindre
PDT Partners a un palmarès exceptionnel de plus de 30 ans et une réputation d'excellence. Notre objectif est d'être le meilleur gestionnaire d'investissements quantitatifs au monde, mesuré par la qualité de nos produits, pas par leur taille. Le taux de rétention très élevé des employés de PDT parle de lui-même. Nos collaborateurs sont intellectuellement extraordinaires, et notre communauté est soudée, terre-à-terre et diversifiée.
Responsabilités clés
- Analyser et comprendre les performances de bout en bout du système pour améliorer le débit et la vélocité des chercheurs.
- Travailler sur les couches OS, noyau, pile réseau, sous-systèmes de stockage, hiérarchie mémoire et CPU pour optimiser l'utilisation des ressources de calcul.
- Effectuer une analyse approfondie à l'aide des outils de performance Linux pour identifier les goulots d'étranglement, les outliers de latence et les modèles non évolutifs.
- Lire et comprendre les couches logicielles, du code applicatif aux runtimes de langage, aux bibliothèques système et aux chemins de code du noyau, en fournissant des suggestions/PRs qui optimisent les chemins critiques.
- Libérer de la capacité, réduire les coûts et mettre à l'échelle les modèles en améliorant l'efficacité computationnelle par le biais de réglages, de configurations et de changements architecturaux.
- Développer des systèmes pour améliorer la télémétrie et l'observabilité des performances
- Mener des évaluations de preuves de concept de nouvelles technologies de performance (nouvelles fonctionnalités du noyau, bibliothèques système alternatives) et contribuer aux décisions de conception du système.
- Travailler en collaboration avec les équipes de développement pour détecter les régressions de performance, examiner le code sensible aux performances et partager les apprentissages d'optimisation au sein de l'organisation.
Prérequis
Vous trouverez ci-dessous une liste de compétences et d'expériences que nous jugeons pertinentes. Même si vous ne pensez pas correspondre parfaitement, nous vous encourageons toujours à postuler car nous nous engageons à développer nos collaborateurs.
- Expertise interne Linux: sous-systèmes du noyau, ordonnancement, gestion de la mémoire, mémoire virtuelle, cgroups, namespaces et pile réseau.
- Outils de performance : maîtrise de perf, eBPF, Ftrace, strace, sysstat et des outils de traçage/profilage associés. Capacité à développer des outils personnalisés lorsque les outils existants sont insuffisants.
- Optimisation au niveau système : Expérience dans le réglage des performances système et applicatives via les sysctls, les politiques d'ordonnancement, la conscience de la topologie NUMA, les allocateurs mémoire, les réglages réseau et la configuration des E/S de stockage.
- Interface matériel-logiciel : Compréhension approfondie de la microarchitecture CPU, des hiérarchies de cache, des sous-systèmes mémoire, des compteurs de performance matériels et de la manière dont le comportement logiciel se reflète dans la réalité matérielle.
- Capacité de programmation polyvalente : à l'aise pour lire et contribuer au code dans plusieurs langages (C, C++, Python, Go, Rust, Java) et pour naviguer rapidement dans des bases de code inconnues.
- Observabilité et télémétrie : Expérience dans la construction ou l'intégration d'infrastructures de surveillance et d'observabilité (Prometheus, Grafana, OpenTelemetry).
- Collaboratif et communicatif : Capacité à analyser les performances de manière holistique et à communiquer efficacement les conclusions, les compromis et les recommandations aux équipes de développement et aux parties prenantes.
