Chez Kabam, nous relevons constamment la barre de l'excellence dans le domaine des jeux mobiles gratuits. Nous embauchons pour la passion et la diversité, afin de triompher grâce à nos compétences collectives. Nos équipes sont composées d'une fusion de personnalités et d'intérêts unis par une nature collaborative, une culture axée sur le plaisir, et une volonté de tout mettre en œuvre pour créer d'excellents jeux. Et c'est là que vous intervenez…
Nous sommes à la recherche d'un programmeur de jeux sénior / d'une programmeuse de jeux sénior hautement expérimenté(e) et qualifié(e) pour rejoindre notre équipe. Dans ce rôle essentiel, vous mettrez à profit vos connaissances approfondies pour développer et maintenir des systèmes et des outils avancés, optimisant les flux de travail et garantissant une haute performance pour nos équipes de jeu. Vous dirigerez des projets d'envergure, aborderez des problèmes complexes et jouerez un rôle clé dans le mentorat et l'encadrement des ingénieurs juniors.
Cette fonction est un poste à temps plein, sur site, basé 5 jours par semaine dans notre studio de Montréal.
Dans ce rôle, vous devrez:
Créer et maintenir des systèmes de jeu: Concevoir, implémenter et maintenir des systèmes de jeu robustes et évolutifs en écrivant du code propre, en effectuant des révisions de code et en collaborant avec les concepteurs. Créer de nouveaux outils et maintenir les outils existants pour les concepteurs et les artistes: Développer, intégrer et améliorer des outils et des éditeurs personnalisés pour accroître l'autonomie des concepteurs et des artistes et améliorer leurs flux de création de contenu. Participer à la planification du développement: Collaborer avec les producteurs et les gestionnaires de projet pour estimer les tâches, créer des calendriers de développement et suivre les progrès pour s'assurer que les jalons sont atteints. Créer des écrans, des widgets et d'autres éléments d'interface utilisateur (UI): Architecturer et implémenter des éléments d'UI extensibles et réactifs, tels que des écrans et des widgets, en étroite collaboration avec l'équipe de conception pour concrétiser leur vision. Analyser les conceptions de fonctionnalités et donner votre avis sur les coûts et les alternatives possibles: Examiner les conceptions de fonctionnalités et les maquettes fonctionnelles (wireframes) pour fournir des commentaires techniques sur la faisabilité, les coûts et les alternatives de mise en œuvre potentielles. Travailler en étroite collaboration dans un environnement agile et hautement collaboratif: Participer activement à un environnement agile, en collaborant étroitement avec les producteurs, les artistes, les concepteurs et les autres programmeurs pour intégrer les systèmes de manière transparente. Concevoir et soutenir des outils qui améliorent les flux de travail: Identifier les inefficacités dans les flux de travail entre les différentes disciplines et créer des outils pour automatiser les tâches et optimiser les pipelines. Optimiser la performance du jeu: Effectuer des analyses de performance et du profilage pour optimiser les pipelines de rendu, les animations et d'autres interactions afin d'améliorer la performance globale du jeu. Résoudre les problèmes du jeu: Diagnostiquer et résoudre des problèmes de performance spécifiques au jeu, y compris ceux liés au profilage, à la mémoire, au CPU, à l'exécution et aux temps de chargement.
Pour avoir du succès dans ce rôle, votre parcours doit comprendre les éléments suivants:
Expérience et réalisations: Vous devez détenir un baccalauréat en informatique (ou une expérience équivalente), plus de 8 ans d'expérience en développement de logiciels, et une expérience avérée dans la livraison de plusieurs jeux en ligne, du prototype au lancement sur PC, console ou mobile. Compétences expertes en programmation: Vous devez avoir une maîtrise experte de C#, ainsi qu'une solide expérience avec les systèmes de contrôle de version comme GIT ou Perforce. Architecture de moteurs et de systèmes: Une connaissance approfondie de Unity est requise, et une expérience avec plusieurs moteurs de jeu est un atout. Vous devez également posséder une capacité experte à architecturer des systèmes de jeu complexes (ex: IA, multijoueur, contrôles, systèmes RPG). Optimisation de la performance: Vous devez avoir une expérience démontrée en profilage, en dépannage et en optimisation de la performance des jeux sur toutes les plateformes, en abordant les problèmes de mémoire, de CPU et de rendu. Développement mobile et UI: Une expérience en développement mobile pour Android et iOS est nécessaire, ainsi qu'une familiarité avec les frameworks d'interface utilisateur tels que Unity GUI ou NGUI. Travail d'équipe et flux de travail: Vous devez posséder d'excellentes compétences en communication et en résolution de problèmes, et vous épanouir dans un environnement Agile ou Kanban. Vous devez être capable de travailler efficacement de manière autonome et en équipe.