Apple

Ingénieur(e) Logiciel Senior - Sécurité

PythonJavaGo
Traduction automatique. Consultez l’original.

À propos du poste

Nous sommes l'équipe de sécurité de la chaîne d'approvisionnement logicielle, rattachée à l'organisation Sécurité d'Apple Services Engineering (ASE). Nous travaillons sur les logiciels derrière iCloud, l'App Store, Apple Music, TV+ et Commerce. Notre mission est de rendre les logiciels dignes de confiance pour Apple : connaître leur contenu, détecter les problèmes de sécurité avant leur déploiement et exclure le code non sécurisé de la production.

Les équipes d'ingénierie à travers Apple Services s'appuient sur les outils que nous fournissons.

Le travail à court terme concerne le signal d'assurance. Les scanners, les revues de conception et l'analyse de code produisent des résultats plus rapidement que quiconque ne peut les juger, obligeant les ingénieurs à trier manuellement le bruit et à cesser de faire confiance aux résultats. Cette étape de tri limite la quantité d'assurance que nous pouvons exécuter et le nombre d'équipes partenaires qui agissent sur ces résultats.

Nous développons une assurance de sécurité automatisée qui produit des résultats fiables pour les ingénieurs : analyse agentique et pilotée par LLM, intégrée dans les mécanismes d'évaluation et les garde-fous qui garantissent l'honnêteté des composants non déterministes lorsque les entrées, les cibles et les modèles changent.

L'agenda à plus long terme concerne la chaîne d'approvisionnement elle-même. Aujourd'hui, personne ne peut répondre aux questions concernant un service en cours d'exécution sans qu'une personne passe une journée à parcourir les registres, les systèmes de build et les scanners : qu'est-ce qui a été inclus dans cette build, d'où provient chaque dépendance, qui est responsable de sa correction en cas de problème.

Nous construisons la voie pavée qui répond à ces questions par la construction, grâce à la gestion des risques liés aux dépendances, à l'intégrité des builds et des releases, à la signature et à la vérification des artefacts, et à l'admission des logiciels dans l'environnement d'exécution basée sur des politiques.

Nous recherchons un(e) Ingénieur(e) Logiciel Senior pour concevoir, écrire et déployer des logiciels de production. Le succès dans ce rôle exige une solide ingénierie des systèmes distribués, un jugement avisé sur la place des composants agentiques et là où ils ne conviennent pas, ainsi que la capacité à intégrer des contrôles de sécurité dans les flux de travail existants des autres équipes sans devenir une contrainte.

DESCRIPTION

Il s'agit d'un rôle hautement collaboratif et pratique où vous travaillerez en partenariat avec les équipes d'infrastructure, de plateforme et de sécurité des produits pour construire les outils et services sur lesquels les autres ingénieurs de Apple comptent pour développer, déployer et exploiter des services de manière sécurisée à grande échelle.

Vous serez responsable de la production de logiciels de qualité répondant aux objectifs de niveau de service.

Vos activités quotidiennes comprendront la conception, l'implémentation, les tests et l'exploitation de services et de fonctionnalités de sécurité, y compris les outils d'analyse et d'assurance, les composants agentiques et intégrés à LLM, les backend et les APIs, ainsi que les intégrations qui font apparaître la sécurité dans les flux de travail existants des développeurs.

Vous participerez aux revues de code et de sécurité pour aider vos pairs à maintenir un niveau élevé pour les logiciels qu'ils déploient.

Vous effectuerez des recherches, du prototypage et présenterez des idées, des conceptions et des résultats à votre équipe, à la direction et aux clients internes.

Vous êtes censé(e) prendre en charge des composants importants de bout en bout et rester proche du code au fur et à mesure de l'évolution de ces composants.

QUALIFICATIONS MINIMALES

  1. 10+ années d'expérience pratique en ingénierie logicielle, y compris la prise en charge en production de systèmes non triviaux
  1. Solides fondamentaux en ingénierie logicielle avec une maîtrise d'au moins deux langages parmi : Python, Go, Java, et une aisance à travailler avec d'autres langages selon les besoins
  1. Solide connaissance pratique des concepts de sécurité de la chaîne d'approvisionnement logicielle, y compris les risques liés aux paquets et aux dépendances, l'intégrité des builds et des releases, la signature et la vérification des artefacts, l'infrastructure d'attestation et l'admission des logiciels dans les environnements d'exécution basée sur des politiques.
  1. Expérience dans la conception, la construction et l'exploitation de systèmes agentiques et d'applications intégrées à LLM en production, y compris l'ingénierie des prompts, l'orchestration et l'évaluation des sorties de modèles.
  1. Connaissance des méthodologies d'assurance de la sécurité des applications, y compris les approches d'analyse statique et dynamique et leurs compromis opérationnels.
  1. Expérience dans la conception et l'exploitation de backend distribués : APIs, pipelines de données et services avec des exigences significatives en matière de disponibilité et de performance.
  1. Expérience dans la construction et la maintenance de pipelines CI/CD et l'intégration de contrôles de sécurité dans ceux-ci.
  1. A l'aise pour opérer dans des environnements Linux et macOS, avec une maîtrise d'un langage de script shell tel que Bash.
  1. Compréhension opérationnelle du cycle de vie complet du développement logiciel : construction, test, déploiement et surveillance des logiciels de production.

QUALIFICATIONS PRÉFÉRENTIELLES

  1. Expérience dans la construction de systèmes d'admission basés sur des politiques qui appliquent des contrôles de sécurité au déploiement ou à l'exécution.
  1. Expérience en modélisation des menaces, analyse de taint, ou autres techniques d'analyse de programmes.
  1. Connaissance pratique des vulnérabilités courantes au niveau web et service (injection, IDOR, validation des entrées, failles d'authentification et d'autorisation).
  1. Expérience dans l'évaluation et l'intégration de nouveaux modèles et services pour étendre les capacités du produit.
  1. Expérience en ingénierie Full-stack, y compris la construction d'interfaces utilisateur exposant des données complexes à des clients internes.
  1. Expérience avec la conteneurisation, l'orchestration de conteneurs et l'infrastructure cloud à grande échelle.
  1. Expérience avec gRPC et d'autres interfaces de services haute performance.
  1. Diplôme de Bachelor en Informatique ou expérience professionnelle équivalente dans un domaine connexe.

Plus d’opportunités avec un seul profil

Vous souhaitez accéder à plus de postes sans répéter tout le processus ? Créez votre profil pour être trouvé par les entreprises utilisant Nort.

Créer mon profil

Ton prochain jobest déjà à ta recherche.

Nort

Plateforme de recrutement inversé pour développeurs

Réseaux sociauxInstagramLinkedInTwitter