About the Role
This role is an exciting opportunity to be part of a development team responsible for delivering high-impact features, feature updates, and maintenance to the Katana product family. You will act as a technical specialist within your Scrum team and help ensure the quality, testability, scalability, robustness, and extensibility of our code.
Responsibilities
- Design, implementation, documentation, and testing of C++ and Python code.
- Collaborate with other Software Engineers, QA Engineers, Designers, and the Product Manager.
- Contribute to technical solutions and architecture.
- Mentor and support less experienced developers.
- Take the technical lead on complex tasks.
- Follow best software development practices and aid others in writing maintainable, efficient, and well-structured code.
- Contribute to development efforts outside of the Scrum team and support Katana Architects.
- Keep appraised of advances in the field of expertise and analyze competitors’ systems and architecture.
- Understand the business and wider industry.
- Communicate with internal and external stakeholders, understanding and sharing requirements and proposed solutions.
- Represent and support the company and the product at external events when appropriate.
- Understand, practice, and refine the development process within the team.
- Lead the design, implementation, and documentation of complex software features.
- Improve the quality and stability of the product with maintenance bug fixes.
- Participate in reviews of your own and colleagues’ code.
- Take a leading role in project planning by providing effort estimates and risk assessment for the team’s future work.
- Take a leading role in the creation of user stories for future work.
- Document work clearly and concisely in the source code.
- Assist the Customer Support team with investigations and suggestions related to issues reported by users.
Requirements
- Self-motivated and inquisitive C++ programmer.
- Experience developing high-performance commercial software.
- Knowledge of software engineering best practices.
- Extensive knowledge and experience of code architecture and design patterns.
- 7+ years experience developing for multithreaded, high-performance commercial applications.
- Excellent track record of problem solving.
- Good communication skills, well organized, good time management, ability to work independently.
- Experience of working independently & as part of a team to produce well-structured, effective code for others to build on.
- Experience of task breakdown and estimation, proposing solutions for designs and issues within the team's work.
- Experience of cross-OS development including Windows and Linux.
- Experience of GUI application development, preferably with Qt, is an advantage.
- Passionate and curious about technology in general, with a willingness to develop skills in the relevant technologies.
- Degree in Engineering/Computer Science (or equivalent experience).
- 3D experience, e.g. OpenGL/Vulkan, Rendering (Prman, Arnold, 3Delight).
- Experience of 3D tools, e.g. Katana, Houdini, Maya, 3DS Max.
- Knowledge of GitLab/Conan/CMake an advantage.
Skills
- Python
- C++
- Universal Scene Description (USD)
- USD’s Hydra
- VFX pipelines in post-production
- Code architecture
- Design patterns
- Multithreaded applications
- High-performance applications
- Problem solving
- Communication
- Organization
- Time management
- Independent work
- Teamwork
- Code structure
- Task breakdown
- Estimation
- Cross-OS development (Windows, Linux)
- GUI application development
- Qt
- 3D experience
- OpenGL
- Vulkan
- Rendering (Prman, Arnold, 3Delight)
- 3D tools (Katana, Houdini, Maya, 3DS Max)
- GitLab
- Conan
- CMake
Location
- Hybrid
Work Type
- Hybrid working - 2 days per week in office
- Full-time
Experience Level
- Principal Software Engineer
- 7+ years experience
Education Level
- Degree in Engineering/Computer Science (or equivalent experience)
Benefits
- 25 days holiday + bank holidays
- Pension scheme & Life Assurance
- Health cash plan & Medical Insurance
- Season ticket loan
- Company’s social events
- Personal Annual Development Time
- Passion Days
- Anniversary Day off
About the Company
- Katana® is a highly efficient, collaborative look development and lighting solution that gives you the creative scope and scalability to meet the needs of today’s most demanding CG-rendering projects.
- Equally suited to both short and long-form animation and VFX projects, Katana's unique design lets you work with massive scenes and high volumes of shots; easily reuse looks; and make revisions without repeating scene setup work, so you can spend more time achieving higher quality results.
- Katana is a cross-platform (Linux & Windows) C++ application, which uses deep Python bindings for the parts of the system that are not time critical and Qt UI.
- As well as Python configurability, a set of APIs exists for customers to integrate Katana into their pipelines to use custom asset management, renderers, and more.
