Are you interested in advancing in-house and open-source filmmaking software? Our Software R&D department is looking for a motivated and skilled engineer to help develop the studio’s interactive rendering architecture. We work closely with both artists and engineers to build innovative filmmaking tools that enable our film production and continuously extend artistic reach.
As a Software Engineer on the GPU team, you will work on hardware-accelerated preview rendering in our content creation tools, delivering fast and high quality visualization of huge film assets, or the high performance data processing pipeline we use to prepare scenes for rendering. This codebase has been open sourced as the OpenUSD Hydra component, and you’ll support and collaborate with a rich community in the film and graphics industries to extend the project in exciting new directions!
What you’ll do
- Develop, test, and support high performance 3D graphics software, using C++ mainly in a Linux environment
- Take ownership of challenging problems that arise from evolving the architecture of software that is heavily exercised in an active production environment
- Collaborate with artists and other engineers to provide innovative technical solutions to artistic challenges
- Design flexible and performant APIs that enable our software to perform well and scale to highly complex film production workflows
- Help advance open-source initiatives like Hydra, OpenUSD (Universal Scene Description) and OpenSubdiv, as well as in-house content creation and pipeline tools
What you offer
- Strong understanding of C++ that you continually expand upon
- Familiarity with the math of computer graphics, and understanding of GPU APIs (e.g. OpenGL/Vulkan) and graphics pipelines
- Experience with, or excitement to learn about, our core technical areas: modern rendering architectures for rasterization and ray tracing, data structures and algorithms, and multithreading. Ability to understand algorithmic runtime and memory tradeoffs
- Passion for setting a high bar for code quality by writing robust, maintainable, well-documented and well-tested code
- Love of the whole development cycle: From proposal and planning, to implementation, testing, optimization and deployment
- Eagerness for continuous learning; willing to branch out into new technical areas, pick up new tricks, and revisit assumptions in areas of strength
- Creative problem solving skills, with attention to detail, and a desire to discover and address root causes
- You listen well and communicate clearly and succinctly