Software Engineer - Rendering

Netflix Netflix · Big Tech · Vancouver, BC · Feature Animation

Software Engineer to develop and enhance proprietary rendering software (Glimpse), including its rendering engine, shading system, and scene representation for animated films.

What you'd actually do

  1. Work on all aspects of the renderer, including scene representation, render and sampling engine, raytracer, shading system: everything required for generating highly realistic images for our films.
  2. Create and maintain tools that are directly used in our lighting, shading, and compositing workflows.
  3. Closely collaborate with technically minded artists to design, implement and rapidly deploy into production.
  4. Be part of a small, dynamic and self-motivated team of individuals with varied backgrounds.
  5. Take on responsibility, get stuff done, and make our artists happy!

Skills

Required

  • C++
  • 3D rendering software development
  • High performance computing
  • Computer graphics
  • Mathematical skills
  • Numerical methods
  • Monte Carlo integration
  • Importance sampling
  • Optimization
  • Spatial data structures
  • Photorealistic rendering
  • Light transport
  • Global illumination
  • Shading technologies (RSL, OSL, GLSL)
  • Raytracing
  • Shading algorithms
  • Massively parallel architectures (CPU, GPU)
  • High performance code
  • Vectorized code
  • Parallel programming
  • Compilers
  • DCC applications (Houdini, Maya) and their APIs

Nice to have

  • Real-time rendering
  • Embree
  • OIIO/OpenPGL

What the JD emphasized

  • 5+ years’ experience developing 3D rendering software using C++ in high performance computing environments.
  • Master's or PhD degree in Computer Science, Mathematics, Physics, Engineering, or equivalent experience.
  • Strong mathematical skills and familiarity with numerical methods, probability and statistics used for rendering such as Monte Carlo integration and importance sampling
  • A talent and passion for optimisation and a working knowledge of efficient spatial data structures.
  • A thorough understanding of photorealistic rendering, light transport and global illumination techniques.
  • An ability to work in a challenging environment, take direction and possess good communication skills.
  • Willingness to work in a highly dynamic production environment and collaborate with artistic staff.
  • Exposure to raytracing and shading technologies such as Embree and OIIO/OpenPGL/RSL/OSL/GLSL.
  • Experience with developing shading or raytracing algorithms on massively parallel architectures such as multi-threaded CPUs and GPUs.
  • Practice in writing high performance code, vectorized code, with a good understanding of parallel programming, compilers and optimization.