• Principal Software Developer (Rendering & Simulation)

    AutodeskVancouver, BC V5K 0A1

    Job #2792157872

  • Job Requisition ID #

    24WD83437

    English job description to follow!/La description de poste en anglais se trouve plus bas!

    Présentation du poste

    Autodesk's Entertainment & Media Solutions recrute un développeur logiciel principal pour rejoindre l'équipe Arnold Core Rendering. Vous serez rattaché à notre directeur principal du développement logiciel et vos contributions aideront nos utilisateurs à continuer à réaliser des films VFX et d'animation primés, des émissions épisodiques, des cinématiques de jeux, des graphiques de mouvement, des vidéos musicales, des publicités, des visualisations architecturales et de produits, des synthèses, et bien plus encore. L'équipe principale se concentre sur la bibliothèque de rendu Arnold, qui gère tous les aspects du rendu CPU et GPU, tels que le traçage de chemin, l'ombrage, la subdivision et le déplacement de maillage, la texturation, les volumes et tout ce qui est exigé d'une bibliothèque de rendu autonome. On attend de vous que vous deveniez un expert dans au moins certaines parties du moteur de rendu. Un bon aperçu du type de travail impliqué peut être consulté dans notre article de 2018 du Transactions on Graphics Journal : ~~~ .

    En tant que développeur principal, vous devrez documenter et communiquer vos modifications du moteur de rendu Arnold à l'équipe des plugins Arnold afin qu'elle puisse intégrer et exposer correctement vos contributions pour une utilisation dans divers DCC tels que Maya, 3ds Max, Houdini, Cinema 4D et Katana.

    Responsabilités

    • Rechercher de nouveaux algorithmes susceptibles d'améliorer la vitesse de rendu, l'utilisation de la mémoire, la précision numérique, la qualité de l'image, et/ou créer et améliorer les shaders

    • Étalonner le moteur de rendu et identifier les goulets d'étranglement dans le but d'optimiser les performances

    • Concevoir, maintenir et étendre les API pour l'interopérabilité entre les sous-systèmes de rendu et les applications 3D externes

    • Écrire un code robuste, lisible, maintenable et extensible qui peut durer des années et qui n'effraie pas les autres développeurs

    • Refondre le code existant. Produire des tests unitaires et de la documentation pour les développeurs pour tout nouveau code

    • Déboguer les sous-systèmes existants, identifier les zones problématiques dans le code, fournir à la fois des solutions temporaires rapides et des solutions durables de haute qualité, selon les besoins

    • Déboguer les scènes de production et communiquer les résultats et les solutions de contournement aux clients et aux autres développeurs

    Qualifications minimales

    • Plus de 8 ans d'expérience dans le développement de logiciels commerciaux à grande échelle et dans un secteur connexe (jeux, VFX, cinéma ou autre secteur lié au graphisme)

    • Compétences avancées en programmation C++ et en débogage

    • Expérience dans la prise d'initiative, en tant que point de contact pour les solutions que vous développez

    • Compétences éprouvées en matière de dépannage auprès des utilisateurs ou des clients

    Qualifications préférées

    Nous apprécions l'expérience dans un ou plusieurs des domaines suivants

    • Expérience dans l'écriture d'intégrateurs, de shaders, d'intersecteurs de ray tracing et de structures d'accélération, de subdivision de maillage et de tout ce que vous pourriez trouver dans le livre PBRT

    • Points supplémentaires si vous lisez le livre PBRT depuis suffisamment longtemps pour en avoir acquis plusieurs éditions.

    • Expérience dans l'écriture de shaders de qualité

    • Solides connaissances en mathématiques

    • Compétences avancées en programmation multithread : possibilité d'écrire des algorithmes sans verrouillage et d'écrire instinctivement du code qui évite les faux partages

    • Expérience de l'écriture de code de bas niveau.

    • Idéalement, avoir écrit un traceur de chemin en OptiX

    • Expérience de l'intégration de l'Open Shading Language dans un moteur de rendu

    • Expérience de travail avec la bibliothèque OpenVDB pour la simulation et le rendu de volumes

    • Connaissance de la théorie des couleurs. Familiarité avec OpenColorIO

    • Expérience avec CUDA ou d'autres outils de programmation GPU

    • Une expérience de contribution à des projets open-source, pas nécessairement liés au rendu, sera grandement appréciée

    • Expérience en production VFX/animation

      • -

    Position Overview

    Autodesk's Entertainment & Media Solutions is hiring a Principal Software Developer to join the Arnold Core Rendering team. You'll report to our Senior Manager of Software Development and your contributions will help our users to continue making award-winning VFX and animated films, episodic shows, game cinematics, motion graphics, music videos, advertisements, architectural and product visualizations, synthetics, and much more. The core team focuses on the Arnold renderer library, which handles all aspects of CPU and GPU rendering, such as path tracing, shading, mesh subdivision and displacement, texturing, volumes, and everything else required of a standalone rendering library. You would be expected to become an expert in at least some parts of the renderer. A good overview of the kind of work involved can be seen in our 2018 Transactions on Graphics Journal paper: ~~~ .

    As a core principal developer, you are expected to document and communicate your Arnold renderer changes to the Arnold plugin team so that they can properly integrate and expose your contributions for use in various DCCs such as Maya, 3ds Max, Houdini, Cinema 4D, and Katana.

    Responsibilities

    • Investigate new algorithms that may improve rendering speed, memory usage, numerical precision, image quality, and/or create and improve shaders.

    • Benchmark the renderer and identify bottlenecks with the aim at optimizing performance.

    • Design, maintain, and extend APIs for interoperability between rendering subsystems as well as external 3D applications.

    • Write robust, readable, maintainable, and extensible code that can last for years and won't scare other developers.

    • Refactor legacy code. Produce both unit tests and developer documentation for any new code.

    • Debug existing subsystems, identify problem areas in the code, provide both quick temporary workarounds and high-quality, lasting solutions as needed.

    • Debug production scenes and communicate findings and workarounds with both customers and other developers.

    Minimum Qualifications

    • 8+ years of experience developing large scale commercial software and in a related industry (gaming, VFX, film, or other graphics related industry)

    • Advanced C++ programming and debugging skills

    • Experience taking initiative, being a point of contact for the solutions you're developing.

    • Proven troubleshooting skills with users or customers.

    Preferred Qualifications

    We appreciate experience with one or more of the following areas

    • Experience writing integrators, shaders, ray tracing intersectors and acceleration structures, mesh subdivision, and anything else you might find in the PBRT book

    • Extra points if you read the PBRT book long enough to have acquired multiple editions

    • Experience writing production quality shaders

    • Strong mathematical background

    • Advanced multi-threaded programming skills: can write lockless algorithms and instinctively writes code that avoids false-sharing

    • Experience writing low-level code

    • Ideally have written a path tracer in OptiX

    • Experience integrating Open Shading Language into a renderer

    • Experience working with the OpenVDB library for simulating and rendering volumes

    • Knowledge of color theory. Familiar with OpenColorIO

    • Experience with CUDA or other GPU programming tools.

    • Experience contributing to open-source projects, not necessarily rendering-related will be greatly appreciated.

    • VFX/animation production experience

    Learn More

    About Autodesk

    Welcome to Autodesk! Amazing things are created every day with our software - from the greenest buildings and cleanest cars to the smartest factories and biggest hit movies. We help innovators turn their ideas into reality, transforming not only how things are made, but what can be made.

    We take great pride in our culture here at Autodesk - our Culture Code is at the core of everything we do. Our values and ways of working help our people thrive and realize their potential, which leads to even better outcomes for our customers.

    When you're an Autodesker, you can be your whole, authentic self and do meaningful work that helps build a better future for all. Ready to shape the world and your future? Join us!

    Salary transparency

    Salary is one part of Autodesk's competitive compensation package. For Canada-BC based roles, we expect a starting base salary between $131,500 and $180,840. Offers are based on the candidate's experience and geographic location, and may exceed this range. In addition to base salaries, we also have a significant emphasis on annual cash bonuses, commissions for sales roles, stock grants, and a comprehensive benefits package.

    Diversity & Belonging

    We take pride in cultivating a culture of belonging and an equitable workplace where everyone can thrive. Learn more here: ~~~

    Are you an existing contractor or consultant with Autodesk?

    Please search for open jobs and apply internally (not on this external site).