B&A
Domino's
Ingénieur Logiciel Senior - Développement Android
Description de l'entreprise
Domino’s Pizza, qui a débuté en 1960 comme un seul restaurant à Ypsilanti, MI, a eu beaucoup de raisons de célébrer récemment : nous sommes une marque redéfinie, redynamisée, axée sur l'honnêteté, la transparence et la responsabilité – sans oublier, la bonne nourriture ! Dans notre ascension pour devenir un véritable leader technologique, la marque est désormais systématiquement parmi les cinq premières entreprises en termes de transactions en ligne et 65% de nos ventes aux États-Unis sont réalisées via les canaux numériques. La marque continue de « réaliser le rêve » des propriétaires de petites entreprises, dont 90% ont commencé comme livreurs et préparateurs de pizzas dans nos restaurants. Ce n'est que la partie visible de l'iceberg… ou comme nous pourrions dire, une « part » du gâteau ! Si cela vous ressemble à une marque dont vous aimeriez faire partie, envisagez de rejoindre notre équipe !
Description du poste
Salaire- 120-130k de base
Toutes vos informations seront gardées confidentielles conformément aux directives EEO.
Catégorie d'emploi Org : Domino’s Technology
Nom du lieu - Code du lieu : Domino's Pizza LLC-WHQ
Un Ingénieur Logiciel III fait preuve de maîtrise dans la technologie concernée. Il développe avec une orientation plus externe – englobant d'autres équipes et la manière dont le logiciel interagit avec d'autres parties de l'organisation. Il maîtrise le langage de programmation et la bibliothèque principale, y compris ses parties les plus complexes, de nombreuses bibliothèques tierces, ainsi que les outils de développement, de compilation, de débogage, de test et de déploiement d'applications. Il comprend, à un niveau modéré, tous les composants qui constituent le système, leurs interrelations et leurs schémas de communication. Il peut utiliser ces connaissances pour développer des sous-systèmes complexes en appliquant les principes qu'il a appris et en tenant compte des idiomes et des modèles déjà présents dans le code et l'équipe. Il possède une compréhension approfondie du sous-ensemble de composants sur lesquels il travaille et peut encadrer les développeurs moins expérimentés dans la conception de leur code et de l'écosystème de développement plus large utilisé au sein du projet. Un Ingénieur Logiciel III est censé écrire systématiquement du code de haute qualité, de complexité moyenne à élevée, en temps voulu. Cela inclut la prise en compte d'éléments tels que la performance, la maintenabilité et la sécurité. De plus, il est censé maîtriser toutes les normes, pratiques, directives et idiomes de l'équipe et les appliquer lors du codage.
Développement - 80%
- Contribue à la définition des normes de codage de l'organisation
- Produit des estimations pour ses tâches assignées et participe aux estimations pour des initiatives plus importantes, y compris la planification de projet initiale
- Produit du code performant avec un accent particulier sur la stabilité et la maintenabilité à long terme
- Favorise la réutilisabilité du code en recherchant des opportunités de réutilisation entre les équipes/systèmes
- Produit du code qui est adéquatement testé unitairement et répond aux exigences des tests système/d'intégration
- Responsable de la documentation de son code et de la documentation externe d'un système ou d'un projet
- Participe à la conception de composants entiers et à l'interaction entre les composants
- Soutient l'équipe de gestion de projet dans la décomposition des exigences métier en tâches individuelles
- Compréhension approfondie des bibliothèques et des composants courants (frameworks)
- Un relecteur clé des PR pour son équipe de projet
- Participe à l'implémentation initiale de nouveaux modèles
- Support développeur de première ligne pour les systèmes de production - dépannage/triage
- Peut participer aux entretiens
Mentorat - 20%
- Soutient les développeurs en répondant aux questions conceptuelles et techniques des membres de l'équipe
- Aide les développeurs à améliorer la maintenabilité, la performance et la sécurité de leur code grâce à des revues de code
- Assure un mentorat dédié aux membres nouveaux ou inexpérimentés de l'équipe (par ex. candidats en rotation, nouveaux employés ou nouveaux membres d'une équipe)
Qualifications
Qualifications d'application native
- 7+ années d'expérience globale en développement utilisant un langage orienté objet
- Expert en Kotlin et/ou Swift
- Expertise démontrable avec XCode et/ou Android Studio
- Expérience démontrable avec Java et/ou Objective-C.
- Expérience démontrable dans la consommation de services web RESTful JSON
- Expérience démontrable avec le développement Agile et les tests unitaires.
- Expérience démontrable avec les notifications push, les services de localisation.
- Expérience démontrable avec des outils de build comme Gradle et Fastlane
- Expérience démontrable avec des frameworks d'analyse tels que Firebase, Adobe ou similaires
- Expérience avec divers modèles d'architecture comme MVC, MVVM, VIPER ou similaires
- Expérience avec des outils de gestion des dépendances comme Cocoapods, Swift Package Manager, Gradle
- Expérience avec des frameworks d'accessibilité
- Expérience avec des outils de profilage et de débogage de code
- Expérience avec la soumission et la publication d'applications via les app stores.
Qualifications générales
- Maîtrise des méthodes/modèles de conception (par ex. DRY, SOLID, ReST) et de leur application pratique
- Excellent esprit d'équipe avec de bonnes compétences en communication avec les collègues non techniques et techniques
- Hautement motivé et animé par le désir de résoudre des problèmes difficiles et d'apprendre de nouvelles technologies
- Expert en écriture de tests unitaires de qualité
- Expert avec les outils de build et de débogage
- Maîtrise des outils de profilage
- Expérience avec des systèmes d'intégration continue comme Jenkins/GitHub
- Expérience avec le développement de logiciels internationaux (multilingue, multidevise, conscience géographique et locale)
- Maîtrise de MacOS, Unix et Linux
- Expérience avec les concepts de base de données (requêtes, modèles de données)
- Compréhension du développement dans un système distribué
- Compréhension des concepts réseau de base comme le protocole http et son utilisation
- Expérience avec Docker, ou une technologie de conteneurisation équivalente, est préférée
- Expérience avec les pratiques et outils agiles préférée (Jira ou similaire)
Informations supplémentaires
- Avantages : • Jours fériés et congés payés
- Avantages médicaux, dentaires et de vision qui commencent dès le premier jour d'emploi
- Soutien en santé mentale gratuit pour l'employé et ses dépendants
- Réductions sur les frais de garde d'enfants
- Programmes de remise en forme, de nutrition et de bien-être gratuits
- Avantages pour la fertilité
- Aide à l'adoption
- Contributions de contrepartie de 401k
- 15% de réduction sur le prix d'achat des actions
- Bonus d'entreprise
