Senior Software Developer (DNA)
Core Services is looking for a Software Developer to join its DNA project in its Show Development Frameworks domain.
The Core Services group provides foundational technologies to other technology groups within DNEG. We are a team of software developers who architect, build and provide geographically spread, enterprise-level, mission-critical infrastructure. We create services, frameworks, and products that other teams rely upon to build and deliver their technology solutions. We are the core of all things technology at DNEG.
The Show Development Frameworks domain @ Core Services provides libraries and frameworks to be utilized by software products to provide end-user functionality. The libraries we provide include SDKs and APIs for asset data modeling, scene assembly, task dispatching, and other utility tasks.
DNA is our in-house next-gen data modeling framework for scene description. As a Senior Software Developer in the DNA project, you will be helping to design and implement key components of our data model, leveraging USD as a core technology of our VFX and feature animation production pipelines. You will have influence in all aspects of the software development life-cycle, designing, building, and maintaining software as well as integrating tools into our existing pipeline.
- Participate in the design and implementation of the data model which underlies our Assets and Shots pipeline.
- Develop and support tools specifically for scene composition and exchange across production departments and stages.
- Investigate solutions and techniques to improve our existing tools and software packages.
- Develop new software and tools which integrate into DNEG's pipeline.
- Present ideas for development opportunities.
- Provide sprint-based updates on tasks’ progress.
- Ensure that bug reports and escalated support requests are dealt with swiftly and efficiently.
- Work with artist supervisors and other teams in Production Technology to gather requirements and translate them into architectural and feature specifications.
- Write documentation and technical specifications for developed software, create / update troubleshooting playbooks.
- Communicate development plans and complex technical information to colleagues in the development team, to artists, and to the wider business, adapting your style as appropriate.
- Coordinate and work with teams in remote sites in different time zones.
- 6+ years of non-intern experience in professional software development.
- Strong experience in modern C++ and Python programming.
- Experience writing modular software using appropriate libraries in C++.
- Practical knowledge of programming libraries such as Boost and the C++ standard library.
- Fluency in areas such as data structures, algorithms, design patterns, data modeling, and schema design.
- An understanding of performance considerations such as multiple processor usage, runtime optimization, and memory management.
- Knowledge of software development processes including coding standards, version control, automated testing, and CI/CD practices.
- Excellent analytical and debugging skills.
- Experience working as part of a development team using source control (git) and build (cmake) systems.
- Ability to design and develop sophisticated application interfaces that provide an excellent experience.
- A pragmatic approach and ability to see the “bigger picture” and the desire to make a wider strategic contribution.
- Familiarity with development in a Linux environment.
- Agile development experience using Scrum framework.
- Bachelor’s degree in Computer Science or equivalent subject or equivalent work experience.
Nice to Have
- Proven experience developing VFX-related tools.
- Experience developing software in a multi-threaded environment.
- Experience exposing C++ code to Python using packages such as boost python or pybind11.
- Experience developing APIs, user interfaces, and an understanding of relevant design patterns.
- Understanding of relevant third-party technologies such as Pixar’s USD, Qt, TBB.
- Familiarity with other relevant VFX software packages.
- Knowledge of other programming languages, an interest in the wider field of software development, and an ability to learn other programming languages as required.
- Excellent written and verbal communication skills.
- Eagerness to tackle problems head-on.
We are DNEG, one of the world’s leading visual effects and animation companies for the creation of award-winning feature film, television, and multiplatform content. We employ more than 10,000 people with worldwide offices and studios across North America (Los Angeles, Montréal, Toronto, Vancouver), Europe (London), Asia (Bangalore, Mohali, Chennai, Mumbai) and Australia (Sydney).