Software Research Engineer
Solves engineering problems critical for research, technology and product development through software expertise, domain knowledge, modeling, and research methodologies. Develops strategic software applications, algorithms/flows, and/or AI solutions to ensure continued advancement. Works on collaborative projects with research scientists. Researches technological trends, collaborates with industry, academic, and industry standardization, product, and technical groups to address important technology and customer issues, and finds innovative solutions to difficult problems for midterm or long-term time frames (two years or beyond). May research to define boundaries, create proof-of-concepts, or prototype new ideas.Qualifications
Candidate must have a Bachelors degree with 10 years of experience, or a Masters degree with 8 years of experience, or a PhD degree with at least 3 years of experience. Degree should be in Computer Science, Computer/Electrical Engineer, Physics, Math, or a related field.
Your experience should be in the following areas:
Comprehending, analyzing, and extending techniques described in rendering literature.
Developing advanced graphics algorithms in domains such as raster graphics, ray traced-based graphics, physically-based light transport, sampling strategies, acceleration structures, level of detail, shading, appearance, texture synthesis, 3D content capture/creation, etc.
Applying machine learning techniques to graphics with familiarity with Pytorch, TensorFlow, etc.
Developing software in C++ together with programmable shaders and GPU compute.
Creating real-time rendering effects using current and upcoming graphics, e.g. OpenGL, Vulkan and Direct3D 12.
Preferred skills and experience that will make you stand out:
Background in relevant industries including video game development, rendering software or visual effects in film.
Background in writing publications and/or presenting at conferences or other events.
Experience with performance analysis including using low-level tools like profilers for identifying performance issues.
Analyzing GPU architectures and/or GPU workloads to identify and remedy systems performance bottlenecks.
Familiarity with parallel programming environments such as TBB, CUDA, OpenCL or DPC++.