The Opportunity
We are looking for a senior software engineer with a deep understanding of 3D graphics application engineering, familiarity with CPU and GPU architectures, and a deep sense of software craftsmanship to participate in the design and implementation of our next-generation collaborative 3D graphics software.
We are a tightly-knit team developing state-of-the-art software and delivering robust, fast, and resource-conscious components to product teams.
Our team will closely collaborate with Adobe's UX design and research teams to turn groundbreaking ideas and technologies into shipping features.
What you'll Do
Work collaboratively with UX designers, engineers, and researchers to architect, develop, maintain and optimize new software solutions
Design and implement modern algorithms by writing robust, high-performance code
Develop experiments to explore tradeoffs between various possible implementations
Identify and fix application bugs and performance bottlenecks
Review code on a near-daily basis and give detailed, constructive feedback
Work closely with many different product and teams across Adobe to integrate software across organizational boundaries
Provide leadership to the group and mentorship to junior-level engineers
What you need to succeed
10+ years writing production code
Deep knowledge of C++ (C++17 preferred) design patterns
Experience writing cross-platform code
Experience working with multi-threaded architectures
Experience with scene graphs, and / or entity component systems
Experience in profiling, debugging, and optimizing complex systems
Experience in at least one scripting language, Python in particular
Strong communication skills and attention to detail
Bachelor's degree in Computer Science or equivalent professional experience or education
Encouraged expertise :
Universal Scene Description (USD) API and frameworks
Modern graphics APIs (OpenGL, DirectX, Vulkan, Metal)
3D content creation tools (e.g. Maya, Cinema4D)